diff --git a/.gitmodules b/.gitmodules
index a2dbf441..9aeab7b1 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,8 @@
[submodule "cadline/backend/common_cadline_libraries"]
path = cadline/backend/common_cadline_libraries
url = ssh://git@git.cadline.hu:22222/cadline_web/cadcommonlib.git
+ branch = master
[submodule "cadline/backend/maintenance"]
path = cadline/backend/maintenance
url = ssh://git@git.cadline.hu:22222/cadline_web/maintenance.git
+ branch = master
diff --git a/cadline/backend/common_cadline_libraries b/cadline/backend/common_cadline_libraries
index 423fec9b..6bd9cb2e 160000
--- a/cadline/backend/common_cadline_libraries
+++ b/cadline/backend/common_cadline_libraries
@@ -1 +1 @@
-Subproject commit 423fec9b929b381339d71623fc621a998a6e3e0f
+Subproject commit 6bd9cb2e1c0844e57fa9cad83ba2baa6e056418d
diff --git a/cadline/backend/maintenance b/cadline/backend/maintenance
index 11f1a543..7e803623 160000
--- a/cadline/backend/maintenance
+++ b/cadline/backend/maintenance
@@ -1 +1 @@
-Subproject commit 11f1a543340bb7a2f03c3647dca03b7bd79783d0
+Subproject commit 7e8036235b05d493363791b46bb2ebdc33bb5f2e
diff --git a/cadline/components/administrator/components/com_alworkshops/alworkshops.xml b/cadline/components/administrator/components/com_alworkshops/alworkshops.xml
index 67681758..67953783 100644
--- a/cadline/components/administrator/components/com_alworkshops/alworkshops.xml
+++ b/cadline/components/administrator/components/com_alworkshops/alworkshops.xml
@@ -1,49 +1,49 @@
-
-
- com_alworkshops
- 2017-04-14
- 2017 Zsolt Fekete
- GNU General Public License version 2 or later; see LICENSE.txt
- Zsolt Fekete
- mcleod78@gmail.com
- https://www.facebook.com/mcleod78
- CVS: 1.0.0
- Manage workshops
-
-
- COM_ALWORKSHOPS
-
- COM_ALWORKSHOPS_CONTROL_PANEL_HELP
- COM_ALWORKSHOPS_APPLICATIONS
- COM_ALWORKSHOPS_COURSES
- COM_ALWORKSHOPS_SESSIONS
- COM_ALWORKSHOPS_SWITCH
- COM_ALWORKSHOPS_ONLINE_SESSIONS
-
-
-
- access.xml
- config.xml
- controller.php
- index.html
- alworkshops.php
- assets
- helpers
- models
- views
-
-
- en-GB/en-GB.com_alworkshops.ini
- en-GB/en-GB.com_alworkshops.sys.ini
- hu-HU/hu-HU.com_alworkshops.ini
- hu-HU/hu-HU.com_alworkshops.sys.ini
-
-
-
-
-
-
-
-
-
-
+
+
+ com_alworkshops
+ 2017-04-14
+ 2017 Zsolt Fekete
+ GNU General Public License version 2 or later; see LICENSE.txt
+ Zsolt Fekete
+ mcleod78@gmail.com
+ https://www.facebook.com/mcleod78
+ CVS: 1.0.0
+ Manage workshops
+
+
+ COM_ALWORKSHOPS
+
+ COM_ALWORKSHOPS_CONTROL_PANEL_HELP
+ COM_ALWORKSHOPS_APPLICATIONS
+ COM_ALWORKSHOPS_COURSES
+ COM_ALWORKSHOPS_SESSIONS
+ COM_ALWORKSHOPS_SWITCH
+ COM_ALWORKSHOPS_ONLINE_SESSIONS
+
+
+
+ access.xml
+ config.xml
+ controller.php
+ index.html
+ alworkshops.php
+ assets
+ helpers
+ models
+ views
+
+
+ en-GB/en-GB.com_alworkshops.ini
+ en-GB/en-GB.com_alworkshops.sys.ini
+ hu-HU/hu-HU.com_alworkshops.ini
+ hu-HU/hu-HU.com_alworkshops.sys.ini
+
+
+
+
+
+
+
+
+
+
diff --git a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxEducationController.class.php b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxEducationController.class.php
index f33c26be..904a9519 100644
--- a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxEducationController.class.php
+++ b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxEducationController.class.php
@@ -1,95 +1,95 @@
-pf]["_POST"] = $_POST;
- if (!isset($_SESSION[$this->pf]['tableorder']) || trim($_SESSION[$this->pf]['tableorder']) == '') $_SESSION[$this->pf]['tableorder'] = 's.id DESC';
-
- $se = &$_SESSION[$this->pf]['_POST'];
- $felt = " AND `lang`='" . ($this->getLang() == 'hu-HU' ? 'hun' : 'eng') . "' ";
- $arrIcons = array(
- 'smallEnable' => array("onclick" => "javascript:if (confirm('Are you sure?')) {setField('','" . $this->pf . "_event','disable','" . $this->targetdiv . "');setField('" . $this->pf . "','" . $this->pf . "_value','REPLACE','" . $this->targetdiv . "');}", "img" => IconHelper::getIcon("smallEnable")),
- 'smallDisable' => array("onclick" => "javascript:if (confirm('Are you sure?')) {setField('','" . $this->pf . "_event','enable','" . $this->targetdiv . "');setField('" . $this->pf . "','" . $this->pf . "_value','REPLACE','" . $this->targetdiv . "');}", 'img' => IconHelper::getIcon("smallDisable")),
- 'smallEdit' => array("href" => "index.php?option=com_alworkshops&view=educationedit&id=REPLACE", "img" => IconHelper::getIcon("smallEdit"), "linkjoin" => "id", "alttext" => "Edit"),
- );
- $_LANG = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . "/administrator/language/" . $this->getLang() . "/" . $this->getLang() . ".com_alworkshops.ini");
-
- if (isset($_POST[$this->pf . '_event']) and trim($_POST[$this->pf . '_event']) > '') {
- $event = trim(strtolower(addslashes((string)$_POST[$this->pf . '_event'])));
- $value = trim(strtolower(addslashes((string)$_POST[$this->pf . '_value'])));
- if ((int)$value > 0) {
- switch ($event) {
- case 'enable': {
- MySqlHelper::getInstance()->query("UPDATE " . TABLE . " SET published='Y' WHERE id=" . $value);
- break;
- }
- case 'disable': {
- MySqlHelper::getInstance()->query("UPDATE " . TABLE . " SET published='N' WHERE id=" . $value);
- break;
- }
- }
- }
- }
-
- if (isset($se['sid']) && $se['sid'] > "") {
- if (strpos($se['sid'], "-")) {
- $reszek = explode("-", $se['sid']);
- $felt .= ((int)$reszek[0] < (int)$reszek[1] ? " AND id>=" . (int)$reszek[0] . " AND id<=" . (int)$reszek[1] : " AND id>=" . (int)$reszek[1] . " AND id<=" . (int)$reszek[0]);
- } else {
- $felt .= " AND id=" . (int)$se['sid'];
- }
- }
- if (isset($se['tipus']) && $se['tipus'] != 'mind') $felt .= " AND `" . $se['tipus'] . "`='Y'";
- if (isset($se['alias']) && $se['alias'] > "") $felt .= " AND alias LIKE '%" . trim($se['alias']) . "%' ";
-
- $objTabla = new TableHelper();
- $objTabla->setParams(array('prefix' => $this->pf, 'tablewidth' => '100%', 'tablediv' => 'tablediv'));
- $v = $objTabla->setSession();
- $objTabla->setColumn('id', array('header' => $_LANG['COM_ALWORKSHOPS_ID'], 'width' => '40px', 'format' => 'number', 'decimal' => 0, 'link' => 'index.php?option=com_alworkshops&view=educationedit&id=REPLACE'));
- $objTabla->setColumn('options', array('header' => $_LANG['COM_ALWORKSHOPS_OPTIONS'], 'align' => 'right', 'width' => '70px', 'order' => false, 'addicons' => $arrIcons, 'linkjoin' => 'id'));
- $objTabla->setQuery(array(
- "
- SELECT id, title, url, image, published, CONCAT(IF(published='N','smallDisable','smallEnable'),'|','smallEdit') AS options FROM " . TABLE . " s WHERE 1 " . $felt
- . ((isset($v['tableorder']) and $v['tableorder'] > '') ? ' ORDER BY ' . $v['tableorder'] : '')
- . ((isset($v['tableipp'])) ? ' LIMIT ' . ($v['tableipp'] > 0 ? ($v['tablepage'] - 1) * $v['tableipp'] : 0) . ',' . $v['tableipp'] : ''), "
- SELECT COUNT(*) AS recordCount
- FROM (
- SELECT id, title, url, image, published, CONCAT(IF(published='N','smallDisable','smallEnable'),'|','smallEdit') AS options FROM " . TABLE . " s WHERE 1 " . $felt . ") z;"
- ));
- //print_r($objTabla->arrQuery);
- $objTabla->drawTable(TRUE);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) {
- $this->lang = (strpos($_SERVER['HTTP_HOST'], ".com") ? "en-GB" : "hu-HU");
- }
- return $this->lang;
- }
-}
-
-$controller = new Controller();
-$controller->run();
-?>
-
-
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxOnlineSessionController.class.php b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxOnlineSessionController.class.php
index 189ce8ed..6e26224b 100644
--- a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxOnlineSessionController.class.php
+++ b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxOnlineSessionController.class.php
@@ -1,130 +1,130 @@
-pf]["_POST"]=$_POST;
- if (isset($_POST['targetdiv'])) $this->targetdiv=$_POST['targetdiv'];
- if (!isset($_SESSION[$this->pf]['tableorder']) || trim($_SESSION[$this->pf]['tableorder'])=='' ) $_SESSION[$this->pf]['tableorder']='s.id DESC';
-
- $se=&$_SESSION[$this->pf]['_POST'];
-
- if($this->getLang() == 'hu-HU') {
- $webinar = "webinariumok";
- } else {
- $webinar = "webinars";
- }
- $felt=" AND c.`alias`='{$webinar}' ";
-
- $arrIcons=array(
- 'smallEnable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','disable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}","img"=>IconHelper::getIcon("smallEnable") ),
- 'smallDisable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','enable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDisable") ),
- 'smallEdit'=>array("href"=>"index.php?option=com_alworkshops&view=onlinesessionedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
- );
- $_LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$this->getLang()."/".$this->getLang().".com_alworkshops.ini");
-
- if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
- {
- $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
- $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
- if ((int)$value>0)
- {
- switch ($event)
- {
- case 'enable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='Y' WHERE id=".$value);break; }
- case 'disable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='N' WHERE id=".$value);break; }
- }
- }
- }
-
- if (isset($se['sid']) && $se['sid']>"")
- {
- if (strpos($se['sid'], "-"))
- {
- $reszek=explode("-", $se['sid']);
- $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND id>=".(int)$reszek[0]." AND id<=".(int)$reszek[1] : " AND id>=".(int)$reszek[1]." AND id<=".(int)$reszek[0]);
- }
- else
- {
- $felt.=" AND id=".(int)$se['sid'];
- }
- }
- if (isset($se['wid']) && $se['wid']>"")
- {
- if (strpos($se['wid'], "-"))
- {
- $reszek=explode("-", $se['wid']);
- $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND courseid>=".(int)$reszek[0]." AND courseid<=".(int)$reszek[1] : " AND courseid>=".(int)$reszek[1]." AND courseid<=".(int)$reszek[0]);
- }
- else
- {
- $felt.=" AND courseid=".(int)$se['wid'];
- }
- }
- if (isset($se['title']) && $se['title']>"") $felt.=" AND title LIKE '%".trim($se['title'])."%' ";
- if (isset($se['start_date']) && $se['start_date']>"") $felt.=" AND session_date>='".trim($se['start_date'])."'";
- if (isset($se['finish_date']) && $se['finish_date']>"") $felt.=" AND session_date<='".trim($se['finish_date'])."'";
- if (isset($se['published']) && $se['published']!='A') $felt.=" AND published='".$se['published']."'";
-
- $objTabla=New TableHelper();
- $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>$this->targetdiv));
- $v=$objTabla->setSession();
- $objTabla->setColumn('id',array('header'=>'SID','width'=>'50px','format'=>'number','decimal'=>0,'link'=>'index.php?option=com_alworkshops&view=onlinesessionedit&id=REPLACE'));
- $objTabla->setColumn('courseid',array('header'=>'CID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('title',array('header'=>$_LANG['COM_ALWORKSHOPS_TITLE'],'width'=>'200px'));
- $objTabla->setColumn('session_date',array('header'=>$_LANG['COM_ALWORKSHOPS_START_DATE'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('start_time',array('header'=>$_LANG['COM_ALWORKSHOPS_START_TIME'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('finish_time',array('header'=>$_LANG['COM_ALWORKSHOPS_FINISH_TIME'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('duration',array('header'=>$_LANG['COM_ALWORKSHOPS_DURATION'],'align'=>'center','width'=>'60px'));
- $objTabla->setColumn('ordering',array('header'=>$_LANG['COM_ALWORKSHOPS_ORDERING'],'width'=>'70px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('published',array('header'=>$_LANG['COM_ALWORKSHOPS_PUBLISHED'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('options',array('header'=>$_LANG['COM_ALWORKSHOPS_OPTIONS'],'align'=>'right','width'=>'70px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
- $objTabla->setQuery(array("
- SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
- FROM alworkshops_online_sessions s
- LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
- WHERE 1 ".$felt
- .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
- .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
- SELECT COUNT(*) AS recordCount
- FROM (
- SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
- FROM alworkshops_online_sessions s
- LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
- WHERE 1 ".$felt.") z;"
- ));
- $objTabla->drawTable(TRUE);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=(strpos($_SERVER['HTTP_HOST'],".com") ? "en-GB" : "hu-HU"); }
- return $this->lang;
- }
-}
-
-$controller=new Controller();
-$controller->run();
-?>
-
-
+pf]["_POST"]=$_POST;
+ if (isset($_POST['targetdiv'])) $this->targetdiv=$_POST['targetdiv'];
+ if (!isset($_SESSION[$this->pf]['tableorder']) || trim($_SESSION[$this->pf]['tableorder'])=='' ) $_SESSION[$this->pf]['tableorder']='s.id DESC';
+
+ $se=&$_SESSION[$this->pf]['_POST'];
+
+ if($this->getLang() == 'hu-HU') {
+ $webinar = "webinariumok";
+ } else {
+ $webinar = "webinars";
+ }
+ $felt=" AND c.`alias`='{$webinar}' ";
+
+ $arrIcons=array(
+ 'smallEnable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','disable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}","img"=>IconHelper::getIcon("smallEnable") ),
+ 'smallDisable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','enable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDisable") ),
+ 'smallEdit'=>array("href"=>"index.php?option=com_alworkshops&view=onlinesessionedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
+ );
+ $_LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$this->getLang()."/".$this->getLang().".com_alworkshops.ini");
+
+ if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
+ {
+ $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
+ $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
+ if ((int)$value>0)
+ {
+ switch ($event)
+ {
+ case 'enable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='Y' WHERE id=".$value);break; }
+ case 'disable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='N' WHERE id=".$value);break; }
+ }
+ }
+ }
+
+ if (isset($se['sid']) && $se['sid']>"")
+ {
+ if (strpos($se['sid'], "-"))
+ {
+ $reszek=explode("-", $se['sid']);
+ $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND id>=".(int)$reszek[0]." AND id<=".(int)$reszek[1] : " AND id>=".(int)$reszek[1]." AND id<=".(int)$reszek[0]);
+ }
+ else
+ {
+ $felt.=" AND id=".(int)$se['sid'];
+ }
+ }
+ if (isset($se['wid']) && $se['wid']>"")
+ {
+ if (strpos($se['wid'], "-"))
+ {
+ $reszek=explode("-", $se['wid']);
+ $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND courseid>=".(int)$reszek[0]." AND courseid<=".(int)$reszek[1] : " AND courseid>=".(int)$reszek[1]." AND courseid<=".(int)$reszek[0]);
+ }
+ else
+ {
+ $felt.=" AND courseid=".(int)$se['wid'];
+ }
+ }
+ if (isset($se['title']) && $se['title']>"") $felt.=" AND title LIKE '%".trim($se['title'])."%' ";
+ if (isset($se['start_date']) && $se['start_date']>"") $felt.=" AND session_date>='".trim($se['start_date'])."'";
+ if (isset($se['finish_date']) && $se['finish_date']>"") $felt.=" AND session_date<='".trim($se['finish_date'])."'";
+ if (isset($se['published']) && $se['published']!='A') $felt.=" AND published='".$se['published']."'";
+
+ $objTabla=New TableHelper();
+ $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>$this->targetdiv));
+ $v=$objTabla->setSession();
+ $objTabla->setColumn('id',array('header'=>'SID','width'=>'50px','format'=>'number','decimal'=>0,'link'=>'index.php?option=com_alworkshops&view=onlinesessionedit&id=REPLACE'));
+ $objTabla->setColumn('courseid',array('header'=>'CID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('title',array('header'=>$_LANG['COM_ALWORKSHOPS_TITLE'],'width'=>'200px'));
+ $objTabla->setColumn('session_date',array('header'=>$_LANG['COM_ALWORKSHOPS_START_DATE'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('start_time',array('header'=>$_LANG['COM_ALWORKSHOPS_START_TIME'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('finish_time',array('header'=>$_LANG['COM_ALWORKSHOPS_FINISH_TIME'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('duration',array('header'=>$_LANG['COM_ALWORKSHOPS_DURATION'],'align'=>'center','width'=>'60px'));
+ $objTabla->setColumn('ordering',array('header'=>$_LANG['COM_ALWORKSHOPS_ORDERING'],'width'=>'70px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('published',array('header'=>$_LANG['COM_ALWORKSHOPS_PUBLISHED'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('options',array('header'=>$_LANG['COM_ALWORKSHOPS_OPTIONS'],'align'=>'right','width'=>'70px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
+ $objTabla->setQuery(array("
+ SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
+ FROM alworkshops_online_sessions s
+ LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
+ WHERE 1 ".$felt
+ .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
+ .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
+ SELECT COUNT(*) AS recordCount
+ FROM (
+ SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
+ FROM alworkshops_online_sessions s
+ LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
+ WHERE 1 ".$felt.") z;"
+ ));
+ $objTabla->drawTable(TRUE);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=(strpos($_SERVER['HTTP_HOST'],".com") ? "en-GB" : "hu-HU"); }
+ return $this->lang;
+ }
+}
+
+$controller=new Controller();
+$controller->run();
+?>
+
+
diff --git a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxSessionController.class.php b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxSessionController.class.php
index f613b74b..fe5f175e 100644
--- a/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxSessionController.class.php
+++ b/cadline/components/administrator/components/com_alworkshops/assets/ajax/AjaxSessionController.class.php
@@ -1,130 +1,130 @@
-pf]["_POST"]=$_POST;
- if (isset($_POST['targetdiv'])) $this->targetdiv=$_POST['targetdiv'];
- if (!isset($_SESSION[$this->pf]['tableorder']) || trim($_SESSION[$this->pf]['tableorder'])=='' ) $_SESSION[$this->pf]['tableorder']='s.id DESC';
-
- $se=&$_SESSION[$this->pf]['_POST'];
- $felt=" AND sw.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."' ";
-
- $arrIcons=array(
- 'smallEnable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','disable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}","img"=>IconHelper::getIcon("smallEnable") ),
- 'smallDisable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','enable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDisable") ),
- 'smallEdit'=>array("href"=>"index.php?option=com_alworkshops&view=sessionedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
- );
- $_LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$this->getLang()."/".$this->getLang().".com_alworkshops.ini");
-
- if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
- {
- $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
- $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
- if ((int)$value>0)
- {
- switch ($event)
- {
- case 'enable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='Y' WHERE id=".$value);break; }
- case 'disable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='N' WHERE id=".$value);break; }
- }
- }
- }
-
- if (isset($se['sid']) && $se['sid']>"")
- {
- if (strpos($se['sid'], "-"))
- {
- $reszek=explode("-", $se['sid']);
- $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND id>=".(int)$reszek[0]." AND id<=".(int)$reszek[1] : " AND id>=".(int)$reszek[1]." AND id<=".(int)$reszek[0]);
- }
- else
- {
- $felt.=" AND id=".(int)$se['sid'];
- }
- }
- if (isset($se['wid']) && $se['wid']>"")
- {
- if (strpos($se['wid'], "-"))
- {
- $reszek=explode("-", $se['wid']);
- $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND courseid>=".(int)$reszek[0]." AND courseid<=".(int)$reszek[1] : " AND courseid>=".(int)$reszek[1]." AND courseid<=".(int)$reszek[0]);
- }
- else
- {
- $felt.=" AND courseid=".(int)$se['wid'];
- }
- }
- if (isset($se['title']) && $se['title']>"") $felt.=" AND title LIKE '%".trim($se['title'])."%' ";
- if (isset($se['description']) && $se['description']>"") $felt.=" AND description LIKE '%".trim($se['description'])."%' ";
- if (isset($se['start_date']) && $se['start_date']>"") $felt.=" AND session_date>='".trim($se['start_date'])."'";
- if (isset($se['finish_date']) && $se['finish_date']>"") $felt.=" AND session_date<='".trim($se['finish_date'])."'";
- if (isset($se['published']) && $se['published']!='A') $felt.=" AND published='".$se['published']."'";
- $felt .= " GROUP BY id";
-
- $objTabla=New TableHelper();
- $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>$this->targetdiv));
- $v=$objTabla->setSession();
- $objTabla->setColumn('id',array('header'=>'SID','width'=>'50px','format'=>'number','decimal'=>0,'link'=>'index.php?option=com_alworkshops&view=sessionedit&id=REPLACE'));
- $objTabla->setColumn('switchid',array('header'=>'SID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('courseid',array('header'=>'CID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('title',array('header'=>$_LANG['COM_ALWORKSHOPS_TITLE'],'width'=>'200px'));
- $objTabla->setColumn('session_date',array('header'=>$_LANG['COM_ALWORKSHOPS_START_DATE'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('start_time',array('header'=>$_LANG['COM_ALWORKSHOPS_START_TIME'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('finish_time',array('header'=>$_LANG['COM_ALWORKSHOPS_FINISH_TIME'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('duration',array('header'=>$_LANG['COM_ALWORKSHOPS_DURATION'],'align'=>'center','width'=>'60px'));
- $objTabla->setColumn('description',array('header'=>$_LANG['COM_ALWORKSHOPS_SESSIONDESC']));
- $objTabla->setColumn('ordering',array('header'=>$_LANG['COM_ALWORKSHOPS_ORDERING'],'width'=>'70px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('published',array('header'=>$_LANG['COM_ALWORKSHOPS_PUBLISHED'],'align'=>'center','width'=>'80px'));
- $objTabla->setColumn('options',array('header'=>$_LANG['COM_ALWORKSHOPS_OPTIONS'],'align'=>'right','width'=>'70px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
- $objTabla->setQuery(array("
- SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
- FROM alworkshops_sessions s
- LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
- LEFT OUTER JOIN alworkshops_switch sw ON sw.alias=c.alias
- WHERE 1 ".$felt
- .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
- .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
- SELECT COUNT(*) AS recordCount
- FROM (
- SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
- FROM alworkshops_sessions s
- LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
- LEFT OUTER JOIN alworkshops_switch sw ON sw.alias=c.alias
- WHERE 1 ".$felt.") z;"
- ));
- $objTabla->drawTable(TRUE);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=(strpos($_SERVER['HTTP_HOST'],".com") ? "en-GB" : "hu-HU"); }
- return $this->lang;
- }
-}
-
-$controller=new Controller();
-$controller->run();
-?>
-
-
+pf]["_POST"]=$_POST;
+ if (isset($_POST['targetdiv'])) $this->targetdiv=$_POST['targetdiv'];
+ if (!isset($_SESSION[$this->pf]['tableorder']) || trim($_SESSION[$this->pf]['tableorder'])=='' ) $_SESSION[$this->pf]['tableorder']='s.id DESC';
+
+ $se=&$_SESSION[$this->pf]['_POST'];
+ $felt=" AND sw.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."' ";
+
+ $arrIcons=array(
+ 'smallEnable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','disable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}","img"=>IconHelper::getIcon("smallEnable") ),
+ 'smallDisable'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','enable','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDisable") ),
+ 'smallEdit'=>array("href"=>"index.php?option=com_alworkshops&view=sessionedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
+ );
+ $_LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$this->getLang()."/".$this->getLang().".com_alworkshops.ini");
+
+ if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
+ {
+ $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
+ $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
+ if ((int)$value>0)
+ {
+ switch ($event)
+ {
+ case 'enable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='Y' WHERE id=".$value);break; }
+ case 'disable' : { MySqlHelper::getInstance()->query("UPDATE ".TABLE." SET published='N' WHERE id=".$value);break; }
+ }
+ }
+ }
+
+ if (isset($se['sid']) && $se['sid']>"")
+ {
+ if (strpos($se['sid'], "-"))
+ {
+ $reszek=explode("-", $se['sid']);
+ $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND id>=".(int)$reszek[0]." AND id<=".(int)$reszek[1] : " AND id>=".(int)$reszek[1]." AND id<=".(int)$reszek[0]);
+ }
+ else
+ {
+ $felt.=" AND id=".(int)$se['sid'];
+ }
+ }
+ if (isset($se['wid']) && $se['wid']>"")
+ {
+ if (strpos($se['wid'], "-"))
+ {
+ $reszek=explode("-", $se['wid']);
+ $felt.=( (int)$reszek[0]<(int)$reszek[1] ? " AND courseid>=".(int)$reszek[0]." AND courseid<=".(int)$reszek[1] : " AND courseid>=".(int)$reszek[1]." AND courseid<=".(int)$reszek[0]);
+ }
+ else
+ {
+ $felt.=" AND courseid=".(int)$se['wid'];
+ }
+ }
+ if (isset($se['title']) && $se['title']>"") $felt.=" AND title LIKE '%".trim($se['title'])."%' ";
+ if (isset($se['description']) && $se['description']>"") $felt.=" AND description LIKE '%".trim($se['description'])."%' ";
+ if (isset($se['start_date']) && $se['start_date']>"") $felt.=" AND session_date>='".trim($se['start_date'])."'";
+ if (isset($se['finish_date']) && $se['finish_date']>"") $felt.=" AND session_date<='".trim($se['finish_date'])."'";
+ if (isset($se['published']) && $se['published']!='A') $felt.=" AND published='".$se['published']."'";
+ $felt .= " GROUP BY id";
+
+ $objTabla=New TableHelper();
+ $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>$this->targetdiv));
+ $v=$objTabla->setSession();
+ $objTabla->setColumn('id',array('header'=>'SID','width'=>'50px','format'=>'number','decimal'=>0,'link'=>'index.php?option=com_alworkshops&view=sessionedit&id=REPLACE'));
+ $objTabla->setColumn('switchid',array('header'=>'SID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('courseid',array('header'=>'CID','align'=>'center','width'=>'50px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('title',array('header'=>$_LANG['COM_ALWORKSHOPS_TITLE'],'width'=>'200px'));
+ $objTabla->setColumn('session_date',array('header'=>$_LANG['COM_ALWORKSHOPS_START_DATE'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('start_time',array('header'=>$_LANG['COM_ALWORKSHOPS_START_TIME'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('finish_time',array('header'=>$_LANG['COM_ALWORKSHOPS_FINISH_TIME'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('duration',array('header'=>$_LANG['COM_ALWORKSHOPS_DURATION'],'align'=>'center','width'=>'60px'));
+ $objTabla->setColumn('description',array('header'=>$_LANG['COM_ALWORKSHOPS_SESSIONDESC']));
+ $objTabla->setColumn('ordering',array('header'=>$_LANG['COM_ALWORKSHOPS_ORDERING'],'width'=>'70px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('published',array('header'=>$_LANG['COM_ALWORKSHOPS_PUBLISHED'],'align'=>'center','width'=>'80px'));
+ $objTabla->setColumn('options',array('header'=>$_LANG['COM_ALWORKSHOPS_OPTIONS'],'align'=>'right','width'=>'70px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
+ $objTabla->setQuery(array("
+ SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
+ FROM alworkshops_sessions s
+ LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
+ LEFT OUTER JOIN alworkshops_switch sw ON sw.alias=c.alias
+ WHERE 1 ".$felt
+ .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
+ .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
+ SELECT COUNT(*) AS recordCount
+ FROM (
+ SELECT s.*,CONCAT(IF(s.published='N','smallDisable','smallEnable'),'|','smallEdit') AS options
+ FROM alworkshops_sessions s
+ LEFT OUTER JOIN alworkshops_courses c ON c.id=s.courseid
+ LEFT OUTER JOIN alworkshops_switch sw ON sw.alias=c.alias
+ WHERE 1 ".$felt.") z;"
+ ));
+ $objTabla->drawTable(TRUE);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=(strpos($_SERVER['HTTP_HOST'],".com") ? "en-GB" : "hu-HU"); }
+ return $this->lang;
+ }
+}
+
+$controller=new Controller();
+$controller->run();
+?>
+
+
diff --git a/cadline/components/administrator/components/com_alworkshops/assets/css/style.css b/cadline/components/administrator/components/com_alworkshops/assets/css/style.css
index b6a6ed60..19191120 100644
--- a/cadline/components/administrator/components/com_alworkshops/assets/css/style.css
+++ b/cadline/components/administrator/components/com_alworkshops/assets/css/style.css
@@ -1,86 +1,86 @@
-#j-sidebar-container {display:inline-block;vertical-align:top;width:14.5%;height:300px;border:0px solid #000000;}
-#j-main-container {display:inline-block;vertical-align:top;width:85%;border:0px solid #000000;}
-
-#j-main-container .pagination {margin:0px;padding:0px;display:inline;}
-#j-main-container table.adminlist {width:100%;border-spacing:1px;background-color:#e7e7e7;color:#666;}
-#j-main-container table.adminlist td,
-#j-main-container table.adminlist th {padding:4px;}
-#j-main-container table.adminlist thead th {text-align:center;background:#f0f0f0;color:#666;border-bottom:1px solid #999;border-left:1px solid #fff;}
-#j-main-container table.adminlist thead a:hover { text-decoration: none; }
-#j-main-container table.adminlist thead th img { vertical-align: middle; }
-#j-main-container table.adminlist tbody th { font-weight: bold; }
-#j-main-container table.adminlist tbody tr { background-color: #fff; text-align: left; }
-#j-main-container table.adminlist tbody tr.row1 { background: #f9f9f9; border-top: 1px solid #fff; }
-#j-main-container table.adminlist tbody tr.row0:hover td,
-#j-main-container table.adminlist tbody tr.row1:hover td { background-color: #ffd ; }
-#j-main-container table.adminlist tbody tr td { height: 25px; background: #fff; border: 1px solid #fff; }
-#j-main-container table.adminlist tbody tr.row1 td { background: #f9f9f9; border-top: 1px solid #FFF; }
-#j-main-container table.adminlist tfoot tr { text-align: center; color: #333; }
-#j-main-container table.adminlist tfoot td,
-#j-main-container table.adminlist tfoot th { background-color: #f3f3f3; border-top: 1px solid #999; text-align: center; }
-#j-main-container table.adminlist td.order { text-align: center; white-space: nowrap; }
-#j-main-container table.adminlist td.order span { float: left; display: block; width: 20px; text-align: center; }
-
-.j-sidebar-container.j-sidebar-hidden {
- margin-left: 2vw !important;
-}
-
-
-#j-main-container .clear {clear:both;margin:0px;padding:0px;height:0px;width:0px;}
-#j-main-container div.hasab {display:inline-block;width:340px;vertical-align:top;border:0px solid #000;}
-#j-main-container div.hasab div.inputholder {display:block;height:38px;border:0px solid #ff0000;}
-#j-main-container div.hasab div.inputholder label {display:inline-block;width:120px;font-weight:bold;border:0px solid #00ff00;}
-#j-main-container div.hasab div.inputholder input[type="text"],
-#j-main-container div.hasab div.inputholder select {display:inline;margin:0px;width:190px;}
-#j-main-container div.hasab div.inputholder textarea {width:320px;height:260px;}
-#j-main-container div.hasab div.inputholder input[type="file"] {width:190px;}
-#j-main-container div.hasab div.inputholder fieldset {display:inline;width:190px;white-space:nowrap;border:0px solid #ff00ff;}
-#j-main-container div.hasab div.inputholder fieldset label {width:50px;font-weight:normal;}
-
-
-/* TableHelper */
-div.tableholder table { border: 1px solid #dddddd; font-size: 11px; }
-div.tableholder table thead, div.tableholder table tfoot { background-color: #ddd; }
-div.tableholder table thead tr td { padding-left: 3px; border-bottom: 1px solid #dddddd; white-space:nowrap; vertical-align:middle; }
-div.tableholder table tfoot tr td { padding-left: 3px; border-top: 1px solid #dddddd; white-space:nowrap; vertical-align:middle; }
-div.tableholder table thead tr th,
-div.tableholder table tfoot tr th { white-space:nowrap; vertical-align:middle; }
-div.tableholder table thead tr th span { display: block; float: left; text-align: center; margin-left:3px; float: left; height: 30px; line-height: 14px; font-weight: bold; }
-div.tableholder table thead tr th div.shortlinks { display: inline-block; margin: 1px; width: 9px; height: 24px; float: right; }
-div.tableholder table thead tr th div.shortlinks a.tableshort-up { display: block; text-decoration: none; width: 9px; height: 11px; background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-up.jpg) no-repeat left top; }
-div.tableholder table thead tr th div.shortlinks a.tableshort-up:hover { background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-up.jpg) no-repeat left -11px; }
-div.tableholder table thead tr th div.shortlinks a.tableshort-down { margin-top:2px;display: block; text-decoration: none; width: 9px; height: 11px; background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-down.jpg) no-repeat left top; }
-div.tableholder table thead tr th div.shortlinks a.tableshort-down:hover { margin-top:2px;background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-down.jpg) no-repeat left -11px; }
-
-div.tableholder table tbody tr.even { background-color: #ebebeb; }
-div.tableholder table tbody tr.odd { background-color: #ffffff; }
-div.tableholder table tbody tr.selected { background-color: #f5c0b8;color:#000000; }
-div.tableholder table tbody tr.selected a { color: #000000;}
-div.tableholder table tbody tr td { padding: 3px; text-align: left; border-top: 0px solid #afc4d2; border-right: 1px solid #e0eef7; }
-div.tableholder table tbody tr td img { padding: 0px; margin:0px; border:0px;vertical-align: middle; }
-div.tableholder table tbody tr.even:hover,
-div.tableholder table tbody tr.odd:hover,
-div.tableholder table tbody tr.selected:hover { cursor: pointer; background-color: #c5e6a1; color: #000000; }
-div.tableholder table tbody tr td input { padding: 0px; margin:0; vertical-align:middle; }
-div.tableholder table tbody tr td img { margin: 0px 2px; }
-div.tableholder table tfoot { height: 30px; font-size: 11px; font-weight: bold; }
-div.tableholder table a {text-decoration:none;cursor:pointer;}
-div.tableholder table a:hover {text-decoration:none;cursor:pointer;}
-div.tablenav select { margin: 0px; float: left; width: auto; padding: 2px 2px 3px 2px;border: 1px solid #afc4d2;font-size: 11px;font-family: Tahoma;font-weight: normal;text-align: left;color: #484947;cursor: pointer;}
-div.tablenav {margin: 10px 0px 10px 0px;height: 32px;overflow: hidden;}
-div.tablenav p {margin: 0px 0px 0px 3px;float: left;line-height: 32px; float:left;}
-div.tablenav ul.pager {margin: 0px 0px 0px 20px;float: right;height: 22px;}
-div.tablenav ul.pager li {display: inline;}
-div.tablenav ul.pager li a,
-div.tablenav ul.pager li a.inactive,
-div.tablenav ul.pager li a.inactive:hover { background: none; display: inline-block; float: left; margin: 0px 0px 0px 3px; width: 20px; height: 20px; line-height: 20px; font-size: 12px; font-weight: bold; text-align: center; vertical-align: middle; border: 1px solid #B3B9AA; color: #009cff; cursor:pointer;}
-div.tablenav ul.pager li a.nextfive { border: none; line-height: 22px; cursor:pointer; }
-div.tablenav ul.pager li a.inactive,
-div.tablenav ul.pager li a.inactive:hover { color: #c3c4c1; cursor:pointer;}
-div.tablenav ul.pager li a.activepage,
-div.tablenav ul.pager li a.activepage:hover { background-color: #b4c799; color: #ffffff; border-color: #577046; font-weight: bold; cursor:pointer;}
-div.tablenav ul.pager li a:hover {background-color: #009cff;color: #ffffff;border-color: #2d4e63; cursor:pointer; }
-
-
-#preview {position:absolute; border:1px solid #ccc;display:none;color:#fff;background:#fff;padding:5px;white-space:normal; }
+#j-sidebar-container {display:inline-block;vertical-align:top;width:14.5%;height:300px;border:0px solid #000000;}
+#j-main-container {display:inline-block;vertical-align:top;width:85%;border:0px solid #000000;}
+
+#j-main-container .pagination {margin:0px;padding:0px;display:inline;}
+#j-main-container table.adminlist {width:100%;border-spacing:1px;background-color:#e7e7e7;color:#666;}
+#j-main-container table.adminlist td,
+#j-main-container table.adminlist th {padding:4px;}
+#j-main-container table.adminlist thead th {text-align:center;background:#f0f0f0;color:#666;border-bottom:1px solid #999;border-left:1px solid #fff;}
+#j-main-container table.adminlist thead a:hover { text-decoration: none; }
+#j-main-container table.adminlist thead th img { vertical-align: middle; }
+#j-main-container table.adminlist tbody th { font-weight: bold; }
+#j-main-container table.adminlist tbody tr { background-color: #fff; text-align: left; }
+#j-main-container table.adminlist tbody tr.row1 { background: #f9f9f9; border-top: 1px solid #fff; }
+#j-main-container table.adminlist tbody tr.row0:hover td,
+#j-main-container table.adminlist tbody tr.row1:hover td { background-color: #ffd ; }
+#j-main-container table.adminlist tbody tr td { height: 25px; background: #fff; border: 1px solid #fff; }
+#j-main-container table.adminlist tbody tr.row1 td { background: #f9f9f9; border-top: 1px solid #FFF; }
+#j-main-container table.adminlist tfoot tr { text-align: center; color: #333; }
+#j-main-container table.adminlist tfoot td,
+#j-main-container table.adminlist tfoot th { background-color: #f3f3f3; border-top: 1px solid #999; text-align: center; }
+#j-main-container table.adminlist td.order { text-align: center; white-space: nowrap; }
+#j-main-container table.adminlist td.order span { float: left; display: block; width: 20px; text-align: center; }
+
+.j-sidebar-container.j-sidebar-hidden {
+ margin-left: 2vw !important;
+}
+
+
+#j-main-container .clear {clear:both;margin:0px;padding:0px;height:0px;width:0px;}
+#j-main-container div.hasab {display:inline-block;width:340px;vertical-align:top;border:0px solid #000;}
+#j-main-container div.hasab div.inputholder {display:block;height:38px;border:0px solid #ff0000;}
+#j-main-container div.hasab div.inputholder label {display:inline-block;width:120px;font-weight:bold;border:0px solid #00ff00;}
+#j-main-container div.hasab div.inputholder input[type="text"],
+#j-main-container div.hasab div.inputholder select {display:inline;margin:0px;width:190px;}
+#j-main-container div.hasab div.inputholder textarea {width:320px;height:260px;}
+#j-main-container div.hasab div.inputholder input[type="file"] {width:190px;}
+#j-main-container div.hasab div.inputholder fieldset {display:inline;width:190px;white-space:nowrap;border:0px solid #ff00ff;}
+#j-main-container div.hasab div.inputholder fieldset label {width:50px;font-weight:normal;}
+
+
+/* TableHelper */
+div.tableholder table { border: 1px solid #dddddd; font-size: 11px; }
+div.tableholder table thead, div.tableholder table tfoot { background-color: #ddd; }
+div.tableholder table thead tr td { padding-left: 3px; border-bottom: 1px solid #dddddd; white-space:nowrap; vertical-align:middle; }
+div.tableholder table tfoot tr td { padding-left: 3px; border-top: 1px solid #dddddd; white-space:nowrap; vertical-align:middle; }
+div.tableholder table thead tr th,
+div.tableholder table tfoot tr th { white-space:nowrap; vertical-align:middle; }
+div.tableholder table thead tr th span { display: block; float: left; text-align: center; margin-left:3px; float: left; height: 30px; line-height: 14px; font-weight: bold; }
+div.tableholder table thead tr th div.shortlinks { display: inline-block; margin: 1px; width: 9px; height: 24px; float: right; }
+div.tableholder table thead tr th div.shortlinks a.tableshort-up { display: block; text-decoration: none; width: 9px; height: 11px; background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-up.jpg) no-repeat left top; }
+div.tableholder table thead tr th div.shortlinks a.tableshort-up:hover { background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-up.jpg) no-repeat left -11px; }
+div.tableholder table thead tr th div.shortlinks a.tableshort-down { margin-top:2px;display: block; text-decoration: none; width: 9px; height: 11px; background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-down.jpg) no-repeat left top; }
+div.tableholder table thead tr th div.shortlinks a.tableshort-down:hover { margin-top:2px;background: #ececec url(/administrator/components/com_alworkshops/assets/images/tableshort-down.jpg) no-repeat left -11px; }
+
+div.tableholder table tbody tr.even { background-color: #ebebeb; }
+div.tableholder table tbody tr.odd { background-color: #ffffff; }
+div.tableholder table tbody tr.selected { background-color: #f5c0b8;color:#000000; }
+div.tableholder table tbody tr.selected a { color: #000000;}
+div.tableholder table tbody tr td { padding: 3px; text-align: left; border-top: 0px solid #afc4d2; border-right: 1px solid #e0eef7; }
+div.tableholder table tbody tr td img { padding: 0px; margin:0px; border:0px;vertical-align: middle; }
+div.tableholder table tbody tr.even:hover,
+div.tableholder table tbody tr.odd:hover,
+div.tableholder table tbody tr.selected:hover { cursor: pointer; background-color: #c5e6a1; color: #000000; }
+div.tableholder table tbody tr td input { padding: 0px; margin:0; vertical-align:middle; }
+div.tableholder table tbody tr td img { margin: 0px 2px; }
+div.tableholder table tfoot { height: 30px; font-size: 11px; font-weight: bold; }
+div.tableholder table a {text-decoration:none;cursor:pointer;}
+div.tableholder table a:hover {text-decoration:none;cursor:pointer;}
+div.tablenav select { margin: 0px; float: left; width: auto; padding: 2px 2px 3px 2px;border: 1px solid #afc4d2;font-size: 11px;font-family: Tahoma;font-weight: normal;text-align: left;color: #484947;cursor: pointer;}
+div.tablenav {margin: 10px 0px 10px 0px;height: 32px;overflow: hidden;}
+div.tablenav p {margin: 0px 0px 0px 3px;float: left;line-height: 32px; float:left;}
+div.tablenav ul.pager {margin: 0px 0px 0px 20px;float: right;height: 22px;}
+div.tablenav ul.pager li {display: inline;}
+div.tablenav ul.pager li a,
+div.tablenav ul.pager li a.inactive,
+div.tablenav ul.pager li a.inactive:hover { background: none; display: inline-block; float: left; margin: 0px 0px 0px 3px; width: 20px; height: 20px; line-height: 20px; font-size: 12px; font-weight: bold; text-align: center; vertical-align: middle; border: 1px solid #B3B9AA; color: #009cff; cursor:pointer;}
+div.tablenav ul.pager li a.nextfive { border: none; line-height: 22px; cursor:pointer; }
+div.tablenav ul.pager li a.inactive,
+div.tablenav ul.pager li a.inactive:hover { color: #c3c4c1; cursor:pointer;}
+div.tablenav ul.pager li a.activepage,
+div.tablenav ul.pager li a.activepage:hover { background-color: #b4c799; color: #ffffff; border-color: #577046; font-weight: bold; cursor:pointer;}
+div.tablenav ul.pager li a:hover {background-color: #009cff;color: #ffffff;border-color: #2d4e63; cursor:pointer; }
+
+
+#preview {position:absolute; border:1px solid #ccc;display:none;color:#fff;background:#fff;padding:5px;white-space:normal; }
#tooltip {position:absolute; border:1px solid #333;display:none;color:#333;background:#f7f5d1;padding:2px 5px; }
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_alworkshops/controller.php b/cadline/components/administrator/components/com_alworkshops/controller.php
index f30a8ef0..b76dae24 100644
--- a/cadline/components/administrator/components/com_alworkshops/controller.php
+++ b/cadline/components/administrator/components/com_alworkshops/controller.php
@@ -1,59 +1,59 @@
-
- * @copyright 2017 Zsolt Fekete
- * @license GNU General Public License version 2 or later; see LICENSE.txt
- */
-// No direct access
-defined('_JEXEC') or die;
-
-jimport('joomla.application.component.controller'); // import Joomla controller library
-
-$app = JFactory::getApplication();
-$view = $app->input->get('view');
-$option = $app->input->get('option');
-
-$l = array(
- array('COM_ALWORKSHOPS_CONTROL_PANEL_HELP', ''),
- array('COM_ALWORKSHOPS_APPLICATIONS', 'application'),
- array('COM_ALWORKSHOPS_COURSES', 'course'),
- array('COM_ALWORKSHOPS_SESSIONS', 'session'),
- array('COM_ALWORKSHOPS_SWITCH', 'switch'),
- array('COM_ALWORKSHOPS_ONLINE_SESSIONS', 'onlinesession'),
- array('COM_ALWORKSHOPS_EDUCATION', 'education')
-);
-
-foreach ($l as $v) {
- JHtmlSidebar::addEntry(JText::_($v[0]), 'index.php?option=' . $option . ($v[1] == '' ? '' : '&view=') . $v[1], ($view == $v[1] || $view == $v[1] . "edit" ? true : false));
-}
-
-/**
- * Class AlworkshopsController
- *
- * @since 1.6
- */
-class AlworkshopsController extends JControllerLegacy
-{
- /**
- * Method to display a view.
- *
- * @param boolean $cachable If true, the view output will be cached
- * @param mixed $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
- *
- * @return JController This object to support chaining.
- *
- * @since 1.5
- */
- public function display($cachable = false, $urlparams = false)
- {
- $view = JFactory::getApplication()->input->getCmd('view', '');
- JFactory::getApplication()->input->set('view', $view);
-
- parent::display($cachable, $urlparams);
-
- return $this;
- }
-}
+
+ * @copyright 2017 Zsolt Fekete
+ * @license GNU General Public License version 2 or later; see LICENSE.txt
+ */
+// No direct access
+defined('_JEXEC') or die;
+
+jimport('joomla.application.component.controller'); // import Joomla controller library
+
+$app = JFactory::getApplication();
+$view = $app->input->get('view');
+$option = $app->input->get('option');
+
+$l = array(
+ array('COM_ALWORKSHOPS_CONTROL_PANEL_HELP', ''),
+ array('COM_ALWORKSHOPS_APPLICATIONS', 'application'),
+ array('COM_ALWORKSHOPS_COURSES', 'course'),
+ array('COM_ALWORKSHOPS_SESSIONS', 'session'),
+ array('COM_ALWORKSHOPS_SWITCH', 'switch'),
+ array('COM_ALWORKSHOPS_ONLINE_SESSIONS', 'onlinesession'),
+ array('COM_ALWORKSHOPS_EDUCATION', 'education')
+);
+
+foreach ($l as $v) {
+ JHtmlSidebar::addEntry(JText::_($v[0]), 'index.php?option=' . $option . ($v[1] == '' ? '' : '&view=') . $v[1], ($view == $v[1] || $view == $v[1] . "edit" ? true : false));
+}
+
+/**
+ * Class AlworkshopsController
+ *
+ * @since 1.6
+ */
+class AlworkshopsController extends JControllerLegacy
+{
+ /**
+ * Method to display a view.
+ *
+ * @param boolean $cachable If true, the view output will be cached
+ * @param mixed $urlparams An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
+ *
+ * @return JController This object to support chaining.
+ *
+ * @since 1.5
+ */
+ public function display($cachable = false, $urlparams = false)
+ {
+ $view = JFactory::getApplication()->input->getCmd('view', '');
+ JFactory::getApplication()->input->set('view', $view);
+
+ parent::display($cachable, $urlparams);
+
+ return $this;
+ }
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/models/courseedit.php b/cadline/components/administrator/components/com_alworkshops/models/courseedit.php
index aa4e49af..43b4000b 100644
--- a/cadline/components/administrator/components/com_alworkshops/models/courseedit.php
+++ b/cadline/components/administrator/components/com_alworkshops/models/courseedit.php
@@ -1,104 +1,104 @@
-setQuery("SELECT c.*,s.kurzus FROM ".TABLE." c LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias WHERE c.id=".(int)$id." LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-
- public function saveItem($item=NULL,$id=NULL)
- {
- if (is_array($item))
- {
- $db=JFactory::getDbo();
- $query=$db->getQuery(true);
- $values=array();
-
- if ($id)
- {
- foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
- $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
- $db->setQuery($query);
- $result=$db->execute();
- }
- else
- {
- foreach ($item as $v) $values[]=$db->quote($v);
- $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
- $db->setQuery($query);
- $db->execute();
- $result=$db->insertid();
- }
- return ($result);
- }
- else
- {
- return (FALSE);
- }
- }
-
- public function getTemplates()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM #__categories WHERE alias='workshop-email-templates' LIMIT 1;");
- $result=$db->loadObjectList();
- if (count($result))
- {
- $db->setQuery("SELECT id,title FROM #__content WHERE catid=".$result[0]->id." AND state=1;");
- $ret=$db->loadObjectList();
- }
- return ($ret);
- }
-
- public function getAliases()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("SELECT `alias`,`kurzus` FROM alworkshops_switch WHERE `lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."' ORDER BY kurzus,alias;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getSwitch($alias='')
- {
- $ret=array();
- if (trim($alias)=="") return ($ret);
-
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE `alias`='".trim($alias)."' LIMIT 1;");
- $ret=$db->loadObjectList();
- return (count($ret) ? $ret[0] : array());
- }
-
- public function getTitles()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(c.`title`) AS `title`,s.`kurzus`
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY s.`kurzus`,c.`title`;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
- return $this->lang;
- }
+setQuery("SELECT c.*,s.kurzus FROM ".TABLE." c LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias WHERE c.id=".(int)$id." LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+
+ public function saveItem($item=NULL,$id=NULL)
+ {
+ if (is_array($item))
+ {
+ $db=JFactory::getDbo();
+ $query=$db->getQuery(true);
+ $values=array();
+
+ if ($id)
+ {
+ foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
+ $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
+ $db->setQuery($query);
+ $result=$db->execute();
+ }
+ else
+ {
+ foreach ($item as $v) $values[]=$db->quote($v);
+ $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
+ $db->setQuery($query);
+ $db->execute();
+ $result=$db->insertid();
+ }
+ return ($result);
+ }
+ else
+ {
+ return (FALSE);
+ }
+ }
+
+ public function getTemplates()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM #__categories WHERE alias='workshop-email-templates' LIMIT 1;");
+ $result=$db->loadObjectList();
+ if (count($result))
+ {
+ $db->setQuery("SELECT id,title FROM #__content WHERE catid=".$result[0]->id." AND state=1;");
+ $ret=$db->loadObjectList();
+ }
+ return ($ret);
+ }
+
+ public function getAliases()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT `alias`,`kurzus` FROM alworkshops_switch WHERE `lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."' ORDER BY kurzus,alias;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getSwitch($alias='')
+ {
+ $ret=array();
+ if (trim($alias)=="") return ($ret);
+
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE `alias`='".trim($alias)."' LIMIT 1;");
+ $ret=$db->loadObjectList();
+ return (count($ret) ? $ret[0] : array());
+ }
+
+ public function getTitles()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(c.`title`) AS `title`,s.`kurzus`
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY s.`kurzus`,c.`title`;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
+ return $this->lang;
+ }
}
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_alworkshops/models/educationedit.php b/cadline/components/administrator/components/com_alworkshops/models/educationedit.php
index 079bbc43..6644fc13 100644
--- a/cadline/components/administrator/components/com_alworkshops/models/educationedit.php
+++ b/cadline/components/administrator/components/com_alworkshops/models/educationedit.php
@@ -1,99 +1,99 @@
-setQuery("SELECT * FROM www_archline_hu.aleducation_courses WHERE id = {$id} LIMIT 1;");
- $result = $db->loadObjectList();
- return (count($result) ? $result[0] : FALSE);
- }
-
- public function saveItem($item = NULL, $id = NULL)
- {
- if (!is_array($item))
- return false;
-
- $files = array();
- $education = array();
-
- foreach ($item['courses'] as $key => $value) {
- $c_id = strtolower(str_replace(' ', '-', $value));
- $c_id = str_replace('&', '-', $c_id);
- $c_id = str_replace('---', '-', $c_id);
- $c_id = str_replace('--', '-', $c_id);
- $education[$c_id]['name'] = $value;
- $education[$c_id]['lessons'] = $item['lessons'][$key];
- }
-
- $encoded = json_encode($education, JSON_UNESCAPED_UNICODE);
-
- $json = '{"courses":' . $encoded . '}';
-
- $db = JFactory::getDbo();
- $query = $db->getQuery(true);
-
- $url = JFactory::getLanguage()->getTag() == 'hu-HU' ? "beiratkozas/tanfolyamok/" : "enrollments/courses/";
- $url .= strtolower(str_replace(' ', '-', $item['title']));
-
- $url = str_replace('&', '-', $url);
- $url = str_replace('---', '-', $url);
- $url = str_replace('--', '-', $url);
-
- $fileJson = '';
-
- if ($item['fileNames'][0] != '' && $item['fileLinks'][0] != '' && $item['articleID'][0] != '') {
- $files['name'] = $item['fileNames'];
- $files['link'] = $item['fileLinks'];
- $files['article'] = $item['articleID'];
- $fileJson = '{"files":' . json_encode($files, JSON_UNESCAPED_UNICODE) . '}';
- }
-
- $tomb = array(
- 'title' => $item['title'],
- 'lessons' => $json,
- 'published' => $item['published'],
- 'url' => $url,
- 'fileDownloadLink' => $fileJson,
- 'lang' => JFactory::getLanguage()->getTag() == 'hu-HU' ? "hun" : "eng",
- 'overviewID' => $item['overviewID']
- );
-
- if ($item['thumbnail'] != '')
- $tomb['image'] = $item['thumbnail'];
-
- if ($id) {
- foreach ($tomb as $k => $v)
- $values[] = $db->quoteName($k) . "=" . $db->quote($v);
-
- $query->update('`www_archline_hu`.`aleducation_courses`')->set($values)->where(array('`id`=' . (int)$id));
- $db->setQuery($query);
- $result = $db->execute();
- } else {
- foreach ($tomb as $v)
- $values[] = $db->quote($v);
-
- $query->insert('`www_archline_hu`.`aleducation_courses`')->columns($db->quoteName(array_keys($tomb)))->values(implode(',', $values));
- $db->setQuery($query);
- $db->execute();
-
- $result = $db->insertid();
- }
-
- return $result;
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) {
- $this->lang = JFactory::getLanguage()->getTag();
- }
- return $this->lang;
- }
-}
+setQuery("SELECT * FROM www_archline_hu.aleducation_courses WHERE id = {$id} LIMIT 1;");
+ $result = $db->loadObjectList();
+ return (count($result) ? $result[0] : FALSE);
+ }
+
+ public function saveItem($item = NULL, $id = NULL)
+ {
+ if (!is_array($item))
+ return false;
+
+ $files = array();
+ $education = array();
+
+ foreach ($item['courses'] as $key => $value) {
+ $c_id = strtolower(str_replace(' ', '-', $value));
+ $c_id = str_replace('&', '-', $c_id);
+ $c_id = str_replace('---', '-', $c_id);
+ $c_id = str_replace('--', '-', $c_id);
+ $education[$c_id]['name'] = $value;
+ $education[$c_id]['lessons'] = $item['lessons'][$key];
+ }
+
+ $encoded = json_encode($education, JSON_UNESCAPED_UNICODE);
+
+ $json = '{"courses":' . $encoded . '}';
+
+ $db = JFactory::getDbo();
+ $query = $db->getQuery(true);
+
+ $url = JFactory::getLanguage()->getTag() == 'hu-HU' ? "beiratkozas/tanfolyamok/" : "enrollments/courses/";
+ $url .= strtolower(str_replace(' ', '-', $item['title']));
+
+ $url = str_replace('&', '-', $url);
+ $url = str_replace('---', '-', $url);
+ $url = str_replace('--', '-', $url);
+
+ $fileJson = '';
+
+ if ($item['fileNames'][0] != '' && $item['fileLinks'][0] != '' && $item['articleID'][0] != '') {
+ $files['name'] = $item['fileNames'];
+ $files['link'] = $item['fileLinks'];
+ $files['article'] = $item['articleID'];
+ $fileJson = '{"files":' . json_encode($files, JSON_UNESCAPED_UNICODE) . '}';
+ }
+
+ $tomb = array(
+ 'title' => $item['title'],
+ 'lessons' => $json,
+ 'published' => $item['published'],
+ 'url' => $url,
+ 'fileDownloadLink' => $fileJson,
+ 'lang' => JFactory::getLanguage()->getTag() == 'hu-HU' ? "hun" : "eng",
+ 'overviewID' => $item['overviewID']
+ );
+
+ if ($item['thumbnail'] != '')
+ $tomb['image'] = $item['thumbnail'];
+
+ if ($id) {
+ foreach ($tomb as $k => $v)
+ $values[] = $db->quoteName($k) . "=" . $db->quote($v);
+
+ $query->update('`www_archline_hu`.`aleducation_courses`')->set($values)->where(array('`id`=' . (int)$id));
+ $db->setQuery($query);
+ $result = $db->execute();
+ } else {
+ foreach ($tomb as $v)
+ $values[] = $db->quote($v);
+
+ $query->insert('`www_archline_hu`.`aleducation_courses`')->columns($db->quoteName(array_keys($tomb)))->values(implode(',', $values));
+ $db->setQuery($query);
+ $db->execute();
+
+ $result = $db->insertid();
+ }
+
+ return $result;
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) {
+ $this->lang = JFactory::getLanguage()->getTag();
+ }
+ return $this->lang;
+ }
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/models/onlinesessionedit.php b/cadline/components/administrator/components/com_alworkshops/models/onlinesessionedit.php
index 7dc7cfc1..cd7a5457 100644
--- a/cadline/components/administrator/components/com_alworkshops/models/onlinesessionedit.php
+++ b/cadline/components/administrator/components/com_alworkshops/models/onlinesessionedit.php
@@ -1,118 +1,118 @@
-setQuery("SELECT * FROM ".TABLE." WHERE id=".(int)$id." LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-
- public function getSwitch($id=0)
- {
- if ((int)$id==0) return (FALSE);
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE id=".(int)$id." LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-
- public function saveItem($item=NULL,$id=NULL)
- {
- if (is_array($item))
- {
- /*$switch=$this->getSwitch($item['switchid']);
- $item['description']=$switch->title;*/
- $values=array();
-
- $db=JFactory::getDbo();
- $query=$db->getQuery(true);
-
- if ($id)
- {
- foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
- $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
- $db->setQuery($query);
- $result=$db->execute();
- }
- else
- {
- foreach ($item as $v) $values[]=$db->quote($v);
- $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
- $db->setQuery($query);
- $db->execute();
- $result=$db->insertid();
- }
- return ($result);
- }
- else
- {
- return (FALSE);
- }
- }
-
- public function getCourses()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $webinar = "";
-
- if($this->getLang() == 'hu-HU') {
- $webinar = "webinariumok";
- } else {
- $webinar = "webinars";
- }
- $db->setQuery("
- SELECT c.*
- FROM alworkshops_courses c
- WHERE c.alias = '{$webinar}'
- ORDER BY c.id DESC;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getTitles()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(c.`title`) AS `title`
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY `title`;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getDescriptions()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(c.`title`) AS `title`,s.id AS switchid
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.workshop='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY `title`;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
- return $this->lang;
- }
-
-
-}
+setQuery("SELECT * FROM ".TABLE." WHERE id=".(int)$id." LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+
+ public function getSwitch($id=0)
+ {
+ if ((int)$id==0) return (FALSE);
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE id=".(int)$id." LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+
+ public function saveItem($item=NULL,$id=NULL)
+ {
+ if (is_array($item))
+ {
+ /*$switch=$this->getSwitch($item['switchid']);
+ $item['description']=$switch->title;*/
+ $values=array();
+
+ $db=JFactory::getDbo();
+ $query=$db->getQuery(true);
+
+ if ($id)
+ {
+ foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
+ $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
+ $db->setQuery($query);
+ $result=$db->execute();
+ }
+ else
+ {
+ foreach ($item as $v) $values[]=$db->quote($v);
+ $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
+ $db->setQuery($query);
+ $db->execute();
+ $result=$db->insertid();
+ }
+ return ($result);
+ }
+ else
+ {
+ return (FALSE);
+ }
+ }
+
+ public function getCourses()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $webinar = "";
+
+ if($this->getLang() == 'hu-HU') {
+ $webinar = "webinariumok";
+ } else {
+ $webinar = "webinars";
+ }
+ $db->setQuery("
+ SELECT c.*
+ FROM alworkshops_courses c
+ WHERE c.alias = '{$webinar}'
+ ORDER BY c.id DESC;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getTitles()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(c.`title`) AS `title`
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY `title`;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getDescriptions()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(c.`title`) AS `title`,s.id AS switchid
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.workshop='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY `title`;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
+ return $this->lang;
+ }
+
+
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/models/sessionedit.php b/cadline/components/administrator/components/com_alworkshops/models/sessionedit.php
index 23fd2227..e5231cf5 100644
--- a/cadline/components/administrator/components/com_alworkshops/models/sessionedit.php
+++ b/cadline/components/administrator/components/com_alworkshops/models/sessionedit.php
@@ -1,112 +1,112 @@
-setQuery("SELECT * FROM ".TABLE." WHERE id=".(int)$id." LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-
- public function getSwitch($id=0)
- {
- if ((int)$id==0) return (FALSE);
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE id=".(int)$id." LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-
- public function saveItem($item=NULL,$id=NULL)
- {
- if (is_array($item))
- {
- $switch=$this->getSwitch($item['switchid']);
- $item['description']=$switch->title;
- $values=array();
-
- $db=JFactory::getDbo();
- $query=$db->getQuery(true);
-
- if ($id)
- {
- foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
- $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
- $db->setQuery($query);
- $result=$db->execute();
- }
- else
- {
- foreach ($item as $v) $values[]=$db->quote($v);
- $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
- $db->setQuery($query);
- $db->execute();
- $result=$db->insertid();
- }
- return ($result);
- }
- else
- {
- return (FALSE);
- }
- }
-
- public function getCourses()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT c.*
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY c.`id` DESC;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getTitles()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(c.`title`) AS `title`
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY `title`;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getDescriptions()
- {
- $ret=array();
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(s.`title`) AS `title`,s.id AS switchid
- FROM alworkshops_courses c
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE s.workshop='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
- ORDER BY `title`;");
- $ret=$db->loadObjectList();
- return ($ret);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
- return $this->lang;
- }
-
-
-}
+setQuery("SELECT * FROM ".TABLE." WHERE id=".(int)$id." LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+
+ public function getSwitch($id=0)
+ {
+ if ((int)$id==0) return (FALSE);
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM `alworkshops_switch` WHERE id=".(int)$id." LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+
+ public function saveItem($item=NULL,$id=NULL)
+ {
+ if (is_array($item))
+ {
+ $switch=$this->getSwitch($item['switchid']);
+ $item['description']=$switch->title;
+ $values=array();
+
+ $db=JFactory::getDbo();
+ $query=$db->getQuery(true);
+
+ if ($id)
+ {
+ foreach ($item as $k=>$v) $values[]=$db->quoteName($k)."=".$db->quote($v);
+ $query->update(TABLE)->set($values)->where(array('`id`='.(int)$id));
+ $db->setQuery($query);
+ $result=$db->execute();
+ }
+ else
+ {
+ foreach ($item as $v) $values[]=$db->quote($v);
+ $query->insert(TABLE)->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
+ $db->setQuery($query);
+ $db->execute();
+ $result=$db->insertid();
+ }
+ return ($result);
+ }
+ else
+ {
+ return (FALSE);
+ }
+ }
+
+ public function getCourses()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT c.*
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY c.`id` DESC;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getTitles()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(c.`title`) AS `title`
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.kurzus='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY `title`;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getDescriptions()
+ {
+ $ret=array();
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(s.`title`) AS `title`,s.id AS switchid
+ FROM alworkshops_courses c
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE s.workshop='Y' AND s.`lang`='".($this->getLang()=='hu-HU' ? 'hun' : 'eng')."'
+ ORDER BY `title`;");
+ $ret=$db->loadObjectList();
+ return ($ret);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=JFactory::getLanguage()->getTag(); }
+ return $this->lang;
+ }
+
+
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/views/courseedit/tmpl/default.php b/cadline/components/administrator/components/com_alworkshops/views/courseedit/tmpl/default.php
index 2af293f4..84920d3a 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/courseedit/tmpl/default.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/courseedit/tmpl/default.php
@@ -1,221 +1,221 @@
-
-
-
-
-
=($this->item->kurzus=='Y' ? JText::_('COM_ALWORKSHOPS_COURSE') : JText::_('COM_ALWORKSHOPS_WORKSHOP'))?>
-
-
-
-
- item->kurzus=='Y') :?>
-
=JText::_('COM_ALWORKSHOPS_SESSIONS')?>
-
-
-
-
-
=JText::_('COM_ALWORKSHOPS_APPLICATIONS')?>
-
-
-
-
-
-
-
-
+
+
+
+
+
=($this->item->kurzus=='Y' ? JText::_('COM_ALWORKSHOPS_COURSE') : JText::_('COM_ALWORKSHOPS_WORKSHOP'))?>
+
+
+
+
+ item->kurzus=='Y') :?>
+
=JText::_('COM_ALWORKSHOPS_SESSIONS')?>
+
+
+
+
+
=JText::_('COM_ALWORKSHOPS_APPLICATIONS')?>
+
+
+
+
+
+
+
+
diff --git a/cadline/components/administrator/components/com_alworkshops/views/courseedit/view.html.php b/cadline/components/administrator/components/com_alworkshops/views/courseedit/view.html.php
index c54515d5..930f73b0 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/courseedit/view.html.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/courseedit/view.html.php
@@ -1,90 +1,90 @@
-addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/style.css');
- JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/ajax.js');
- JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/main.js');
-
-// JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
-// JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
-
- $this->id=(int)$_GET['id'];
-
- $model=$this->getModel();
-
- if (isset($_POST['save']) || isset($_POST['saveexit']) || isset($_POST['savenew']))
- {
- $tomb = array(
- "title"=>trim(addslashes( ($_POST['title_new']>'' ? $_POST['title_new'] : $_POST['title']) )),
- "alias"=>trim(addslashes($_POST['alias'])),
- "price"=>trim(addslashes($_POST['price'])),
- "vat"=>(int)$_POST['vat'],
- "min_attend"=>(int)$_POST['min_attend'],
- "capacity"=>trim(addslashes($_POST['capacity'])),
- "location"=>trim(addslashes($_POST['location'])),
- "email_template"=>trim(addslashes($_POST['email_template'])),
- "start_date"=>trim(addslashes($_POST['start_date'])),
- "start_time"=>trim(addslashes($_POST['start_time'])),
- "finish_date"=>trim(addslashes($_POST['finish_date'])),
- "finish_time"=>trim(addslashes($_POST['finish_time'])),
- "published"=>strtoupper(trim(addslashes($_POST['published']))),
- "comment"=>trim($_POST['comment']),
- "course_level"=>trim($_POST['course_level']),
- "course_info"=>trim($_POST['course_info']),
- "course_name"=>trim($_POST['course_name']),
- "yt_link"=>trim($_POST['yt_link']),
- "external_link"=>trim($_POST['external_link'])
- );
-
- if ($_FILES['thumbnail']['size'] > 0) {
- $thumbnail_dir = "/public/img/webinar_thumbnails/";
- $target_dir = $_SERVER["DOCUMENT_ROOT"].$thumbnail_dir;
- $target_file = $target_dir.basename($_FILES["thumbnail"]["name"]);
-
- $tomb['thumbnail'] = $thumbnail_dir.basename($_FILES["thumbnail"]["name"]);
-
- if (!file_exists($target_file)) {
- move_uploaded_file($_FILES["thumbnail"]["tmp_name"], $target_file);
- }
- }
-
- if ($this->id)
- {
- $model->saveItem($tomb,$this->id);
- }
- else
- {
- $newID=$model->saveItem($tomb,NULL);
- }
-
- if (isset($_POST['save']) && !$this->id) { JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'&id='.$newID); }
- if (isset($_POST['savenew'])) { JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'&id=0'); }
- if (isset($_POST['saveexit'])){ JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.substr(JFactory::getApplication()->input->get('view'),0,-4)); }
- }
-
- $this->item=$model->getItem($this->id);
- $this->aliases=$model->getAliases();
- $this->switch=$model->getSwitch($this->item->alias);
- $this->titles=$model->getTitles();
- $this->templates=$model->getTemplates();
- if (isset($this->switch->comment) && $this->switch->comment==='Y') $this->editor=&JFactory::getEditor();
- $this->addToolBar();
- parent::display($tpl);
- }
-
- protected function addToolBar()
- {
- JToolBarHelper::title(JText::_('COM_ALWORKSHOPS').' - '.($this->id=="0" ? jText::_('COM_ALWORKSHOPS_NEW') : jText::_('COM_ALWORKSHOPS_EDIT').": ".$this->item->title )." - ".$this->id);
- }
-}
-?>
+addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/style.css');
+ JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/ajax.js');
+ JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/main.js');
+
+// JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
+// JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
+
+ $this->id=(int)$_GET['id'];
+
+ $model=$this->getModel();
+
+ if (isset($_POST['save']) || isset($_POST['saveexit']) || isset($_POST['savenew']))
+ {
+ $tomb = array(
+ "title"=>trim(addslashes( ($_POST['title_new']>'' ? $_POST['title_new'] : $_POST['title']) )),
+ "alias"=>trim(addslashes($_POST['alias'])),
+ "price"=>trim(addslashes($_POST['price'])),
+ "vat"=>(int)$_POST['vat'],
+ "min_attend"=>(int)$_POST['min_attend'],
+ "capacity"=>trim(addslashes($_POST['capacity'])),
+ "location"=>trim(addslashes($_POST['location'])),
+ "email_template"=>trim(addslashes($_POST['email_template'])),
+ "start_date"=>trim(addslashes($_POST['start_date'])),
+ "start_time"=>trim(addslashes($_POST['start_time'])),
+ "finish_date"=>trim(addslashes($_POST['finish_date'])),
+ "finish_time"=>trim(addslashes($_POST['finish_time'])),
+ "published"=>strtoupper(trim(addslashes($_POST['published']))),
+ "comment"=>trim($_POST['comment']),
+ "course_level"=>trim($_POST['course_level']),
+ "course_info"=>trim($_POST['course_info']),
+ "course_name"=>trim($_POST['course_name']),
+ "yt_link"=>trim($_POST['yt_link']),
+ "external_link"=>trim($_POST['external_link'])
+ );
+
+ if ($_FILES['thumbnail']['size'] > 0) {
+ $thumbnail_dir = "/public/img/webinar_thumbnails/";
+ $target_dir = $_SERVER["DOCUMENT_ROOT"].$thumbnail_dir;
+ $target_file = $target_dir.basename($_FILES["thumbnail"]["name"]);
+
+ $tomb['thumbnail'] = $thumbnail_dir.basename($_FILES["thumbnail"]["name"]);
+
+ if (!file_exists($target_file)) {
+ move_uploaded_file($_FILES["thumbnail"]["tmp_name"], $target_file);
+ }
+ }
+
+ if ($this->id)
+ {
+ $model->saveItem($tomb,$this->id);
+ }
+ else
+ {
+ $newID=$model->saveItem($tomb,NULL);
+ }
+
+ if (isset($_POST['save']) && !$this->id) { JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'&id='.$newID); }
+ if (isset($_POST['savenew'])) { JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'&id=0'); }
+ if (isset($_POST['saveexit'])){ JFactory::getApplication()->redirect('index.php?option='.JFactory::getApplication()->input->get('option').'&view='.substr(JFactory::getApplication()->input->get('view'),0,-4)); }
+ }
+
+ $this->item=$model->getItem($this->id);
+ $this->aliases=$model->getAliases();
+ $this->switch=$model->getSwitch($this->item->alias);
+ $this->titles=$model->getTitles();
+ $this->templates=$model->getTemplates();
+ if (isset($this->switch->comment) && $this->switch->comment==='Y') $this->editor=&JFactory::getEditor();
+ $this->addToolBar();
+ parent::display($tpl);
+ }
+
+ protected function addToolBar()
+ {
+ JToolBarHelper::title(JText::_('COM_ALWORKSHOPS').' - '.($this->id=="0" ? jText::_('COM_ALWORKSHOPS_NEW') : jText::_('COM_ALWORKSHOPS_EDIT').": ".$this->item->title )." - ".$this->id);
+ }
+}
+?>
diff --git a/cadline/components/administrator/components/com_alworkshops/views/education/tmpl/default.php b/cadline/components/administrator/components/com_alworkshops/views/education/tmpl/default.php
index cf790263..0404a70e 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/education/tmpl/default.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/education/tmpl/default.php
@@ -1,91 +1,91 @@
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_alworkshops/views/education/view.html.php b/cadline/components/administrator/components/com_alworkshops/views/education/view.html.php
index 738f6870..0dc00680 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/education/view.html.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/education/view.html.php
@@ -1,28 +1,28 @@
-addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/style.css');
-// JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
- JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/ajax.js');
- JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/main.js');
-// JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
-
- $this->addToolBar();
-
- parent::display($tpl);
- }
-
- protected function addToolBar()
- {
- JToolBarHelper::title(JText::_('COM_ALWORKSHOPS').' - '.JText::_('COM_ALWORKSHOPS_EDUCATION'));
- JToolBarHelper::back(JText::_('COM_ALWORKSHOPS_NEW'), 'index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'edit&id=0');
- }
-}
+addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/style.css');
+// JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
+ JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/ajax.js');
+ JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/main.js');
+// JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
+
+ $this->addToolBar();
+
+ parent::display($tpl);
+ }
+
+ protected function addToolBar()
+ {
+ JToolBarHelper::title(JText::_('COM_ALWORKSHOPS').' - '.JText::_('COM_ALWORKSHOPS_EDUCATION'));
+ JToolBarHelper::back(JText::_('COM_ALWORKSHOPS_NEW'), 'index.php?option='.JFactory::getApplication()->input->get('option').'&view='.JFactory::getApplication()->input->get('view').'edit&id=0');
+ }
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/views/educationedit/tmpl/default.php b/cadline/components/administrator/components/com_alworkshops/views/educationedit/tmpl/default.php
index f49a2b9f..8b829d8d 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/educationedit/tmpl/default.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/educationedit/tmpl/default.php
@@ -1,286 +1,286 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_alworkshops/views/educationedit/view.html.php b/cadline/components/administrator/components/com_alworkshops/views/educationedit/view.html.php
index 95c3d764..361803f3 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/educationedit/view.html.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/educationedit/view.html.php
@@ -1,80 +1,80 @@
-addStyleSheet('/administrator/components/' . JFactory::getApplication()->input->get('option') . '/assets/css/style.css');
- // JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
- // JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
-
- $this->id = (int)$_GET['id'];
-
- $model = $this->getModel();
-
- if (isset($_POST['save']) || isset($_POST['saveexit']) || isset($_POST['savenew']) && $_POST['ename'] != '') {
- $tomb = array(
- "title" => trim(addslashes($_POST['ename'])),
- "courses" => $_POST['courses'],
- "published" => strtoupper(trim(addslashes($_POST['published']))),
- "lessons" => $_POST['lesson'],
- "fileNames" => $_POST['file_name'],
- "fileLinks" => $_POST['file_link'],
- "articleID" => $_POST['article_id'],
- "overviewID" => $_POST['overview_id']
- );
-
- if ($_FILES['thumbnail']['size'] > 0) {
- $thumbnail_dir = "/public/img/education_thumbnails/";
- $target_dir = $_SERVER["DOCUMENT_ROOT"] . $thumbnail_dir;
- $target_file = $target_dir . basename($_FILES["thumbnail"]["name"]);
-
- $tomb['thumbnail'] = $thumbnail_dir . basename($_FILES["thumbnail"]["name"]);
-
- if (!file_exists($target_file)) {
- move_uploaded_file($_FILES["thumbnail"]["tmp_name"], $target_file);
- }
- }
-
- if ($this->id && $this->id > 0) {
- $model->saveItem($tomb, $this->id);
- } else {
- $newID = $model->saveItem($tomb, NULL);
- }
-
- if (isset($_POST['save']) && !$this->id) {
- JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . JFactory::getApplication()->input->get('view') . '&id=' . $newID);
- }
-
- if (isset($_POST['savenew'])) {
- JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . JFactory::getApplication()->input->get('view') . '&id=0');
- }
-
- if (isset($_POST['saveexit'])) {
- JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . substr(JFactory::getApplication()->input->get('view'), 0, -4));
- }
- }
-
- $this->item = $model->getItem($this->id);
-
- if ($this->id && $this->id > 0) {
- $this->item->courses = json_decode($this->item->lessons)->courses;
- $this->item->files = json_decode($this->item->fileDownloadLink)->files;
- }
-
- $this->addToolBar();
-
- parent::display($tpl);
- }
-
- protected function addToolBar()
- {
- JToolBarHelper::title(JText::_('COM_ALWORKSHOPS') . ' - ' . JText::_('COM_ALWORKSHOPS_EDUCATION') . ' - ' . ($this->id == "0" ? jText::_('COM_ALWORKSHOPS_NEW') : jText::_('COM_ALWORKSHOPS_EDIT') . ": " . $this->id));
- }
-}
+addStyleSheet('/administrator/components/' . JFactory::getApplication()->input->get('option') . '/assets/css/style.css');
+ // JFactory::getDocument()->addStyleSheet('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/css/jquery-ui.css');
+ // JFactory::getDocument()->addScript('/administrator/components/'.JFactory::getApplication()->input->get('option').'/assets/js/jquery-ui.js');
+
+ $this->id = (int)$_GET['id'];
+
+ $model = $this->getModel();
+
+ if (isset($_POST['save']) || isset($_POST['saveexit']) || isset($_POST['savenew']) && $_POST['ename'] != '') {
+ $tomb = array(
+ "title" => trim(addslashes($_POST['ename'])),
+ "courses" => $_POST['courses'],
+ "published" => strtoupper(trim(addslashes($_POST['published']))),
+ "lessons" => $_POST['lesson'],
+ "fileNames" => $_POST['file_name'],
+ "fileLinks" => $_POST['file_link'],
+ "articleID" => $_POST['article_id'],
+ "overviewID" => $_POST['overview_id']
+ );
+
+ if ($_FILES['thumbnail']['size'] > 0) {
+ $thumbnail_dir = "/public/img/education_thumbnails/";
+ $target_dir = $_SERVER["DOCUMENT_ROOT"] . $thumbnail_dir;
+ $target_file = $target_dir . basename($_FILES["thumbnail"]["name"]);
+
+ $tomb['thumbnail'] = $thumbnail_dir . basename($_FILES["thumbnail"]["name"]);
+
+ if (!file_exists($target_file)) {
+ move_uploaded_file($_FILES["thumbnail"]["tmp_name"], $target_file);
+ }
+ }
+
+ if ($this->id && $this->id > 0) {
+ $model->saveItem($tomb, $this->id);
+ } else {
+ $newID = $model->saveItem($tomb, NULL);
+ }
+
+ if (isset($_POST['save']) && !$this->id) {
+ JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . JFactory::getApplication()->input->get('view') . '&id=' . $newID);
+ }
+
+ if (isset($_POST['savenew'])) {
+ JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . JFactory::getApplication()->input->get('view') . '&id=0');
+ }
+
+ if (isset($_POST['saveexit'])) {
+ JFactory::getApplication()->redirect('index.php?option=' . JFactory::getApplication()->input->get('option') . '&view=' . substr(JFactory::getApplication()->input->get('view'), 0, -4));
+ }
+ }
+
+ $this->item = $model->getItem($this->id);
+
+ if ($this->id && $this->id > 0) {
+ $this->item->courses = json_decode($this->item->lessons)->courses;
+ $this->item->files = json_decode($this->item->fileDownloadLink)->files;
+ }
+
+ $this->addToolBar();
+
+ parent::display($tpl);
+ }
+
+ protected function addToolBar()
+ {
+ JToolBarHelper::title(JText::_('COM_ALWORKSHOPS') . ' - ' . JText::_('COM_ALWORKSHOPS_EDUCATION') . ' - ' . ($this->id == "0" ? jText::_('COM_ALWORKSHOPS_NEW') : jText::_('COM_ALWORKSHOPS_EDIT') . ": " . $this->id));
+ }
+}
diff --git a/cadline/components/administrator/components/com_alworkshops/views/sessionedit/tmpl/default.php b/cadline/components/administrator/components/com_alworkshops/views/sessionedit/tmpl/default.php
index a6697f61..5310bed4 100644
--- a/cadline/components/administrator/components/com_alworkshops/views/sessionedit/tmpl/default.php
+++ b/cadline/components/administrator/components/com_alworkshops/views/sessionedit/tmpl/default.php
@@ -1,89 +1,89 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/cadline/components/administrator/components/com_followedlinks/assets/ajax/AjaxFollowedlinksController.class.php b/cadline/components/administrator/components/com_followedlinks/assets/ajax/AjaxFollowedlinksController.class.php
index cf6cd87a..6cceed57 100644
--- a/cadline/components/administrator/components/com_followedlinks/assets/ajax/AjaxFollowedlinksController.class.php
+++ b/cadline/components/administrator/components/com_followedlinks/assets/ajax/AjaxFollowedlinksController.class.php
@@ -1,85 +1,85 @@
-pf]["_POST"]) || trim($_POST['refresh'])=='' ) $_SESSION[$this->pf]["_POST"]=$_POST;
- $se=&$_SESSION[$this->pf]['_POST'];
- $felt="";
- $arrIcons=array(
- 'smallEdit'=>array("href"=>"index.php?option=com_followedlinks&view=linkedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
- );
-
- if ($this->auth()==FALSE) die();
-
- if (!isset($_SESSION[$this->pf]['tableorder'])) $_SESSION[$this->pf]['tableorder']='id DESC';
-
- if (isset($se['string']) && trim($se['string'])>"") $felt.=" AND (`name` LIKE '%".trim($se['string'])."%' OR `alias` LIKE '%".trim($se['string'])."%' OR `esem_cont` LIKE '%".trim($se['string'])."%' OR `redirect` LIKE '%".trim($se['string'])."%')";
-
- $cl=($this->getLang()=='hun' ? 'hu-HU' : 'en-GB');
- $LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$cl."/".$cl.".com_followedlinks.ini");
-
- $objTabla=New TableHelper();
- $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>'tablediv'));
- $v=$objTabla->setSession();
- $objTabla->setColumn('id',array('header'=>'Id','width'=>'40px','link'=>'index.php?option=com_followedlinks&view=linkedit&id=REPLACE'));
- $objTabla->setColumn('name',array('header'=>$LANG['COM_FOLLOWEDLINKS_NAME'],'format'=>'text','align'=>'left','strlen'=>30,'width'=>'200px','link'=>'index.php?option=com_followedlinks&view=linkedit&id=REPLACE','linkjoin'=>'id'));
- $objTabla->setColumn('alias',array('header'=>$LANG['COM_FOLLOWEDLINKS_ALIAS'],'format'=>'text','align'=>'left'));
- $objTabla->setColumn('esem_id',array('header'=>str_replace(' ', ' ', $LANG['COM_FOLLOWEDLINKS_EVENT_NUMBER']),'format'=>'number','decimal'=>0,'width'=>'50px'));
- $objTabla->setColumn('esem_cont',array('header'=>$LANG['COM_FOLLOWEDLINKS_EVENT_CONTENT'],'format'=>'text','align'=>'left','strlen'=>30,'width'=>'200px'));
- $objTabla->setColumn('redirect',array('header'=>$LANG['COM_FOLLOWEDLINKS_REDIRECT'],'format'=>'text','align'=>'left'));
- $objTabla->setColumn('options',array('header'=>$LANG['COM_FOLLOWEDLINKS_OPTIONS'],'align'=>'right','width'=>'60px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
- $objTabla->setQuery(array("
- SELECT id,name,alias,esem_id,esem_cont,REPLACE(REPLACE(`redirect`,'http://www.archline.hu',''),'http://www.archlinexp.com','') AS redirect,'smallEdit' AS options
- FROM followed_links
- WHERE `lang`='".$this->getLang()."' ".$felt
- .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
- .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
- SELECT COUNT(*) AS recordCount
- FROM (
- SELECT *
- FROM followed_links
- WHERE `lang`='".$this->getLang()."' ".$felt."
- ) x"
- ));
-// $this->printSession($this->pf);
-// print "".print_r($_SESSION,true)." ";
- $objTabla->drawTable(TRUE);
- }
-
- public function auth()
- {
- MySqlHelper::getInstance()->query("
- (SELECT * FROM jml_session where session_id='".trim(addslashes($_POST['sess']))."' LIMIT 1)
- UNION
- (SELECT * FROM eng_session where session_id='".trim(addslashes($_POST['sess']))."' LIMIT 1);");
- $sess=MySqlHelper::getInstance()->fetchAssoc();
- if (count($sess))
- {
- MySqlHelper::getInstance()->query("SELECT * FROM jml_user_usergroup_map where group_id IN (7,8) AND user_id=".$sess[0]['userid'].";");
- $admin=MySqlHelper::getInstance()->fetchAssoc();
- return (count($admin) ? TRUE : FALSE);
- }
- else
- {
- return(FALSE);
- }
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) { $this->lang=(strpos( $_SERVER['HTTP_HOST'], ".com") ? "eng" : "hun"); }
- return $this->lang;
- }
-} // end of class
-
-$controller=new Controller();
-$controller->run();
-?>
-
+pf]["_POST"]) || trim($_POST['refresh'])=='' ) $_SESSION[$this->pf]["_POST"]=$_POST;
+ $se=&$_SESSION[$this->pf]['_POST'];
+ $felt="";
+ $arrIcons=array(
+ 'smallEdit'=>array("href"=>"index.php?option=com_followedlinks&view=linkedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"id","alttext"=>"Edit" ),
+ );
+
+ if ($this->auth()==FALSE) die();
+
+ if (!isset($_SESSION[$this->pf]['tableorder'])) $_SESSION[$this->pf]['tableorder']='id DESC';
+
+ if (isset($se['string']) && trim($se['string'])>"") $felt.=" AND (`name` LIKE '%".trim($se['string'])."%' OR `alias` LIKE '%".trim($se['string'])."%' OR `esem_cont` LIKE '%".trim($se['string'])."%' OR `redirect` LIKE '%".trim($se['string'])."%')";
+
+ $cl=($this->getLang()=='hun' ? 'hu-HU' : 'en-GB');
+ $LANG=parse_ini_file($_SERVER['DOCUMENT_ROOT']."/administrator/language/".$cl."/".$cl.".com_followedlinks.ini");
+
+ $objTabla=New TableHelper();
+ $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','tablediv'=>'tablediv'));
+ $v=$objTabla->setSession();
+ $objTabla->setColumn('id',array('header'=>'Id','width'=>'40px','link'=>'index.php?option=com_followedlinks&view=linkedit&id=REPLACE'));
+ $objTabla->setColumn('name',array('header'=>$LANG['COM_FOLLOWEDLINKS_NAME'],'format'=>'text','align'=>'left','strlen'=>30,'width'=>'200px','link'=>'index.php?option=com_followedlinks&view=linkedit&id=REPLACE','linkjoin'=>'id'));
+ $objTabla->setColumn('alias',array('header'=>$LANG['COM_FOLLOWEDLINKS_ALIAS'],'format'=>'text','align'=>'left'));
+ $objTabla->setColumn('esem_id',array('header'=>str_replace(' ', ' ', $LANG['COM_FOLLOWEDLINKS_EVENT_NUMBER']),'format'=>'number','decimal'=>0,'width'=>'50px'));
+ $objTabla->setColumn('esem_cont',array('header'=>$LANG['COM_FOLLOWEDLINKS_EVENT_CONTENT'],'format'=>'text','align'=>'left','strlen'=>30,'width'=>'200px'));
+ $objTabla->setColumn('redirect',array('header'=>$LANG['COM_FOLLOWEDLINKS_REDIRECT'],'format'=>'text','align'=>'left'));
+ $objTabla->setColumn('options',array('header'=>$LANG['COM_FOLLOWEDLINKS_OPTIONS'],'align'=>'right','width'=>'60px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'id'));
+ $objTabla->setQuery(array("
+ SELECT id,name,alias,esem_id,esem_cont,REPLACE(REPLACE(`redirect`,'http://www.archline.hu',''),'http://www.archlinexp.com','') AS redirect,'smallEdit' AS options
+ FROM followed_links
+ WHERE `lang`='".$this->getLang()."' ".$felt
+ .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
+ .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
+ SELECT COUNT(*) AS recordCount
+ FROM (
+ SELECT *
+ FROM followed_links
+ WHERE `lang`='".$this->getLang()."' ".$felt."
+ ) x"
+ ));
+// $this->printSession($this->pf);
+// print "".print_r($_SESSION,true)." ";
+ $objTabla->drawTable(TRUE);
+ }
+
+ public function auth()
+ {
+ MySqlHelper::getInstance()->query("
+ (SELECT * FROM jml_session where session_id='".trim(addslashes($_POST['sess']))."' LIMIT 1)
+ UNION
+ (SELECT * FROM eng_session where session_id='".trim(addslashes($_POST['sess']))."' LIMIT 1);");
+ $sess=MySqlHelper::getInstance()->fetchAssoc();
+ if (count($sess))
+ {
+ MySqlHelper::getInstance()->query("SELECT * FROM jml_user_usergroup_map where group_id IN (7,8) AND user_id=".$sess[0]['userid'].";");
+ $admin=MySqlHelper::getInstance()->fetchAssoc();
+ return (count($admin) ? TRUE : FALSE);
+ }
+ else
+ {
+ return(FALSE);
+ }
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) { $this->lang=(strpos( $_SERVER['HTTP_HOST'], ".com") ? "eng" : "hun"); }
+ return $this->lang;
+ }
+} // end of class
+
+$controller=new Controller();
+$controller->run();
+?>
+
diff --git a/cadline/components/administrator/components/com_followedlinks/followedlinks.xml b/cadline/components/administrator/components/com_followedlinks/followedlinks.xml
index 20011955..5a353862 100644
--- a/cadline/components/administrator/components/com_followedlinks/followedlinks.xml
+++ b/cadline/components/administrator/components/com_followedlinks/followedlinks.xml
@@ -1,44 +1,44 @@
-
-
- Followedlinks
-
- July 2015
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.0.6
-
- Description of the Followedlinks component ...
-
-
-
- COM_FOLLOWEDLINKS_FOLLOWEDLINKS
-
- COM_FOLLOWEDLINKS_CONTROL_PANEL
- COM_FOLLOWEDLINKS_FOLLOWEDLINKS
-
-
-
-
-
-
- index.html
- followedlinks.php
- controller.php
- assets
- helpers
- models
- views
-
-
-
- hu-HU.com_followedlinks.ini
- hu-HU.com_followedlinks.sys.ini
- en-GB.com_followedlinks.ini
- en-GB.com_followedlinks.sys.ini
-
-
+
+
+ Followedlinks
+
+ July 2015
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.0.6
+
+ Description of the Followedlinks component ...
+
+
+
+ COM_FOLLOWEDLINKS_FOLLOWEDLINKS
+
+ COM_FOLLOWEDLINKS_CONTROL_PANEL
+ COM_FOLLOWEDLINKS_FOLLOWEDLINKS
+
+
+
+
+
+
+ index.html
+ followedlinks.php
+ controller.php
+ assets
+ helpers
+ models
+ views
+
+
+
+ hu-HU.com_followedlinks.ini
+ hu-HU.com_followedlinks.sys.ini
+ en-GB.com_followedlinks.ini
+ en-GB.com_followedlinks.sys.ini
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_nonprofit/nonprofit.xml b/cadline/components/administrator/components/com_nonprofit/nonprofit.xml
index e1680db0..f7edc13f 100644
--- a/cadline/components/administrator/components/com_nonprofit/nonprofit.xml
+++ b/cadline/components/administrator/components/com_nonprofit/nonprofit.xml
@@ -1,35 +1,35 @@
-
-
- Nonprofit
-
- February 2015
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.0.1
-
- Description of the nonprofit component ...
-
-
- hu-HU/hu-HU.com_nonprofit.ini
- hu-HU/hu-HU.com_nonprofit.sys.ini
- en-GB/en-GB.com_nonprofit.ini
- en-GB/en-GB.com_nonprofit.sys.ini
-
-
-
-
-
- index.html
- nonprofit.php
- controller.php
- views
- models
-
-
-
-
+
+
+ Nonprofit
+
+ February 2015
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.0.1
+
+ Description of the nonprofit component ...
+
+
+ hu-HU/hu-HU.com_nonprofit.ini
+ hu-HU/hu-HU.com_nonprofit.sys.ini
+ en-GB/en-GB.com_nonprofit.ini
+ en-GB/en-GB.com_nonprofit.sys.ini
+
+
+
+
+
+ index.html
+ nonprofit.php
+ controller.php
+ views
+ models
+
+
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_presentation/presentation.xml b/cadline/components/administrator/components/com_presentation/presentation.xml
index ae594e5f..5016bd43 100644
--- a/cadline/components/administrator/components/com_presentation/presentation.xml
+++ b/cadline/components/administrator/components/com_presentation/presentation.xml
@@ -1,37 +1,37 @@
-
-
- Presentation
-
- September 2015
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.0.1
-
- Description of the presentation component ...
-
-
-
-
- hu-HU/hu-HU.com_presentation.ini
- hu-HU/hu-HU.com_presentation.sys.ini
- en-GB/en-GB.com_presentation.ini
- en-GB/en-GB.com_presentation.sys.ini
-
-
-
-
- index.html
- presentation.php
- controller.php
- views
- models
- assets
-
-
-
-
+
+
+ Presentation
+
+ September 2015
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.0.1
+
+ Description of the presentation component ...
+
+
+
+
+ hu-HU/hu-HU.com_presentation.ini
+ hu-HU/hu-HU.com_presentation.sys.ini
+ en-GB/en-GB.com_presentation.ini
+ en-GB/en-GB.com_presentation.sys.ini
+
+
+
+
+ index.html
+ presentation.php
+ controller.php
+ views
+ models
+ assets
+
+
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_project/project.xml b/cadline/components/administrator/components/com_project/project.xml
index c88d2789..3968e698 100644
--- a/cadline/components/administrator/components/com_project/project.xml
+++ b/cadline/components/administrator/components/com_project/project.xml
@@ -1,62 +1,62 @@
-
-
- Project
- July 2015
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
- 0.0.1
- COM_PROJECT_DESCRIPTION
-
-
-
-
-
- hu-HU.com_project.ini
- hu-HU.com_project.sys.ini
- en-GB.com_project.ini
- en-GB.com_project.sys.ini
-
-
-
- COM_PROJECT_PROJECTS
-
- COM_PROJECT_CONTROL_PANEL
- COM_PROJECT_PROJECTS
- COM_PROJECT_TYPES
-
-
-
-
- index.html
- project.php
- controller.php
- assets
- helpers
- models
- views
-
-
-
-
-
-
-
-
-
- index.html
- project.php
- controller.php
- assets
- views
- models
-
-
+
+
+ Project
+ July 2015
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+ 0.0.1
+ COM_PROJECT_DESCRIPTION
+
+
+
+
+
+ hu-HU.com_project.ini
+ hu-HU.com_project.sys.ini
+ en-GB.com_project.ini
+ en-GB.com_project.sys.ini
+
+
+
+ COM_PROJECT_PROJECTS
+
+ COM_PROJECT_CONTROL_PANEL
+ COM_PROJECT_PROJECTS
+ COM_PROJECT_TYPES
+
+
+
+
+ index.html
+ project.php
+ controller.php
+ assets
+ helpers
+ models
+ views
+
+
+
+
+
+
+
+
+
+ index.html
+ project.php
+ controller.php
+ assets
+ views
+ models
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxProductsController.class.php b/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxProductsController.class.php
index 3f3cab52..05b81b47 100644
--- a/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxProductsController.class.php
+++ b/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxProductsController.class.php
@@ -1,226 +1,226 @@
-pf]["_POST"]) || trim($_POST["refresh"]) == "") $_SESSION[$this->pf]["_POST"] = $_POST;
- if (isset($_POST['uploadForm']) && !isset($_SESSION[$this->pf]["_POST"][$this->pf . "_tableipp"])) $_SESSION[$this->pf]['_POST'][$this->pf . "_tableipp"] = 5;
- if (isset($_POST['uploadForm']) && !isset($_SESSION[$this->pf]["tableipp"])) $_SESSION[$this->pf]["tableipp"] = 5;
- $se = &$_SESSION[$this->pf]['_POST'];
- $felt = "";
- $arrIcons = array(
- 'smallView' => array("href" => "REPLACE", "img" => IconHelper::getIcon("smallView"), "linkjoin" => "logo", "alttext" => "Preview"),
- 'smallMissingView' => array("href" => "REPLACE", "img" => IconHelper::getIcon("smallMissingView"), "linkjoin" => "logo", "alttext" => "Preview"),
- 'smallError' => array("href" => "REPLACE", "img" => IconHelper::getIcon("smallError"), "linkjoin" => "filedir", "alttext" => "Missing"),
- 'smallEnable' => array("onclick" => "javascript:if (confirm('Are you sure?')) {setField('','" . $this->pf . "_event','disable','tablediv');setField('" . $this->pf . "','" . $this->pf . "_value','REPLACE','tablediv');}", "img" => IconHelper::getIcon("smallEnable")),
- 'smallDisable' => array("onclick" => "javascript:if (confirm('Are you sure?')) {setField('','" . $this->pf . "_event','enable','tablediv');setField('" . $this->pf . "','" . $this->pf . "_value','REPLACE','tablediv');}", 'img' => IconHelper::getIcon("smallDisable")),
- 'smallDel' => array("onclick" => "javascript:if (confirm('Are you sure?')) {setField('','" . $this->pf . "_event','delete','tablediv');setField('" . $this->pf . "','" . $this->pf . "_value','REPLACE','tablediv');}", 'img' => IconHelper::getIcon("smallDel")),
- 'smallEdit' => array("href" => "index.php?option=com_showroom&view=productedit&id=REPLACE", "img" => IconHelper::getIcon("smallEdit"), "linkjoin" => "id", "alttext" => "Edit"),
- );
-
- if ($this->auth() == FALSE) die();
-
- // multi-edit
- if (isset($_POST['cb']) && is_array($_POST['cb']) && count($_POST['cb']) && (trim($_POST['me_tipus']) > '' || (int)$_POST['me_m_id'] > 0 || (int)$_POST['me_c_id'] > 0 || (int)$_POST['me_subcat'] > 0)) {
- foreach ($_POST['cb'] as $k => $v) {
- MySqlHelper::getInstance()->query("SELECT * FROM collection2 WHERE o_id=" . (int)$v . " LIMIT 1;");
- $orig = MySqlHelper::getInstance()->fetchAssoc();
- $orig = $orig[0];
-
- $sql = "UPDATE collection2 SET ";
- if (trim($_POST['me_tipus']) > '') $sql .= " tipus='" . trim(addslashes($_POST['me_tipus'])) . "',";
- if ((int)$_POST['me_m_id'] > 0) $sql .= " m_id='" . (int)$_POST['me_m_id'] . "',";
- if ((int)$_POST['me_c_id'] > 0) $sql .= " c_id='" . (int)$_POST['me_c_id'] . "',";
- if ((int)$_POST['me_subcat'] > 0) $sql .= " struct_id='" . (int)$_POST['me_subcat'] . "',";
- MySqlHelper::getInstance()->query(substr($sql, 0, -1) . " WHERE o_id=" . (int)$v . " LIMIT 1;");
-
- if ((int)$_POST['me_m_id'] > 0 && $orig['m_id'] != (int)$_POST['me_m_id']) {
- MySqlHelper::getInstance()->query("SELECT dir FROM coll2_man WHERE id=" . (int)$orig['m_id'] . " LIMIT 1;");
- $from = MySqlHelper::getInstance()->fetchAssoc();
- $from = $_SERVER['DOCUMENT_ROOT'] . "/public/img/collection/" . $from[0]['dir'] . "/" . (int)$v;
-
- MySqlHelper::getInstance()->query("SELECT dir FROM coll2_man WHERE id=" . (int)$_POST['me_m_id'] . " LIMIT 1;");
- $to = MySqlHelper::getInstance()->fetchAssoc();
- $to = $_SERVER['DOCUMENT_ROOT'] . "/public/img/collection/" . $to[0]['dir'] . "/" . (int)$v;
-
- if (is_dir($from) && !is_dir($to)) rename($from, $to);
-
- $from = str_replace("img/", "", $from);
- $to = str_replace("img/", "", $to);
-
- if (is_dir($from) && !is_dir($to)) rename($from, $to);
- }
- }
- }
-
- // click-edit (enable/disable)
- if (isset($_POST[$this->pf . '_event']) and trim($_POST[$this->pf . '_event']) > '') {
- $event = trim(strtolower(addslashes((string)$_POST[$this->pf . '_event'])));
- $value = trim(strtolower(addslashes((string)$_POST[$this->pf . '_value'])));
- if ((int)$value > 0) {
- switch ($event) {
- case 'enable': {
- MySqlHelper::getInstance()->query("UPDATE collection2 SET deleted=0 WHERE o_id=" . $value);
- break;
- }
- case 'disable': {
- MySqlHelper::getInstance()->query("UPDATE collection2 SET deleted=1 WHERE o_id=" . $value);
- break;
- }
- case 'delete': {
- MySqlHelper::getInstance()->query("DELETE FROM collection2 WHERE o_id=" . $value . " LIMIT 1;");
- break;
- }
- }
- }
- }
-
- if (isset($se['oid']) && $se['oid'] > "") {
- if (strpos($se['oid'], "-")) {
- $reszek = explode("-", $se['oid']);
- $felt .= ((int)$reszek[0] < (int)$reszek[1] ? " AND x.o_id>=" . (int)$reszek[0] . " AND x.o_id<=" . (int)$reszek[1] : " AND x.o_id>=" . (int)$reszek[1] . " AND x.o_id<=" . (int)$reszek[0]);
- } else {
- $felt .= " AND x.o_id=" . (int)$se['oid'];
- }
- }
-
- if (isset($se['name']) && $se['name'] > "") $felt .= " AND (x.title_" . $lang . " LIKE '%" . trim($se['name']) . "%')";
- if (isset($se['tipus']) && trim($se['tipus']) > "") $felt .= " AND x.tipus='" . trim($se['tipus']) . "'";
- if (isset($se['m_id']) && (int)$se['m_id'] > 0) $felt .= " AND x.m_id=" . (int)$se['m_id'];
- if (isset($se['c_id']) && (int)$se['c_id'] > 0) $felt .= " AND x.c_id=" . (int)$se['c_id'];
- if (isset($se['parent']) && (int)$se['parent'] > 0) $felt .= " AND p.`id`=" . (int)$se['parent'];
- if (isset($se['subcat']) && (int)$se['subcat'] > 0) $felt .= " AND x.struct_id=" . (int)$se['subcat'];
- if (isset($se['deleted']) && (int)$se['deleted'] >= 0) $felt .= " AND x.deleted=" . (int)$se['deleted'];
-
- $objTabla = new TableHelper();
- $objTabla->setParams(array('prefix' => $this->pf, 'csvExport' => TRUE, 'csvExportFilename' => 'showroom-products.csv', 'tablewidth' => '100%', 'imagePreview' => true, 'tablediv' => 'tablediv', 'footer' => (isset($_POST['uploadForm']) ? FALSE : TRUE), 'ipp' => (isset($_POST['uploadForm']) ? 5 : 500)));
- $v = $objTabla->setSession();
- $objTabla->setColumn('checkbox', array('visible' => FALSE));
- if (isset($_POST['uploadForm'])) {
- $objTabla->setColumn('id', array('header' => 'Id', 'width' => '40px', 'format' => 'onclick', 'onclick' => "setSelect('REPLACE');", 'linkjoin' => 'idcid'));
- $objTabla->setColumn('title', array('header' => 'Név', 'align' => 'left', 'strlen' => 20, 'format' => 'onclick', 'onclick' => "setSelect('REPLACE');", 'width' => '140px', 'linkjoin' => 'idcid'));
- } else {
- $objTabla->setColumn('id', array('header' => 'Id', 'width' => '40px', 'link' => 'index.php?option=com_showroom&view=productedit&id=REPLACE'));
- $objTabla->setColumn('title', array('header' => 'Név', 'format' => 'text', 'align' => 'left', 'strlen' => 20, 'width' => '140px', 'link' => 'index.php?option=com_showroom&view=productedit&id=REPLACE', 'linkjoin' => 'id'));
- }
- $objTabla->setColumn('idcid', array('visible' => false));
- $objTabla->setColumn('desc', array('visible' => false/*'header'=>'Leírás','format'=>'text','align'=>'left'*/));
- $objTabla->setColumn('filedir', array('visible' => false));
- $objTabla->setColumn('cat', array('header' => 'Kategória', 'format' => 'text', 'align' => 'left'));
- $objTabla->setColumn('subcat', array('header' => 'Alkategória', 'format' => 'text', 'align' => 'left'));
- $objTabla->setColumn('tipus', array('header' => 'Tipus', 'format' => 'text', 'align' => 'left', 'strlen' => 14, 'width' => '100px'));
- $objTabla->setColumn('manufacture', array('header' => 'Gyártó', 'format' => 'text', 'align' => 'left', 'strlen' => 14, 'width' => '80px'));
- $objTabla->setColumn('family', array('header' => 'Termékcsalád', 'format' => 'text', 'align' => 'left', 'strlen' => 14, 'width' => '100px'));
- $objTabla->setColumn('datum', array('header' => 'Dátum', 'format' => 'text', 'align' => 'right', 'width' => '70px'));
- $objTabla->setColumn('rendelheto', array('visible' => (isset($_POST['uploadForm']) ? FALSE : TRUE), 'header' => 'Rend.', 'width' => '50px', 'format' => 'text', 'align' => 'center', 'replacevalues' => array(0 => 'Nem', 1 => 'Igen')));
- $objTabla->setColumn('show', array('visible' => (isset($_POST['uploadForm']) ? FALSE : TRUE), 'header' => 'Megj.', 'width' => '50px', 'format' => 'number', 'decimal' => 0));
- $objTabla->setColumn('down', array('visible' => (isset($_POST['uploadForm']) ? FALSE : TRUE), 'header' => 'Letölt', 'width' => '50px', 'format' => 'number', 'decimal' => 0));
- $objTabla->setColumn('deleted', array('header' => 'Aktív', 'width' => '50px', 'align' => 'center', 'replacevalues' => array(0 => 'Igen', 1 => 'Nem')));
- $objTabla->setColumn('logo', array('visible' => false));
- $objTabla->setColumn('options', array('header' => 'Műveletek', 'align' => 'right', 'width' => '120px', 'order' => false, 'addicons' => $arrIcons, 'linkjoin' => 'id'));
- $objTabla->setQuery(array(
- "
- SELECT 'x' AS checkbox,x.`o_id` AS `id`,CONCAT(x.`o_id`,'-',c.`c_id`) AS `idcid`,x.`title_" . $lang . "` AS `title`,t.`name_" . $lang . "` AS `tipus`,p.`parent` AS `cat`,s.`struct_" . $lang . "` AS `subcat`,m.`name` AS `manufacture`,c.`nev_" . $lang . "` AS `family`,DATE(x.`datum`) AS datum,x.`rendelheto`,x.`show`,x.`down`,x.`deleted`,REPLACE('" . $this->logoPath . "','REPLACE',CONCAT(m.`dir`,'/',x.`o_id`)) AS `logo`,CONCAT('{$this->filePath}',m.dir,'/',x.o_id,'/') AS `filedir`,CONCAT('smallError|smallView'" . (isset($_POST['uploadForm']) ? "" : ",'|',IF(x.deleted=1,'smallDisable','smallEnable'),'|','smallEdit','|','smallDel'") . ") AS options
- FROM collection2 x
- LEFT OUTER JOIN coll2_types t ON t.type=x.tipus
- LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
- LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
- LEFT OUTER JOIN coll2_struct s ON s.id=x.struct_id
- LEFT OUTER JOIN (SELECT id,struct_" . $lang . " AS `parent` FROM coll2_struct WHERE parent=id) p ON p.id=s.parent
- WHERE 1 " . $felt
- . ((isset($v['tableorder']) and $v['tableorder'] > '') ? ' ORDER BY ' . $v['tableorder'] : '')
- . ((isset($v['tableipp'])) ? ' LIMIT ' . ($v['tableipp'] > 0 ? ($v['tablepage'] - 1) * $v['tableipp'] : 0) . ',' . $v['tableipp'] : ''),
- "
- SELECT COUNT(*) AS recordCount,SUM(`show`) AS `show`,SUM(`down`) AS `down`
- FROM (
- SELECT 'x' AS checkbox,x.`o_id` AS `id`,CONCAT(x.`o_id`,'-',c.`c_id`) AS `idcid`,x.`title_" . $lang . "` AS `title`,t.`name_" . $lang . "` AS `tipus`,p.`parent` AS cat,s.`struct_" . $lang . "` AS `subcat`,m.`name` AS `manufacture`,m.`dir` AS `folder`,c.`nev_" . $lang . "` AS `family`,DATE(x.`datum`) AS datum,x.`rendelheto`,x.`show`,x.`down`,x.`deleted`,REPLACE('" . $this->logoPath . "','REPLACE',CONCAT(m.`dir`,'/',x.`o_id`)) AS `logo`,CONCAT('smallView','|',IF(x.deleted=1,'smallDisable','smallEnable'),'|','smallEdit','|','smallDel') AS options
- FROM collection2 x
- LEFT OUTER JOIN coll2_types t ON t.type=x.tipus
- LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
- LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
- LEFT OUTER JOIN coll2_struct s ON s.id=x.struct_id
- LEFT OUTER JOIN (SELECT id,struct_" . $lang . " AS `parent` FROM coll2_struct WHERE parent=id) p ON p.id=s.parent
- WHERE 1 " . $felt . "
- ) x"
- ));
- // print_r($_SERVER);
- // print_r($objTabla->arrQuery);
- // $this->printSession($this->pf);
- // print "".print_r($_POST,true)." ";
-
- if ($objTabla->params['csvExport'] == TRUE) {
- $csvContent = $objTabla->drawTable(FALSE);
- $objTabla->saveCSV($csvContent, $objTabla->params['csvExportFilename']);
- }
-
- $objTabla->setColumn('checkbox', array('visible' => (isset($_POST['uploadForm']) ? FALSE : TRUE), 'header' => '+ - ', 'width' => '20px', 'format' => 'checkbox', 'align' => 'center', 'linkjoin' => 'id', 'order' => false));
- $objTabla->setParams(array('csvExport' => FALSE));
- $objTabla->drawTable();
- }
-
- public function auth()
- {
- MySqlHelper::getInstance()->query("
- (SELECT * FROM jml_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1)
- UNION
- (SELECT * FROM eng_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1)");
- $sess = MySqlHelper::getInstance()->fetchAssoc();
- if (count($sess)) {
- MySqlHelper::getInstance()->query("SELECT * FROM jml_user_usergroup_map where group_id IN (7,8) AND user_id=" . $sess[0]['userid'] . ";");
- $admin = MySqlHelper::getInstance()->fetchAssoc();
- return (count($admin) ? TRUE : FALSE);
- } else {
- return (FALSE);
- }
- }
-} // end of class
-//print_r($_SESSION);
-$controller = new Controller();
-$controller->run();
-?>
-
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxTypesController.class.php b/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxTypesController.class.php
index 7ba6a196..1ae489cd 100644
--- a/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxTypesController.class.php
+++ b/cadline/components/administrator/components/com_showroom/assets/ajax/AjaxTypesController.class.php
@@ -1,97 +1,97 @@
-pf]["_POST"]=$_POST;
- $se=&$_SESSION[$this->pf]['_POST'];
- $felt="";
- $arrIcons=array(
- 'smallView'=>array("href"=>"REPLACE","img"=>IconHelper::getIcon("smallView"),"linkjoin"=>"img","alttext"=>"View" ),
- 'smallMissingView'=>array("href"=>"REPLACE","img"=>IconHelper::getIcon("smallMissingView"),"linkjoin"=>"img","alttext"=>"Missing View" ),
- 'smallEdit'=>array("href"=>"index.php?option=com_showroom&view=typeedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"type","alttext"=>"Edit" ),
- 'smallDel'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','delete','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDel") ),
- );
-
- if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
- {
- $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
- $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
- switch ($event)
- {
-
- case 'delete' : { MySqlHelper::getInstance()->query("DELETE FROM coll2_types WHERE type='".$value."' LIMIT 1;");break; }
- }
-
- }
-
- $objTabla=New TableHelper();
- $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','imagePreview'=>true,'tablediv'=>$this->targetdiv));
- $v=$objTabla->setSession();
- $objTabla->setColumn('img',array('visible'=>false));
- $objTabla->setColumn('type',array('header'=>'Típus','width'=>'100px','link'=>'index.php?option=com_showroom&view=typeedit&id=REPLACE'));
- $objTabla->setColumn('type_download',array('header'=>'Letöltési könyvtár','width'=>'100px'));
- $objTabla->setColumn('name',array('header'=>'Név','width'=>'150px'));
- $objTabla->setColumn('desc',array('header'=>'Leírás','strlen'=>40));
- $objTabla->setColumn('filename',array('header'=>'File név','width'=>'100px'));
- $objTabla->setColumn('all',array('header'=>'Összes elem','width'=>'80px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('active',array('header'=>'Aktiv elem','width'=>'80px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('megjelenes',array('header'=>'Megjelenés','width'=>'80px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('letoltes',array('header'=>'Letöltés','width'=>'80px','format'=>'number','decimal'=>0));
- $objTabla->setColumn('options',array('header'=>'Műveletek','align'=>'right','width'=>'100px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'type'));
- $objTabla->setQuery(array("
- SELECT c.`type`,c.`type_download`,c.`name_".$lang."` AS `name`,c.`desc_".$lang."` AS `desc`,REPLACE('".$this->typePath."','REPLACE',c.`type`) AS `img`,CONCAT(c.`type`,'.png') AS `filename`,IF(`all`.darab>0,`all`.darab,0) AS `all`,IF(`active`.darab>0,`active`.darab,0) AS `active`,`all`.`megjelenes`,`all`.`letoltes`,CONCAT('smallView','|','smallEdit','|','smallDel') AS options
- FROM coll2_types c
- LEFT OUTER JOIN (
- SELECT x.tipus AS tipus,COUNT(*) AS darab,SUM(`show`) AS megjelenes,SUM(`down`) AS letoltes
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- GROUP BY x.tipus
- ) `all` ON `all`.tipus=c.type
- LEFT OUTER JOIN (
- SELECT x.tipus AS tipus,COUNT(*) AS darab
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0
- GROUP BY x.tipus
- ) `active` ON `active`.tipus=c.type
- WHERE 1 ".$felt
- .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
- .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
- SELECT COUNT(*) AS recordCount,SUM(`all`) AS `all`,SUM(`active`) AS `active`,SUM(`megjelenes`) AS `megjelenes`,SUM(`letoltes`) AS `letoltes`
- FROM (
- SELECT c.`type`,c.`type_download`,c.`name_".$lang."` AS `name`,c.`desc_".$lang."` AS `desc`,REPLACE('".$this->typePath."','REPLACE',c.`type`) AS `img`,CONCAT(c.`type`,'.png') AS `filename`,IF(`all`.darab>0,`all`.darab,0) AS `all`,IF(`active`.darab>0,`active`.darab,0) AS `active`,`all`.`megjelenes`,`all`.`letoltes`,CONCAT('smallView','|','smallEdit','|','smallDel') AS options
- FROM coll2_types c
- LEFT OUTER JOIN (
- SELECT x.tipus AS tipus,COUNT(*) AS darab,SUM(`show`) AS megjelenes,SUM(`down`) AS letoltes
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- GROUP BY x.tipus
- ) `all` ON `all`.tipus=c.type
- LEFT OUTER JOIN (
- SELECT x.tipus AS tipus,COUNT(*) AS darab
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0
- GROUP BY x.tipus
- ) `active` ON `active`.tipus=c.type
- WHERE 1 ".$felt."
- ) z"
- ));
-// $this->printSession($this->pf);
- $objTabla->drawTable(TRUE);
- }
-}
-
-$controller=new Controller();
-$controller->run();
+pf]["_POST"]=$_POST;
+ $se=&$_SESSION[$this->pf]['_POST'];
+ $felt="";
+ $arrIcons=array(
+ 'smallView'=>array("href"=>"REPLACE","img"=>IconHelper::getIcon("smallView"),"linkjoin"=>"img","alttext"=>"View" ),
+ 'smallMissingView'=>array("href"=>"REPLACE","img"=>IconHelper::getIcon("smallMissingView"),"linkjoin"=>"img","alttext"=>"Missing View" ),
+ 'smallEdit'=>array("href"=>"index.php?option=com_showroom&view=typeedit&id=REPLACE", "img"=>IconHelper::getIcon("smallEdit"), "linkjoin"=>"type","alttext"=>"Edit" ),
+ 'smallDel'=>array("onclick"=>"javascript:if (confirm('Are you sure?')) {setField('','".$this->pf."_event','delete','".$this->targetdiv."');setField('".$this->pf."','".$this->pf."_value','REPLACE','".$this->targetdiv."');}",'img'=>IconHelper::getIcon("smallDel") ),
+ );
+
+ if (isset($_POST[$this->pf.'_event']) and trim($_POST[$this->pf.'_event'])>'')
+ {
+ $event=trim(strtolower(addslashes((string)$_POST[$this->pf.'_event'])));
+ $value=trim(strtolower(addslashes((string)$_POST[$this->pf.'_value'])));
+ switch ($event)
+ {
+
+ case 'delete' : { MySqlHelper::getInstance()->query("DELETE FROM coll2_types WHERE type='".$value."' LIMIT 1;");break; }
+ }
+
+ }
+
+ $objTabla=New TableHelper();
+ $objTabla->setParams(array('prefix'=>$this->pf,'tablewidth'=>'100%','imagePreview'=>true,'tablediv'=>$this->targetdiv));
+ $v=$objTabla->setSession();
+ $objTabla->setColumn('img',array('visible'=>false));
+ $objTabla->setColumn('type',array('header'=>'Típus','width'=>'100px','link'=>'index.php?option=com_showroom&view=typeedit&id=REPLACE'));
+ $objTabla->setColumn('type_download',array('header'=>'Letöltési könyvtár','width'=>'100px'));
+ $objTabla->setColumn('name',array('header'=>'Név','width'=>'150px'));
+ $objTabla->setColumn('desc',array('header'=>'Leírás','strlen'=>40));
+ $objTabla->setColumn('filename',array('header'=>'File név','width'=>'100px'));
+ $objTabla->setColumn('all',array('header'=>'Összes elem','width'=>'80px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('active',array('header'=>'Aktiv elem','width'=>'80px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('megjelenes',array('header'=>'Megjelenés','width'=>'80px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('letoltes',array('header'=>'Letöltés','width'=>'80px','format'=>'number','decimal'=>0));
+ $objTabla->setColumn('options',array('header'=>'Műveletek','align'=>'right','width'=>'100px','order'=>false,'addicons'=>$arrIcons,'linkjoin'=>'type'));
+ $objTabla->setQuery(array("
+ SELECT c.`type`,c.`type_download`,c.`name_".$lang."` AS `name`,c.`desc_".$lang."` AS `desc`,REPLACE('".$this->typePath."','REPLACE',c.`type`) AS `img`,CONCAT(c.`type`,'.png') AS `filename`,IF(`all`.darab>0,`all`.darab,0) AS `all`,IF(`active`.darab>0,`active`.darab,0) AS `active`,`all`.`megjelenes`,`all`.`letoltes`,CONCAT('smallView','|','smallEdit','|','smallDel') AS options
+ FROM coll2_types c
+ LEFT OUTER JOIN (
+ SELECT x.tipus AS tipus,COUNT(*) AS darab,SUM(`show`) AS megjelenes,SUM(`down`) AS letoltes
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ GROUP BY x.tipus
+ ) `all` ON `all`.tipus=c.type
+ LEFT OUTER JOIN (
+ SELECT x.tipus AS tipus,COUNT(*) AS darab
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0
+ GROUP BY x.tipus
+ ) `active` ON `active`.tipus=c.type
+ WHERE 1 ".$felt
+ .((isset($v['tableorder']) and $v['tableorder']>'') ? ' ORDER BY '.$v['tableorder'] : '')
+ .((isset($v['tableipp'])) ? ' LIMIT '.($v['tableipp']>0 ? ($v['tablepage']-1)*$v['tableipp'] : 0) .','.$v['tableipp'] : ''),"
+ SELECT COUNT(*) AS recordCount,SUM(`all`) AS `all`,SUM(`active`) AS `active`,SUM(`megjelenes`) AS `megjelenes`,SUM(`letoltes`) AS `letoltes`
+ FROM (
+ SELECT c.`type`,c.`type_download`,c.`name_".$lang."` AS `name`,c.`desc_".$lang."` AS `desc`,REPLACE('".$this->typePath."','REPLACE',c.`type`) AS `img`,CONCAT(c.`type`,'.png') AS `filename`,IF(`all`.darab>0,`all`.darab,0) AS `all`,IF(`active`.darab>0,`active`.darab,0) AS `active`,`all`.`megjelenes`,`all`.`letoltes`,CONCAT('smallView','|','smallEdit','|','smallDel') AS options
+ FROM coll2_types c
+ LEFT OUTER JOIN (
+ SELECT x.tipus AS tipus,COUNT(*) AS darab,SUM(`show`) AS megjelenes,SUM(`down`) AS letoltes
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ GROUP BY x.tipus
+ ) `all` ON `all`.tipus=c.type
+ LEFT OUTER JOIN (
+ SELECT x.tipus AS tipus,COUNT(*) AS darab
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0
+ GROUP BY x.tipus
+ ) `active` ON `active`.tipus=c.type
+ WHERE 1 ".$felt."
+ ) z"
+ ));
+// $this->printSession($this->pf);
+ $objTabla->drawTable(TRUE);
+ }
+}
+
+$controller=new Controller();
+$controller->run();
?>
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_showroom/showroom.xml b/cadline/components/administrator/components/com_showroom/showroom.xml
index 3fa4c577..19e8b1d9 100644
--- a/cadline/components/administrator/components/com_showroom/showroom.xml
+++ b/cadline/components/administrator/components/com_showroom/showroom.xml
@@ -1,49 +1,49 @@
-
-
- Showroom
-
- April 2017
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.1.0
-
- Description of the Showroom component ...
-
-
-
-
-
- language/hu-HU.com_showroom.ini
- language/en-GB.com_showroom.ini
- index.html
- router.php
- showroom.php
- controller.php
- views
- models
- assets
-
-
-
-
- Showroom
-
-
-
- language/hu-HU.com_showroom.ini
- language/en-GB.com_showroom.ini
-
- index.html
- showroom.php
- controller.php
- assets
- helpers
- models
- views
-
-
+
+
+ Showroom
+
+ April 2017
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.1.0
+
+ Description of the Showroom component ...
+
+
+
+
+
+ language/hu-HU.com_showroom.ini
+ language/en-GB.com_showroom.ini
+ index.html
+ router.php
+ showroom.php
+ controller.php
+ views
+ models
+ assets
+
+
+
+
+ Showroom
+
+
+
+ language/hu-HU.com_showroom.ini
+ language/en-GB.com_showroom.ini
+
+ index.html
+ showroom.php
+ controller.php
+ assets
+ helpers
+ models
+ views
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_tcexam/tcexam.xml b/cadline/components/administrator/components/com_tcexam/tcexam.xml
index b9a96412..90ba7cff 100644
--- a/cadline/components/administrator/components/com_tcexam/tcexam.xml
+++ b/cadline/components/administrator/components/com_tcexam/tcexam.xml
@@ -1,28 +1,28 @@
-
-
- Tcexam
-
- June 2015
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.0.1
-
- Description of the Tcexam component ...
-
-
-
-
- index.html
- tcexam.php
- controller.php
- views
- models
-
-
-
-
+
+
+ Tcexam
+
+ June 2015
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.0.1
+
+ Description of the Tcexam component ...
+
+
+
+
+ index.html
+ tcexam.php
+ controller.php
+ views
+ models
+
+
+
+
\ No newline at end of file
diff --git a/cadline/components/administrator/components/com_versions/versions.xml b/cadline/components/administrator/components/com_versions/versions.xml
index 65bfce81..4ec46292 100644
--- a/cadline/components/administrator/components/com_versions/versions.xml
+++ b/cadline/components/administrator/components/com_versions/versions.xml
@@ -1,44 +1,44 @@
-
-
- Versions
-
- January 2016
- Fekete Zsolt
- mcleod78@gmail.com
- http://www.facebook.com/mcleod78
- Copyright Info
- License Info
-
- 0.0.6
-
- Description of the Versions component ...
-
-
-
- COM_VERSIONS_VERSIONS
-
- COM_VERSIONS_CONTROL_PANEL
- COM_VERSIONS_VERSIONS
-
-
-
-
-
-
- index.html
- versions.php
- controller.php
- assets
- helpers
- models
- views
-
-
-
- hu-HU.com_versions.ini
- hu-HU.com_versions.sys.ini
- en-GB.com_versions.ini
- en-GB.com_versions.sys.ini
-
-
+
+
+ Versions
+
+ January 2016
+ Fekete Zsolt
+ mcleod78@gmail.com
+ http://www.facebook.com/mcleod78
+ Copyright Info
+ License Info
+
+ 0.0.6
+
+ Description of the Versions component ...
+
+
+
+ COM_VERSIONS_VERSIONS
+
+ COM_VERSIONS_CONTROL_PANEL
+ COM_VERSIONS_VERSIONS
+
+
+
+
+
+
+ index.html
+ versions.php
+ controller.php
+ assets
+ helpers
+ models
+ views
+
+
+
+ hu-HU.com_versions.ini
+ hu-HU.com_versions.sys.ini
+ en-GB.com_versions.ini
+ en-GB.com_versions.sys.ini
+
+
\ No newline at end of file
diff --git a/cadline/components/components/com_nonprofit/models/nonprofit.php b/cadline/components/components/com_nonprofit/models/nonprofit.php
index 95a04bd4..a36927e8 100644
--- a/cadline/components/components/com_nonprofit/models/nonprofit.php
+++ b/cadline/components/components/com_nonprofit/models/nonprofit.php
@@ -1,413 +1,413 @@
-dbCRM))
- {
- require($_SERVER['DOCUMENT_ROOT'].'/maintenance/config.crm.php');
- $this->dbCRM=$dbCRM;
- }
- return($this->dbCRM);
- }
-
- public function getPrefix($nUserID=0)
- {
- if ((int)$nUserID>0)
- {
- if (!isset($this->prefix))
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID.";");
- $tmp=$crm->loadObjectList();
- $this->prefix=($tmp[0]->old_db=='clusers' ? 'jml' : 'eng');
- }
- }
- else
- {
- $this->prefix='eng';
- }
- return $this->prefix;
- }
-
- public function getCurrentVersion($field='verID')
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT ".$field." AS verID FROM `p_versions` WHERE verActual='Y' LIMIT 1;");
- $tmp=$crm->loadObjectList();
- return ($tmp[0]->verID);
- }
-
- public function getArticle($product=1)
- {
- if (!isset($this->article))
- {
- $db=JFactory::getDBO();
- if($product == 1){
- $db->setQuery("SELECT * FROM #__content WHERE alias='nonprofit' LIMIT 1;");
- } else {
- $db->setQuery("SELECT * FROM #__content WHERE alias='nonprofitlive' LIMIT 1;");
- }
- $tmp=$db->loadObjectList();
- $this->article=$tmp[0];
- }
- return $this->article;
- }
-
- public function syncUser()
- {
- $db=JFactory::getDBO();
- $user=JFactory::getUser();
- $session=JFactory::getSession();
-
- file_get_contents("http://www.archline.hu/maintenance/sync_user.php");
- file_get_contents("http://www.archline.hu/maintenance/sync_download.php?jmdb=jml");
- file_get_contents("http://www.archline.hu/maintenance/sync_download.php?jmdb=eng");
-
- $db->setQuery("SELECT * FROM #__users WHERE id=".$user->id." LIMIT 1;");
- $curr=$db->loadObjectList();
-
- $tmpUser=$session->get('user');
- $tmpUser->nUserID=$curr[0]->nUserID;
- $session->set('user', $tmpUser);
- }
-
- public function getCRMUser($nUserID=0)
- {
- if ($nUserID>0 && !isset($this->crmUser))
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID." LIMIT 1;");
- $tmp=$crm->loadObjectList();
- if (!empty($tmp))
- {
- $this->crmUser=$tmp[0];
- }
- }
- return $this->crmUser;
- }
-
- public function hasRecord($nUserID=0, $product=1, $npid="")
- {
- if ($nUserID==0)
- {
- $this->hasNonprofitProgram=FALSE;
- $this->hasCommercial=FALSE;
- $this->isNonprofitConnectedToThisComputer=FALSE;
- $this->isConnectedNonprofitExpired=TRUE;
- }
- else
- {
- $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
- if (!isset($this->hasNonprofitProgram))
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT * FROM hardlock h
- LEFT OUTER JOIN h_programs p ON h.hlNum = p.prHlNum
- WHERE h.product_id=".$product." AND h.hlUser=".$nUserID." AND p.prVerID=".$verid." AND p.prHlNum LIKE '99%'");
- $tmp=$crm->loadObjectList();
- if (count($tmp))
- {
- $this->hasNonprofitProgram=TRUE;
- $this->existKeys=$tmp;
- }
- else
- {
- $this->hasNonprofitProgram=FALSE;
- }
- }
-
- if (!isset($this->hasCommercial))
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT * FROM hardlock h
- LEFT OUTER JOIN `h_programs` p ON h.hlNum=p.prHlNum
- WHERE h.product_id=".$product." AND h.hlNum not like '99%' AND h.hlUser=".$nUserID." AND p.prVerID=".$verid);
- $tmp=$crm->loadObjectList();
- if (count($tmp))
- {
- $this->hasCommercial=TRUE;
- }
- else
- {
- $this->hasCommercial=FALSE;
- }
- }
-
- if (!isset($this->isNonprofitConnectedToThisComputer) && $this->hasNonprofitProgram)
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp2=$crm->loadObjectList();
-
- if(empty($tmp2)) {
- $rec23=new stdClass();
- $rec23->computer_id = $npid;
- $rec23->last_mod = date('Y-m-d',time());
- $result23=$crm->insertObject("computers", $rec23);
-
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp2=$crm->loadObjectList();
- }
- $comp=$tmp2[0];
- $verPassword8and9 = /*$this->getCurrentVersion('verPassword8and9')*/ 36; // EZT KI KELL VENNI MARCIUSBAN!!!!
-
- $query = "SELECT h_programs.prFizetve AS expire_datetime
- FROM `nonprofit`
- LEFT OUTER JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
- LEFT OUTER JOIN h_programs ON h_programs.prHlNum = nonprofit.hlID
- WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid=".$verPassword8and9." AND h_programs.prVerID=".$verid." AND nonprofit.partnerID is null AND hardlock.product_id='".$product."';";
- $crm->setQuery($query);
- $tmp=$crm->loadObjectList();
- $this->isNonprofitConnectedToThisComputer=(count($tmp) ? TRUE : FALSE);
-
- if($this->isNonprofitConnectedToThisComputer) {
- $expireDateTime=$tmp[0]->expire_datetime;
-
- $this->isConnectedNonprofitExpired = $expireDateTime < date("Y-m-d H:i:s", time());
- } else {
- $this->isConnectedNonprofitExpired=TRUE;
- }
- } else {
- $this->isNonprofitConnectedToThisComputer=FALSE;
- $this->isConnectedNonprofitExpired=TRUE;
- }
- }
- $this->haveRightsToUseNonprofit = !$this->hasCommercial && (!$this->hasNonprofitProgram || !$this->isConnectedNonprofitExpired);
- $this->hasToGenerateNonprofit = $this->haveRightsToUseNonprofit && !$this->hasNonprofitProgram;
- }
-
- public function getExistingKeyAndPass($nUserID=0,$npid="",$verid=0, $product=1) {
- if ((int)$verid==0) $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
-
- if ($nUserID>0 && $npid>"") {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
-
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp=$crm->loadObjectList();
- $comp=$tmp[0];
-
- $query="SELECT h_programs.prHlNum AS nonprofitKey, h_programs.prPass AS nonprofitPassword FROM nonprofit
- LEFT OUTER JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
- LEFT OUTER JOIN h_programs ON h_programs.prHlNum = nonprofit.hlID
- WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid=".(int)$verid." AND nonprofit.nUserID='".$nUserID."' AND nonprofit.partnerID is null AND hardlock.product_id='".$product."';";
- $this->sqlQuery=$query;
- $crm->setQuery($query);
- $tmp2=$crm->loadObjectList();
- $nonp=$tmp2[0];
- }
-
- $this->newKey=$nonp->nonprofitKey;
- $this->newPass=$nonp->nonprofitPassword;
- }
-
- public function getKey($nUserID=0,$npid="",$isid="",$verid=0, $product=1)
- {
- $newKey=0;
- if ((int)$verid==0) $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
-
- if ($nUserID>0 && $npid>"")
- {
- $crm=JDatabaseDriver::getInstance($this->getConfig());
-
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp2=$crm->loadObjectList();
-
- if(empty($tmp2)){
- $rec23=new stdClass();
- $rec23->computer_id = $npid;
- $rec23->last_mod = date('Y-m-d',time());
- $result23=$crm->insertObject("computers", $rec23);
- }
-
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp3=$crm->loadObjectList();
- $comp=$tmp3[0];
-
- $crm->setQuery("SELECT * FROM `nonprofit`
- LEFT JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
- WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid='".$verid."' AND nonprofit.`partnerID` is null AND hardlock.product_id=".$product.";");
- $tmp=$crm->loadObjectList();
-
- if (empty($tmp))
- {
- $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID.";");
- $tmp=$crm->loadObjectList();
- $user=$tmp[0];
-
- $newKey=(int)$this->tryToAlloc($this->npRangeMin,$this->npRangeMax);
-
- if ($newKey>0 && !empty($user))
- {
- $rec=new stdClass();
- $rec->hlNum=$newKey;
-// $rec->hlCtrID=$user->nCtrID;
- $rec->hlCtrID=($user->old_db=='clusers' ? 36 : 44);
- $rec->hlLan=0;
- $rec->hlStat=1;
- $rec->hlDateIssue=date('Y-m-d',time());
- $rec->hlManID=36;
- $rec->hlTime=date('Y-m-d H:i:s',time());
- $rec->hlUser=$nUserID;
- $rec->hlDealer=($user->old_db=='clusers' ? 51850 : 51851);
- $rec->bUjithato=1;
- $rec->old_db=$user->old_db;
- $rec->product_id=$product;
-
- $crm->setQuery("SELECT * FROM `hardlock` WHERE hlNum=".$newKey." AND product_id=".$product." ORDER BY hlID DESC LIMIT 1;");
- $tmp=$crm->loadObjectList();
- $exist=$tmp[0];
-
-
- if ($exist)
- {
- $values=array();
- $query=$crm->getQuery(true);
- foreach ((array)$rec as $k=>$v) $values[]=$crm->quoteName($k)."=".$crm->quote($v);
- $query->update("hardlock")->set($values)->where(array('`hlID`='.(int)$exist->hlID));
- $crm->setQuery($query);
- $result=$crm->execute();
-//if ($_SERVER['REMOTE_ADDR']=='46.139.14.111') {print_r($exist); print(' haha '.$newKey); die();}
- }
- else
- {
- $result=$crm->insertObject("hardlock", $rec);
- }
-
- $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
- $tmp233=$crm->loadObjectList();
- $comp2=$tmp233[0];
-
- $rec2=new stdClass();
- $rec2->computer_id=$comp2->id;
- $rec2->isid=$isid;
- $rec2->verid=$verid;
- $rec2->hlID=$newKey;
- $rec2->nUserID=$nUserID;
- $rec2->add_datetime=date('Y-m-d H:i:s',time());
- $rec2->expire_datetime=date('Y-m-d',time()+60*86400).' 23:59:59';
- $rec2->old_db=$user->old_db;
- $result2=$crm->insertObject("nonprofit", $rec2);
-
- $rec=new stdClass();
- $rec->nUserID=$nUserID;
- $rec->nTopicID=($user->old_db=='clusers' ? 300 : 302); //($this->getPrefix()=='jml' ? 300 : 302);
- $rec->dateEvent=date('Y-m-d',time());
- $rec->strPlace='web';
- $rec->strInfo=JText::sprintf("COM_NONPROFIT_KEY_REQUEST_INFO",$newKey);
- $rec->nManagerID=36;
- $rec->insertDate=date('Y-m-d H:i:s',time());
- $result=$crm->insertObject("u_history", $rec);
- }
- }
- }
- return ($newKey);
- }
-
- public function getPass($nUserID=0,$npid="",$isid="",$verid=0, $product=1)
- {
- $res="";
- if ($npid>"" && $isid>"" && (int)$verid>0)
- {
- $res=file_get_contents("https://www.archlinexp.com/maintenance/nonprofit.php?npid=".$npid."&isid=".$isid."&verid=".(int)$verid."&createProgram=true&product=".$product);
- }
- return ($res);
- }
-
-/*******************************************************************************
- * Megpróbálja az adott kulcs tartományon belül a lehető legkissebb szabad
- * kulcsot megtalálni, és visszaadja az számát
- ******************************************************************************/
- public function tryToAlloc($min=0,$max=0)
- {
- $ret=0;
- if ((int)$min==0 || (int)$max==0) return($ret);
- $crm=JDatabaseDriver::getInstance($this->getConfig());
- $crm->setQuery("SELECT LEFT(hlNum,6) AS hlNum FROM hardlock WHERE hlStat!=0 AND hlNum>=".(int)$min." AND hlNum<".(int)$max." ORDER BY hlNum;");
- $res=$crm->loadObjectList();
-
- if (count($res))
- {
- $keszlet=range($min, $max);
- foreach ($res as $r) { $kulcsok[]=$r->hlNum; }
- $diff=array_diff($keszlet,$kulcsok);
- reset($diff);
- $ret=current($diff);
- if ((int)$ret>0)
- {
- $crm->setQuery("DELETE FROM `t_registeronce` WHERE arch_id=".(int)$ret);
- $crm->execute();
- }
- $this->freeKeys=count($diff)-1;
- }
- return $ret;
- }
-
-
- public function countFreeKeys($min=0,$max=0)
- {
- $this->tryToAlloc($min,$max);
- return ((int)$this->freeKeys);
- }
-
-
- public function sendWarningMail()
- {
- $app=JFactory::getApplication();
- $config=JFactory::getConfig();
- $mailer=JFactory::getMailer();
- $mailer->setSender(array('info@cadline.hu'));
- $mailer->addRecipient(array('office@cadline.hu', 'marketing@cadline.hu'));
- $mailer->setSubject(JText::_(($this->freeKeys==0 ? 'COM_NONPROFIT_MAIL_NO_KEY_SUBJECT' : 'COM_NONPROFIT_MAIL_KEY_LOW_SUBJECT')));
- $mailer->setBody(JText::sprintf(($this->freeKeys==0 ? 'COM_NONPROFIT_MAIL_NO_KEY_BODY' : 'COM_NONPROFIT_MAIL_KEY_LOW_BODY'),$this->freeKeys));
- $mailer->Send();
- }
-
- public function sendPasswordInEmail($to, $user, $password, $product)
- {
- $app=JFactory::getApplication();
- $config=JFactory::getConfig();
- $mailer=JFactory::getMailer();
- $mailer->isHTML(true);
- $mailer->setSender(array('info@cadline.hu'));
- $mailer->addRecipient(array($to));
- if($product == 2) {
- $mailer->setSubject("Non-Profit - ARCHLine.XP Live");
- $mailer->setBody(JText::sprintf('COM_NONPROFIT_EMAIL_BODY_LIVE', $user, $password));
- } else {
- $mailer->setSubject("Non-Profit - ARCHLine.XP");
- $mailer->setBody(JText::sprintf('COM_NONPROFIT_EMAIL_BODY', $user, $password));
- }
- $mailer->Send();
- }
-
- public function getExistKeys() { return ($this->existKeys); }
-
- public function getLang()
- {
- return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
- }
-
-}
+dbCRM))
+ {
+ require($_SERVER['DOCUMENT_ROOT'].'/maintenance/config.crm.php');
+ $this->dbCRM=$dbCRM;
+ }
+ return($this->dbCRM);
+ }
+
+ public function getPrefix($nUserID=0)
+ {
+ if ((int)$nUserID>0)
+ {
+ if (!isset($this->prefix))
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID.";");
+ $tmp=$crm->loadObjectList();
+ $this->prefix=($tmp[0]->old_db=='clusers' ? 'jml' : 'eng');
+ }
+ }
+ else
+ {
+ $this->prefix='eng';
+ }
+ return $this->prefix;
+ }
+
+ public function getCurrentVersion($field='verID')
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT ".$field." AS verID FROM `p_versions` WHERE verActual='Y' LIMIT 1;");
+ $tmp=$crm->loadObjectList();
+ return ($tmp[0]->verID);
+ }
+
+ public function getArticle($product=1)
+ {
+ if (!isset($this->article))
+ {
+ $db=JFactory::getDBO();
+ if($product == 1){
+ $db->setQuery("SELECT * FROM #__content WHERE alias='nonprofit' LIMIT 1;");
+ } else {
+ $db->setQuery("SELECT * FROM #__content WHERE alias='nonprofitlive' LIMIT 1;");
+ }
+ $tmp=$db->loadObjectList();
+ $this->article=$tmp[0];
+ }
+ return $this->article;
+ }
+
+ public function syncUser()
+ {
+ $db=JFactory::getDBO();
+ $user=JFactory::getUser();
+ $session=JFactory::getSession();
+
+ file_get_contents("http://www.archline.hu/maintenance/sync_user.php");
+ file_get_contents("http://www.archline.hu/maintenance/sync_download.php?jmdb=jml");
+ file_get_contents("http://www.archline.hu/maintenance/sync_download.php?jmdb=eng");
+
+ $db->setQuery("SELECT * FROM #__users WHERE id=".$user->id." LIMIT 1;");
+ $curr=$db->loadObjectList();
+
+ $tmpUser=$session->get('user');
+ $tmpUser->nUserID=$curr[0]->nUserID;
+ $session->set('user', $tmpUser);
+ }
+
+ public function getCRMUser($nUserID=0)
+ {
+ if ($nUserID>0 && !isset($this->crmUser))
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID." LIMIT 1;");
+ $tmp=$crm->loadObjectList();
+ if (!empty($tmp))
+ {
+ $this->crmUser=$tmp[0];
+ }
+ }
+ return $this->crmUser;
+ }
+
+ public function hasRecord($nUserID=0, $product=1, $npid="")
+ {
+ if ($nUserID==0)
+ {
+ $this->hasNonprofitProgram=FALSE;
+ $this->hasCommercial=FALSE;
+ $this->isNonprofitConnectedToThisComputer=FALSE;
+ $this->isConnectedNonprofitExpired=TRUE;
+ }
+ else
+ {
+ $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
+ if (!isset($this->hasNonprofitProgram))
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT * FROM hardlock h
+ LEFT OUTER JOIN h_programs p ON h.hlNum = p.prHlNum
+ WHERE h.product_id=".$product." AND h.hlUser=".$nUserID." AND p.prVerID=".$verid." AND p.prHlNum LIKE '99%'");
+ $tmp=$crm->loadObjectList();
+ if (count($tmp))
+ {
+ $this->hasNonprofitProgram=TRUE;
+ $this->existKeys=$tmp;
+ }
+ else
+ {
+ $this->hasNonprofitProgram=FALSE;
+ }
+ }
+
+ if (!isset($this->hasCommercial))
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT * FROM hardlock h
+ LEFT OUTER JOIN `h_programs` p ON h.hlNum=p.prHlNum
+ WHERE h.product_id=".$product." AND h.hlNum not like '99%' AND h.hlUser=".$nUserID." AND p.prVerID=".$verid);
+ $tmp=$crm->loadObjectList();
+ if (count($tmp))
+ {
+ $this->hasCommercial=TRUE;
+ }
+ else
+ {
+ $this->hasCommercial=FALSE;
+ }
+ }
+
+ if (!isset($this->isNonprofitConnectedToThisComputer) && $this->hasNonprofitProgram)
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp2=$crm->loadObjectList();
+
+ if(empty($tmp2)) {
+ $rec23=new stdClass();
+ $rec23->computer_id = $npid;
+ $rec23->last_mod = date('Y-m-d',time());
+ $result23=$crm->insertObject("computers", $rec23);
+
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp2=$crm->loadObjectList();
+ }
+ $comp=$tmp2[0];
+ $verPassword8and9 = /*$this->getCurrentVersion('verPassword8and9')*/ 36; // EZT KI KELL VENNI MARCIUSBAN!!!!
+
+ $query = "SELECT h_programs.prFizetve AS expire_datetime
+ FROM `nonprofit`
+ LEFT OUTER JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
+ LEFT OUTER JOIN h_programs ON h_programs.prHlNum = nonprofit.hlID
+ WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid=".$verPassword8and9." AND h_programs.prVerID=".$verid." AND nonprofit.partnerID is null AND hardlock.product_id='".$product."';";
+ $crm->setQuery($query);
+ $tmp=$crm->loadObjectList();
+ $this->isNonprofitConnectedToThisComputer=(count($tmp) ? TRUE : FALSE);
+
+ if($this->isNonprofitConnectedToThisComputer) {
+ $expireDateTime=$tmp[0]->expire_datetime;
+
+ $this->isConnectedNonprofitExpired = $expireDateTime < date("Y-m-d H:i:s", time());
+ } else {
+ $this->isConnectedNonprofitExpired=TRUE;
+ }
+ } else {
+ $this->isNonprofitConnectedToThisComputer=FALSE;
+ $this->isConnectedNonprofitExpired=TRUE;
+ }
+ }
+ $this->haveRightsToUseNonprofit = !$this->hasCommercial && (!$this->hasNonprofitProgram || !$this->isConnectedNonprofitExpired);
+ $this->hasToGenerateNonprofit = $this->haveRightsToUseNonprofit && !$this->hasNonprofitProgram;
+ }
+
+ public function getExistingKeyAndPass($nUserID=0,$npid="",$verid=0, $product=1) {
+ if ((int)$verid==0) $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
+
+ if ($nUserID>0 && $npid>"") {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp=$crm->loadObjectList();
+ $comp=$tmp[0];
+
+ $query="SELECT h_programs.prHlNum AS nonprofitKey, h_programs.prPass AS nonprofitPassword FROM nonprofit
+ LEFT OUTER JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
+ LEFT OUTER JOIN h_programs ON h_programs.prHlNum = nonprofit.hlID
+ WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid=".(int)$verid." AND nonprofit.nUserID='".$nUserID."' AND nonprofit.partnerID is null AND hardlock.product_id='".$product."';";
+ $this->sqlQuery=$query;
+ $crm->setQuery($query);
+ $tmp2=$crm->loadObjectList();
+ $nonp=$tmp2[0];
+ }
+
+ $this->newKey=$nonp->nonprofitKey;
+ $this->newPass=$nonp->nonprofitPassword;
+ }
+
+ public function getKey($nUserID=0,$npid="",$isid="",$verid=0, $product=1)
+ {
+ $newKey=0;
+ if ((int)$verid==0) $verid = /*$this->getCurrentVersion('verID')*/ 19; // EZT KI KELL VENNI MARCIUSBAN!!!!
+
+ if ($nUserID>0 && $npid>"")
+ {
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp2=$crm->loadObjectList();
+
+ if(empty($tmp2)){
+ $rec23=new stdClass();
+ $rec23->computer_id = $npid;
+ $rec23->last_mod = date('Y-m-d',time());
+ $result23=$crm->insertObject("computers", $rec23);
+ }
+
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp3=$crm->loadObjectList();
+ $comp=$tmp3[0];
+
+ $crm->setQuery("SELECT * FROM `nonprofit`
+ LEFT JOIN hardlock ON hardlock.hlNum = nonprofit.hlID
+ WHERE nonprofit.computer_id='".$comp->id."' AND nonprofit.verid='".$verid."' AND nonprofit.`partnerID` is null AND hardlock.product_id=".$product.";");
+ $tmp=$crm->loadObjectList();
+
+ if (empty($tmp))
+ {
+ $crm->setQuery("SELECT * FROM `users` WHERE nUserID=".$nUserID.";");
+ $tmp=$crm->loadObjectList();
+ $user=$tmp[0];
+
+ $newKey=(int)$this->tryToAlloc($this->npRangeMin,$this->npRangeMax);
+
+ if ($newKey>0 && !empty($user))
+ {
+ $rec=new stdClass();
+ $rec->hlNum=$newKey;
+// $rec->hlCtrID=$user->nCtrID;
+ $rec->hlCtrID=($user->old_db=='clusers' ? 36 : 44);
+ $rec->hlLan=0;
+ $rec->hlStat=1;
+ $rec->hlDateIssue=date('Y-m-d',time());
+ $rec->hlManID=36;
+ $rec->hlTime=date('Y-m-d H:i:s',time());
+ $rec->hlUser=$nUserID;
+ $rec->hlDealer=($user->old_db=='clusers' ? 51850 : 51851);
+ $rec->bUjithato=1;
+ $rec->old_db=$user->old_db;
+ $rec->product_id=$product;
+
+ $crm->setQuery("SELECT * FROM `hardlock` WHERE hlNum=".$newKey." AND product_id=".$product." ORDER BY hlID DESC LIMIT 1;");
+ $tmp=$crm->loadObjectList();
+ $exist=$tmp[0];
+
+
+ if ($exist)
+ {
+ $values=array();
+ $query=$crm->getQuery(true);
+ foreach ((array)$rec as $k=>$v) $values[]=$crm->quoteName($k)."=".$crm->quote($v);
+ $query->update("hardlock")->set($values)->where(array('`hlID`='.(int)$exist->hlID));
+ $crm->setQuery($query);
+ $result=$crm->execute();
+//if ($_SERVER['REMOTE_ADDR']=='46.139.14.111') {print_r($exist); print(' haha '.$newKey); die();}
+ }
+ else
+ {
+ $result=$crm->insertObject("hardlock", $rec);
+ }
+
+ $crm->setQuery("SELECT * FROM `computers` WHERE computer_id='".$npid."';");
+ $tmp233=$crm->loadObjectList();
+ $comp2=$tmp233[0];
+
+ $rec2=new stdClass();
+ $rec2->computer_id=$comp2->id;
+ $rec2->isid=$isid;
+ $rec2->verid=$verid;
+ $rec2->hlID=$newKey;
+ $rec2->nUserID=$nUserID;
+ $rec2->add_datetime=date('Y-m-d H:i:s',time());
+ $rec2->expire_datetime=date('Y-m-d',time()+60*86400).' 23:59:59';
+ $rec2->old_db=$user->old_db;
+ $result2=$crm->insertObject("nonprofit", $rec2);
+
+ $rec=new stdClass();
+ $rec->nUserID=$nUserID;
+ $rec->nTopicID=($user->old_db=='clusers' ? 300 : 302); //($this->getPrefix()=='jml' ? 300 : 302);
+ $rec->dateEvent=date('Y-m-d',time());
+ $rec->strPlace='web';
+ $rec->strInfo=JText::sprintf("COM_NONPROFIT_KEY_REQUEST_INFO",$newKey);
+ $rec->nManagerID=36;
+ $rec->insertDate=date('Y-m-d H:i:s',time());
+ $result=$crm->insertObject("u_history", $rec);
+ }
+ }
+ }
+ return ($newKey);
+ }
+
+ public function getPass($nUserID=0,$npid="",$isid="",$verid=0, $product=1)
+ {
+ $res="";
+ if ($npid>"" && $isid>"" && (int)$verid>0)
+ {
+ $res=file_get_contents("https://www.archlinexp.com/maintenance/nonprofit.php?npid=".$npid."&isid=".$isid."&verid=".(int)$verid."&createProgram=true&product=".$product);
+ }
+ return ($res);
+ }
+
+/*******************************************************************************
+ * Megpróbálja az adott kulcs tartományon belül a lehető legkissebb szabad
+ * kulcsot megtalálni, és visszaadja az számát
+ ******************************************************************************/
+ public function tryToAlloc($min=0,$max=0)
+ {
+ $ret=0;
+ if ((int)$min==0 || (int)$max==0) return($ret);
+ $crm=JDatabaseDriver::getInstance($this->getConfig());
+ $crm->setQuery("SELECT LEFT(hlNum,6) AS hlNum FROM hardlock WHERE hlStat!=0 AND hlNum>=".(int)$min." AND hlNum<".(int)$max." ORDER BY hlNum;");
+ $res=$crm->loadObjectList();
+
+ if (count($res))
+ {
+ $keszlet=range($min, $max);
+ foreach ($res as $r) { $kulcsok[]=$r->hlNum; }
+ $diff=array_diff($keszlet,$kulcsok);
+ reset($diff);
+ $ret=current($diff);
+ if ((int)$ret>0)
+ {
+ $crm->setQuery("DELETE FROM `t_registeronce` WHERE arch_id=".(int)$ret);
+ $crm->execute();
+ }
+ $this->freeKeys=count($diff)-1;
+ }
+ return $ret;
+ }
+
+
+ public function countFreeKeys($min=0,$max=0)
+ {
+ $this->tryToAlloc($min,$max);
+ return ((int)$this->freeKeys);
+ }
+
+
+ public function sendWarningMail()
+ {
+ $app=JFactory::getApplication();
+ $config=JFactory::getConfig();
+ $mailer=JFactory::getMailer();
+ $mailer->setSender(array('info@cadline.hu'));
+ $mailer->addRecipient(array('office@cadline.hu', 'marketing@cadline.hu'));
+ $mailer->setSubject(JText::_(($this->freeKeys==0 ? 'COM_NONPROFIT_MAIL_NO_KEY_SUBJECT' : 'COM_NONPROFIT_MAIL_KEY_LOW_SUBJECT')));
+ $mailer->setBody(JText::sprintf(($this->freeKeys==0 ? 'COM_NONPROFIT_MAIL_NO_KEY_BODY' : 'COM_NONPROFIT_MAIL_KEY_LOW_BODY'),$this->freeKeys));
+ $mailer->Send();
+ }
+
+ public function sendPasswordInEmail($to, $user, $password, $product)
+ {
+ $app=JFactory::getApplication();
+ $config=JFactory::getConfig();
+ $mailer=JFactory::getMailer();
+ $mailer->isHTML(true);
+ $mailer->setSender(array('info@cadline.hu'));
+ $mailer->addRecipient(array($to));
+ if($product == 2) {
+ $mailer->setSubject("Non-Profit - ARCHLine.XP Live");
+ $mailer->setBody(JText::sprintf('COM_NONPROFIT_EMAIL_BODY_LIVE', $user, $password));
+ } else {
+ $mailer->setSubject("Non-Profit - ARCHLine.XP");
+ $mailer->setBody(JText::sprintf('COM_NONPROFIT_EMAIL_BODY', $user, $password));
+ }
+ $mailer->Send();
+ }
+
+ public function getExistKeys() { return ($this->existKeys); }
+
+ public function getLang()
+ {
+ return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
+ }
+
+}
?>
\ No newline at end of file
diff --git a/cadline/components/components/com_nonprofit/views/nonprofit/tmpl/default.php b/cadline/components/components/com_nonprofit/views/nonprofit/tmpl/default.php
index 038c6ba2..4029a8c6 100644
--- a/cadline/components/components/com_nonprofit/views/nonprofit/tmpl/default.php
+++ b/cadline/components/components/com_nonprofit/views/nonprofit/tmpl/default.php
@@ -1,167 +1,167 @@
-
-newPass)) {
- $result = "".$this->newPass." ";
- $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
- } elseif(!empty($this->regFinished)) {
- $result = "".$this->regFinished." ";
- $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
- }
-
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
- $link = crm_hardlock::encode($privatekey, $session, $actual_link);
-
- $linkParam = "?".$param;
- $npid = crm_hardlock::get_valueFromStringUrl($linkParam, "npid");
- $isid = crm_hardlock::get_valueFromStringUrl($linkParam, "isid");
- $product = crm_hardlock::get_valueFromStringUrl($linkParam, "product");
- $verid = crm_hardlock::get_valueFromStringUrl($linkParam, "verid");
-} else {
- $verid = $_GET["verid"];
- $npid = $_GET["npid"];
- $isid = $_GET["isid"];
-}
-
-if(empty($product))
- $product = 1;
-
-$user=JFactory::getUser();
-?>
-
-
-hasCommercial || $this->isNpConToThisComp || !$this->isConnectedNonprofitExpired*/ false):?>
-
-
-
-
-
-
-
-
Non-profit licenc információ
-
-
-
-
-
-
-
-
Szeretnél Non-Profit licencet?
-
Non-profit kód igénylését kifejezetten a szakmában dolgozóknak/tanulóknak javasoljuk.
- Ehhez létre kell hozni egy felhasználói fiókot, amelyben megadod a neved, elérhetőséged és e-mail címed. Ezt követően le kell töltened az ARCHLine.XP próbaváltozatát.
- Az ARCHLine.XP Non-Profit kóddal a program két hónapig használható.
-
-
-
Hogyan kaphatok Non-Profit kódot?
-
Non-profit kód igényléshez kérjük, írj nekünk egy e-mailt az info@cadline.hu címre, melyben 1-2 mondatban indokold meg, hogy miért szeretnél kódot kérni.
-
-
-
Igényelhetek terméktámogatást ha Non-Profit kóddal használom a programot?
-
Igen. E-mailben küldd el kérdésed az info@cadline.hu-ra ! További segédanyagokat, oktatóvideókat honlapunkon találsz, az Oktatás menüpontban.
-
-
-
-
+
+newPass)) {
+ $result = "".$this->newPass." ";
+ $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
+ } elseif(!empty($this->regFinished)) {
+ $result = "".$this->regFinished." ";
+ $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
+ }
+
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
+ $link = crm_hardlock::encode($privatekey, $session, $actual_link);
+
+ $linkParam = "?".$param;
+ $npid = crm_hardlock::get_valueFromStringUrl($linkParam, "npid");
+ $isid = crm_hardlock::get_valueFromStringUrl($linkParam, "isid");
+ $product = crm_hardlock::get_valueFromStringUrl($linkParam, "product");
+ $verid = crm_hardlock::get_valueFromStringUrl($linkParam, "verid");
+} else {
+ $verid = $_GET["verid"];
+ $npid = $_GET["npid"];
+ $isid = $_GET["isid"];
+}
+
+if(empty($product))
+ $product = 1;
+
+$user=JFactory::getUser();
+?>
+
+
+hasCommercial || $this->isNpConToThisComp || !$this->isConnectedNonprofitExpired*/ false):?>
+
+
+
+
+
+
+
+
Non-profit licenc információ
+
+
+
+
+
+
+
+
Szeretnél Non-Profit licencet?
+
Non-profit kód igénylését kifejezetten a szakmában dolgozóknak/tanulóknak javasoljuk.
+ Ehhez létre kell hozni egy felhasználói fiókot, amelyben megadod a neved, elérhetőséged és e-mail címed. Ezt követően le kell töltened az ARCHLine.XP próbaváltozatát.
+ Az ARCHLine.XP Non-Profit kóddal a program két hónapig használható.
+
+
+
Hogyan kaphatok Non-Profit kódot?
+
Non-profit kód igényléshez kérjük, írj nekünk egy e-mailt az info@cadline.hu címre, melyben 1-2 mondatban indokold meg, hogy miért szeretnél kódot kérni.
+
+
+
Igényelhetek terméktámogatást ha Non-Profit kóddal használom a programot?
+
Igen. E-mailben küldd el kérdésed az info@cadline.hu-ra ! További segédanyagokat, oktatóvideókat honlapunkon találsz, az Oktatás menüpontban.
+
+
+
+
diff --git a/cadline/components/components/com_nonprofit/views/nonprofit/view.html.php b/cadline/components/components/com_nonprofit/views/nonprofit/view.html.php
index 7d7342b9..bcb3a080 100644
--- a/cadline/components/components/com_nonprofit/views/nonprofit/view.html.php
+++ b/cadline/components/components/com_nonprofit/views/nonprofit/view.html.php
@@ -1,148 +1,148 @@
-getModel();
-
- if(isset($_GET["webform"])) {
- // ----------------------------------------------------------------------- Webform inicializálása -----------------------------------------------------------------------
-
- if (!class_exists('crm_hardlock')) require_once(JPATH_BASE."/common_cadline_libraries/crm_hardlock.class.php");
-
- $encodedSession = $_GET["session"]; // Minden csatorna megnyíláskor egyedi kódot kap, ez a publikus kulcs is
- $session = base64_decode($encodedSession);
- $param = $_GET["param"]; // Encode-olt adat
- $privatekey = crm_hardlock::GetWebformPrivateKey(); // A privát kulcs lekérdezése
- $param = crm_hardlock::decode($privatekey,$session,$param); // Adat decode-olása
-
- //crmHelper::SetWebformResource($session, "Ez lesz az üzenet a felhasználónak", "Kattints ide");
-
- // ----------------------------------------------------------------------- Webform inicializálása -----------------------------------------------------------------------
-
- $param = "?".$param;
- $npid = crm_hardlock::get_valueFromStringUrl($param, "npid");
- $isid = crm_hardlock::get_valueFromStringUrl($param, "isid");
- $verid = crm_hardlock::get_valueFromStringUrl($param, "verid");
- $product = crm_hardlock::get_valueFromStringUrl($param, "product");
- $this->GET_VERSION= $verid;
- } else { // Régi nonprofit ág
- $npid=trim(addslashes($_GET['npid']));
- $isid=trim(addslashes($_GET['isid']));
- $this->GET_VERSION=(isset($_GET['verid']) && (int)$_GET['verid']>0 ? (int)$_GET['verid'] : 0);
- $product = 1;
- }
-
- $verid = ($this->GET_VERSION==0 ? $this->CURRENT_VERSION : $this->GET_VERSION);
- $this->CURRENT_VERSION=$model->getCurrentVersion('verPassword8and9');
-
- JFactory::getDocument()->addScript('/components/'.JFactory::getApplication()->input->get('option').'/assets/js/clipboard.min.js');
-
- JLog::addLogger(array('text_file'=>'com_nonprofit.call.php','text_entry_format'=>'{DATE} {TIME} {CLIENTIP} {MESSAGE}'),JLog::ALL,array('com_nonprofit'));
- JLog::add("domain: ".JURI::base()." | npid: ".$npid." | isid: ".$isid, JLog::WARNING, 'com_nonprofit');
-
- if (!$user->nUserID) {
- $model->syncUser();
- $user=JFactory::getUser();
- }
-
- $crmUser=$model->getCRMUser($user->nUserID);
-
- // Redirect if curr lang != crm old_db
- if ($crmUser->old_db>'') {
- $domain="";
- $base=JURI::base();
- $currLang=$model->getLang();
- if ($currLang=='hun' && $crmUser->old_db!='clusers') $domain='http://www.archlinexp.com';
- if ($currLang=='eng' && $crmUser->old_db=='clusers') $domain='http://www.archline.hu';
- //if ($domain>'') { $this->redirect=$domain."/index.php?option=com_nonprofit&view=nonprofit&npid=".$npid.($isid>''?"&isid=".$isid:'').($this->GET_VERSION>0?"&verid=".$this->GET_VERSION:''); }
- }
-
- $this->article=$model->getArticle($product);
- $model->hasRecord($user->nUserID, $product, $npid);
- $this->hasNonprofitProgram=$model->hasNonprofitProgram;
- $this->hasCommercial=$model->hasCommercial;
- $this->isNpConToThisComp=$model->isNonprofitConnectedToThisComputer;
- $this->isConnectedNonprofitExpired=$model->isConnectedNonprofitExpired;
- $this->haveRightsToUseNonprofit = $model->haveRightsToUseNonprofit;
- $this->hasToGenerateNonprofit = $model->hasToGenerateNonprofit;
- $this->sqlQuery=$model->sqlQuery;
-
- $this->freeKeys=$model->countFreeKeys($model->npRangeMin,$model->npRangeMax);
- if (!$this->haveRightsToUseNonprofit || $this->freeKeys == 0) { // Ki kell írnia, hogy nincs joga használni a Nonprofitot
- if($this->freeKeys == 0) {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_NO_FREE_KEY).''.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- } elseif($this->hasCommercial) {
- // Mivel kereskedelmi licencel rendelkezik, ezért nem használhatja a nonprofit programot
-
- if($product == 2) {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXIST_ISID_LIVE).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- } else {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXIST_ISID).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- }
- } elseif(!$this->isNpConToThisComp) {
- // Másik gépen van regisztrálva
-
- if($product == 2) {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_ANOTHER_MACHINE_REGISTERED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- } else {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_ANOTHER_MACHINE_REGISTERED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- }
- } elseif($this->isConnectedNonprofitExpired) {
- // Lejárt a nonprofit
-
- if($product == 2) {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXPIRED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- } else {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXPIRED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
- }
- }
- }
-
- if($this->haveRightsToUseNonprofit) {
- $model->getExistingKeyAndPass($user->nUserID,$npid,$verid, $product);
- $this->regFinished=$model->newPass;
- }
-
- if (isset($_POST['getid']) && $this->haveRightsToUseNonprofit && (int)$user->nUserID>0 && (int)$this->freeKeys>0 && isset($npid) && $npid>'') {
- if($this->hasToGenerateNonprofit) {
- $this->newKey=$model->getKey($user->nUserID,$npid,$isid,$verid, $product);
- $this->newPass=$model->getPass($user->nUserID,$npid,$isid,$verid, $product);
- } else {
- $model->getExistingKeyAndPass($user->nUserID,$npid,$verid, $product);
- $this->newKey=$model->newKey;
- $this->newPass=$model->newPass;
- }
-
- if ($this->newKey>0) {
- if($product == 2) {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_RESTART_LIVE), 'message');
- } else {
- JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_RESTART_SOFTWARE), 'message');
- }
-
- if(isset($_GET["webform"])) {
- $privatekey = crm_hardlock::GetWebformPrivateKey();
- $result = "".$this->newPass." ";
- $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
- crm_hardlock::SetWebformResult($session, "result_ok", $encodedResult, "", "");
-
- $model->sendPasswordInEmail($user->email, $user->name, $this->newPass, $product);
- }
- }
-
- if ($this->freeKeys <= 25) $model->sendWarningMail(); // Email küldése Nonprofit aktiválásakor
- }
-
- $app->getPathway()->addItem(JText::_(COM_NONPROFIT_NONPROFIT), '');
-
- parent::display($tpl);
- }
-}
-?>
+getModel();
+
+ if(isset($_GET["webform"])) {
+ // ----------------------------------------------------------------------- Webform inicializálása -----------------------------------------------------------------------
+
+ if (!class_exists('crm_hardlock')) require_once(JPATH_BASE."/common_cadline_libraries/crm_hardlock.class.php");
+
+ $encodedSession = $_GET["session"]; // Minden csatorna megnyíláskor egyedi kódot kap, ez a publikus kulcs is
+ $session = base64_decode($encodedSession);
+ $param = $_GET["param"]; // Encode-olt adat
+ $privatekey = crm_hardlock::GetWebformPrivateKey(); // A privát kulcs lekérdezése
+ $param = crm_hardlock::decode($privatekey,$session,$param); // Adat decode-olása
+
+ //crmHelper::SetWebformResource($session, "Ez lesz az üzenet a felhasználónak", "Kattints ide");
+
+ // ----------------------------------------------------------------------- Webform inicializálása -----------------------------------------------------------------------
+
+ $param = "?".$param;
+ $npid = crm_hardlock::get_valueFromStringUrl($param, "npid");
+ $isid = crm_hardlock::get_valueFromStringUrl($param, "isid");
+ $verid = crm_hardlock::get_valueFromStringUrl($param, "verid");
+ $product = crm_hardlock::get_valueFromStringUrl($param, "product");
+ $this->GET_VERSION= $verid;
+ } else { // Régi nonprofit ág
+ $npid=trim(addslashes($_GET['npid']));
+ $isid=trim(addslashes($_GET['isid']));
+ $this->GET_VERSION=(isset($_GET['verid']) && (int)$_GET['verid']>0 ? (int)$_GET['verid'] : 0);
+ $product = 1;
+ }
+
+ $verid = ($this->GET_VERSION==0 ? $this->CURRENT_VERSION : $this->GET_VERSION);
+ $this->CURRENT_VERSION=$model->getCurrentVersion('verPassword8and9');
+
+ JFactory::getDocument()->addScript('/components/'.JFactory::getApplication()->input->get('option').'/assets/js/clipboard.min.js');
+
+ JLog::addLogger(array('text_file'=>'com_nonprofit.call.php','text_entry_format'=>'{DATE} {TIME} {CLIENTIP} {MESSAGE}'),JLog::ALL,array('com_nonprofit'));
+ JLog::add("domain: ".JURI::base()." | npid: ".$npid." | isid: ".$isid, JLog::WARNING, 'com_nonprofit');
+
+ if (!$user->nUserID) {
+ $model->syncUser();
+ $user=JFactory::getUser();
+ }
+
+ $crmUser=$model->getCRMUser($user->nUserID);
+
+ // Redirect if curr lang != crm old_db
+ if ($crmUser->old_db>'') {
+ $domain="";
+ $base=JURI::base();
+ $currLang=$model->getLang();
+ if ($currLang=='hun' && $crmUser->old_db!='clusers') $domain='http://www.archlinexp.com';
+ if ($currLang=='eng' && $crmUser->old_db=='clusers') $domain='http://www.archline.hu';
+ //if ($domain>'') { $this->redirect=$domain."/index.php?option=com_nonprofit&view=nonprofit&npid=".$npid.($isid>''?"&isid=".$isid:'').($this->GET_VERSION>0?"&verid=".$this->GET_VERSION:''); }
+ }
+
+ $this->article=$model->getArticle($product);
+ $model->hasRecord($user->nUserID, $product, $npid);
+ $this->hasNonprofitProgram=$model->hasNonprofitProgram;
+ $this->hasCommercial=$model->hasCommercial;
+ $this->isNpConToThisComp=$model->isNonprofitConnectedToThisComputer;
+ $this->isConnectedNonprofitExpired=$model->isConnectedNonprofitExpired;
+ $this->haveRightsToUseNonprofit = $model->haveRightsToUseNonprofit;
+ $this->hasToGenerateNonprofit = $model->hasToGenerateNonprofit;
+ $this->sqlQuery=$model->sqlQuery;
+
+ $this->freeKeys=$model->countFreeKeys($model->npRangeMin,$model->npRangeMax);
+ if (!$this->haveRightsToUseNonprofit || $this->freeKeys == 0) { // Ki kell írnia, hogy nincs joga használni a Nonprofitot
+ if($this->freeKeys == 0) {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_NO_FREE_KEY).''.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ } elseif($this->hasCommercial) {
+ // Mivel kereskedelmi licencel rendelkezik, ezért nem használhatja a nonprofit programot
+
+ if($product == 2) {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXIST_ISID_LIVE).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ } else {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXIST_ISID).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ }
+ } elseif(!$this->isNpConToThisComp) {
+ // Másik gépen van regisztrálva
+
+ if($product == 2) {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_ANOTHER_MACHINE_REGISTERED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ } else {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_ANOTHER_MACHINE_REGISTERED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ }
+ } elseif($this->isConnectedNonprofitExpired) {
+ // Lejárt a nonprofit
+
+ if($product == 2) {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXPIRED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ } else {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_EXPIRED).' '.JText::_(COM_NONPROFIT_SUFFIX), 'notice');
+ }
+ }
+ }
+
+ if($this->haveRightsToUseNonprofit) {
+ $model->getExistingKeyAndPass($user->nUserID,$npid,$verid, $product);
+ $this->regFinished=$model->newPass;
+ }
+
+ if (isset($_POST['getid']) && $this->haveRightsToUseNonprofit && (int)$user->nUserID>0 && (int)$this->freeKeys>0 && isset($npid) && $npid>'') {
+ if($this->hasToGenerateNonprofit) {
+ $this->newKey=$model->getKey($user->nUserID,$npid,$isid,$verid, $product);
+ $this->newPass=$model->getPass($user->nUserID,$npid,$isid,$verid, $product);
+ } else {
+ $model->getExistingKeyAndPass($user->nUserID,$npid,$verid, $product);
+ $this->newKey=$model->newKey;
+ $this->newPass=$model->newPass;
+ }
+
+ if ($this->newKey>0) {
+ if($product == 2) {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_RESTART_LIVE), 'message');
+ } else {
+ JFactory::getApplication()->enqueueMessage(JText::_(COM_NONPROFIT_RESTART_SOFTWARE), 'message');
+ }
+
+ if(isset($_GET["webform"])) {
+ $privatekey = crm_hardlock::GetWebformPrivateKey();
+ $result = "".$this->newPass." ";
+ $encodedResult = crm_hardlock::encode($privatekey,$session,$result);
+ crm_hardlock::SetWebformResult($session, "result_ok", $encodedResult, "", "");
+
+ $model->sendPasswordInEmail($user->email, $user->name, $this->newPass, $product);
+ }
+ }
+
+ if ($this->freeKeys <= 25) $model->sendWarningMail(); // Email küldése Nonprofit aktiválásakor
+ }
+
+ $app->getPathway()->addItem(JText::_(COM_NONPROFIT_NONPROFIT), '');
+
+ parent::display($tpl);
+ }
+}
+?>
diff --git a/cadline/components/components/com_showroom/assets/ajax/AjaxDownloadController.class.php b/cadline/components/components/com_showroom/assets/ajax/AjaxDownloadController.class.php
index 72bccfb1..50b97ce9 100644
--- a/cadline/components/components/com_showroom/assets/ajax/AjaxDownloadController.class.php
+++ b/cadline/components/components/com_showroom/assets/ajax/AjaxDownloadController.class.php
@@ -1,31 +1,31 @@
-0)
- {
- MySqlHelper::getInstance()->query("SELECT * FROM collection2 WHERE o_id=".$product);
- $res=MySqlHelper::getInstance()->fetchAssoc();
-
- if (!empty($res))
- {
- $tomb = isset($_SESSION['sr_down']) ? $_SESSION['sr_down'] : '';
- if (!is_array($tomb) || empty($tomb) || !in_array($product,$tomb))
- {
- $tomb=$product;
- $_SESSION['sr_down']=$tomb;
- MySqlHelper::getInstance()->query("UPDATE collection2 SET `down`=`down`+1 WHERE o_id=".$product);
- }
- }
- }
- }
-}
-
-$controller=new Controller();
-$controller->run();
+0)
+ {
+ MySqlHelper::getInstance()->query("SELECT * FROM collection2 WHERE o_id=".$product);
+ $res=MySqlHelper::getInstance()->fetchAssoc();
+
+ if (!empty($res))
+ {
+ $tomb = isset($_SESSION['sr_down']) ? $_SESSION['sr_down'] : '';
+ if (!is_array($tomb) || empty($tomb) || !in_array($product,$tomb))
+ {
+ $tomb=$product;
+ $_SESSION['sr_down']=$tomb;
+ MySqlHelper::getInstance()->query("UPDATE collection2 SET `down`=`down`+1 WHERE o_id=".$product);
+ }
+ }
+ }
+ }
+}
+
+$controller=new Controller();
+$controller->run();
diff --git a/cadline/components/components/com_showroom/assets/css/showroom.css b/cadline/components/components/com_showroom/assets/css/showroom.css
index ff994b70..8bb16ddc 100644
--- a/cadline/components/components/com_showroom/assets/css/showroom.css
+++ b/cadline/components/components/com_showroom/assets/css/showroom.css
@@ -1,756 +1,756 @@
-.manufactureContainer {
- width: 95%;
- height: auto;
- padding: 8px 5px 5px 5px;
- border: 0px solid #ff0000;
- user-select: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.manufacureBox {
- position: relative;
- float: none;
- display: inline-block;
- height: 142px;
- width: 192px;
- padding: 10px;
- margin: 5px 5px;
- user-select: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.manufacureBox .image {
- position: relative;
- text-align: center;
- border: 0px solid #000000;
-}
-
-.manufacureBox .image img {
- max-height: 120px;
- max-width: 100%;
- vertical-align: top;
- z-index: 9;
-}
-
-.manufacureBox .description {
- position: absolute;
- top: 110px;
- left: -5px;
- width: 156px;
- height: 26px;
- z-index: 5;
- background: url(/components/com_showroom/assets/images/sticker_down_active.png);
- text-align: left;
-}
-
-.manufacureBox .description_description {
- text-align: left;
- padding-left: 5px;
- line-height: 26px;
- white-space: nowrap;
-}
-
-#structContainer {
- display: inline-block;
- line-height: 32px;
- margin-left: 9px;
-}
-
-#structSearchButton {
- display: inline-block;
- vertical-align: top;
- width: 32px;
- height: 32px;
- cursor: pointer;
- background: url(../images/searchbutton.png);
- margin-left: 10px;
-}
-
-#structSearchContainer {
- display: inline-block;
- vertical-align: top;
- width: 190px;
- height: 32px;
- cursor: pointer;
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
-}
-
-#structTypeContainer {
- display: inline-block;
- vertical-align: top;
- width: 121px;
- height: 32px;
- cursor: pointer;
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
- margin-left: 10px;
-}
-
-#structBrandContainer {
- display: inline-block;
- vertical-align: top;
- width: 121px;
- height: 32px;
- cursor: pointer;
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
- margin-left: 10px;
-}
-
-#structCategoryContainer {
- display: inline-block;
- vertical-align: top;
- width: 123px;
- height: 32px;
- cursor: pointer;
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
- margin-left: 10px;
-}
-
-#structSubcategoryContainer {
- display: inline-block;
- vertical-align: top;
- width: 121px;
- height: 32px;
- cursor: pointer;
- border-left: 1px solid #ccc;
- border-right: 1px solid #ccc;
- margin-left: 10px;
-}
-
-#typeContainer {
- display: block;
- position: relative;
- margin: 0px 0px 0px -1px;
- float: left;
- width: 188px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-#brandContainer {
- display: block;
- position: relative;
- margin: 0px 0px 0px -1px;
- float: left;
- width: 564px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-#categoryContainer {
- display: block;
- position: relative;
- margin: 0px 0px 0px -1px;
- float: left;
- width: 376px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-#subcategoryContainer {
- display: block;
- position: relative;
- margin: 0px 0px 0px -1px;
- float: left;
- width: 376px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-#downloadPanelContainer {
- display: block;
- position: absolute;
- margin: -1px 0px 0px 0px;
- padding: 10px 10px 10px 10px;
- float: left;
- width: 230px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-.smallDownloadPanelContainer {
- display: block;
- position: absolute;
- bottom: 0px;
- right: -14px;
- margin: -1px 0px 0px 0px;
- padding: 2px 5px 2px 5px;
- float: left;
- width: 185px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-.smallDownloadPanelContainer2 {
- display: block;
- position: absolute;
- bottom: 26px;
- right: -3px;
- margin: -1px 0px 0px 0px;
- padding: 2px 5px 2px 5px;
- float: left;
- width: 185px;
- background: #fff;
- z-index: 10;
- border: 1px solid #ccc;
-}
-
-#typeContainer label,
-#brandContainer label,
-#categoryContainer label,
-#subcategoryContainer label,
-#typeTitle label,
-#brandTitle label,
-#categoryTitle label,
-#subcategoryTitle label {
- font-size: 13px;
-}
-
-#structContainer .back {
- float: left;
- display: inline-block;
- margin: 0px;
- width: 43px;
- height: 32px;
- line-height: 32px;
- vertical-align: top;
- text-align: center;
-}
-
-#structContainer .back img {
- vertical-align: top;
-}
-
-#structSearchContainer input {
- vertical-align: top;
- margin-right: 0px 30px 0px 0px;
- width: 100%;
- height: 32px;
- line-height: 32px;
- border: 0px solid #ffffff;
- font-size: 13px;
- font-family: 'Ubuntu', sans-serif;
- background-color: #F0F0F0;
-}
-
-.column {
- display: inline-block;
- float: left;
- width: 180px;
- padding-left: 8px;
-}
-
-.expanded {
- background: url(../images/triangle-down.png) no-repeat 95% center;
-}
-
-.collapsed {
- background: url(../images/triangle-right.png) no-repeat 95% center;
-}
-
-.showroom_search_pager {
- height: 28px;
- line-height: 28px;
- margin: 10px 0px 5px 51px;
- border: 0px solid #000000;
- vertical-align: top;
-}
-
-.showroom_search_result {
- float: left;
- width: 840px;
- margin: 0px 0px 0px 45px;
- border: 0px solid #000000;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.showroom_search_result .contentBox {
- position: relative;
- width: 192px;
- height: 142px;
- padding: 10px 10px 10px 10px;
- margin: 8px 8px 8px 8px;
-}
-
-.showroom_search_result .image img {
- max-height: 120px;
- max-width: 100%;
- vertical-align: top;
- z-index: 9;
-}
-
-.showroom_search_result .dd_pos1 {
- top: 97px;
- left: 154px;
-}
-
-.showroom_search_result .dd_pos2 {
- top: 107px;
- left: 164px;
-}
-
-.showroom_search_result .description_download {
- position: absolute;
- width: 26px;
- height: 26px;
- z-index: 5;
- line-height: 26px;
-}
-
-.showroom_checkbox_multi {
- display: inline-block;
- height: 32px;
- line-height: 32px;
- margin: 0px 0px 0px 5px;
- vertical-align: top;
-}
-
-.showroom_checkbox_multi label {
- font-size: 11px;
-}
-
-.showroom_container {
- height: 156px;
- padding: 8px 5px 5px 5px;
- position: relative;
- border: 0px solid #ff0000;
-}
-
-.showroom_separator {
- /* background-image: url("/templates/system/images/diver_03.png"); */
- background-image: url("/components/com_showroom/assets/images/diver_03.png");
- background-repeat: repeat-x;
- clear: both;
- height: 1px;
- margin: 0px 0px 10px 0px;
-}
-
-.showroom_title {
- position: absolute;
- top: 0px;
- left: 21px;
- width: 170px;
- height: 41px;
- border: 0px solid #00ff00;
- z-index: 5;
- background: url(/components/com_showroom/assets/images/sticker_up.png);
- color: #ffffff;
- text-transform: uppercase;
- font-weight: bold;
- overflow: hidden;
-}
-
-.showroom_title_level1 {
- background: url(/components/com_showroom/assets/images/sticker_up_1.png);
-}
-
-.showroom_title_level2 {
- background: url(/components/com_showroom/assets/images/sticker_up_2.png);
-}
-
-.showroom_title_level3 {
- background: url(/components/com_showroom/assets/images/sticker_up_3.png);
-}
-
-.showroom_title_description {
- line-height: 33px;
- font-size: 12px;
-}
-
-.contentBox .image {
- position: relative;
- text-align: center;
- border: 0px solid #000000;
-}
-
-.contentBox .description {
- position: absolute;
- top: 111px;
- left: 0px;
- width: 156px;
- height: 26px;
- z-index: 5;
- background: url(/components/com_showroom/assets/images/sticker_down.png);
- text-align: left;
-}
-
-.contentBox .description_active {
- position: absolute;
- top: 104px;
- left: 0px;
- width: 156px;
- height: 26px;
- z-index: 5;
- background: url(/components/com_showroom/assets/images/sticker_down_active.png);
- text-align: left;
-}
-
-.contentBox .description_description {
- text-align: left;
- padding-left: 5px;
- line-height: 26px;
- white-space: nowrap;
-}
-
-.contentBox .description_download {
- position: absolute;
- width: 26px;
- height: 26px;
- z-index: 5;
- line-height: 26px;
-}
-
-.contentBox .dd_pos1 {
- top: 97px;
- left: 154px;
-}
-
-.contentBox .dd_pos2 {
- top: 107px;
- left: 164px;
-}
-
-
-.paddingBottom10 {
- float: left;
- padding-bottom: 10px;
- border: 0px solid #0000ff;
-}
-
-.product_scroller {
- width: 850px;
- float: left;
- padding-top: 20px;
- border: 0px solid #0000ff;
-}
-
-.contentBox a {
- color: #000000;
-}
-
-.contentBox a:hover {
- color: #f0c317;
-}
-
-
-.family_menu {
- float: left;
- width: 17%;
- border: 0px solid #000000;
-}
-
-.search_container {
- width: 100%;
-}
-
-.family_container {
- float: left;
- width: 83%;
- border: 0px solid #000000;
- margin: 0px auto 0px auto;
-
- position: relative;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.family_menu ul {
- margin: 0px 0px 0px -25px;
-}
-
-.family_menu ul li {
- list-style-type: none;
-}
-
-.family_menu ul li a {
- color: #757575;
-}
-
-.family_menu ul li a:hover {
- color: #F0C318;
-}
-
-.family_menu .active {
- font-weight: bold;
- color: #F0C318;
-}
-
-.product_container {
- float: left;
- width: 83%;
- border: 0px solid #000000;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.product_container p {
- margin: 0px;
- padding: 0px;
-}
-
-.product_container .product_image_narrow img {
- max-width: 380px;
- vertical-align: top;
- display: inline;
- float: left;
-}
-
-.product_container .product_image_full {
- max-width: 420px;
- vertical-align: top;
- display: inline;
- float: left;
-}
-
-.product_container .product_image_full img {
- width: 100%;
-}
-
-.product_container .product_description {
- max-width: 420px;
- display: inline;
- float: left;
- padding-left: 10px;
- border: 0px solid #00ff00;
-}
-
-.product_container .product_description h5 {
- margin: 0px;
- padding: 0px;
-}
-
-.product_container .product_description h6 {
- margin: 0px;
- padding: 0px;
-}
-
-.product_container .full {
- width: 420px;
-}
-
-.product_container .narrow {
- width: 420px;
-}
-
-
-.product_container .product_download {
- background: no-repeat url(/components/com_showroom/assets/images/icon-download-48.png);
- width: 200px;
- margin-top: 0px;
- border: 1px solid #ccc;
- line-height: 48px;
- padding-left: 50px;
- font-size: 20px;
- text-transform: uppercase;
- cursor: pointer;
-}
-
-.product_container a {
- color: #676767;
-}
-
-.product_container a:hover {
- text-decoration: none;
-}
-
-.showroom_search {
- width: 100%;
- height: 32px;
- top: -20px;
- border: 0px solid #000000;
- margin-bottom: 5px;
-}
-
-.showroom_search form {
- float: left;
- display: inline-block;
- margin: 0px 0px 0px 0px;
- padding-top: 0px;
- height: 32px;
- line-height: 32px;
- vertical-align: middle;
-}
-
-.showroom_search form input {
- margin: 0px;
-}
-
-.showroom_search input[type="checkbox"] {
- display: none;
-}
-
-.showroom_search input[type="checkbox"]+label span {
- display: inline-block;
- width: 16px;
- height: 16px;
- vertical-align: middle;
- cursor: pointer;
- background: url("../images/checkbox.png") bottom left no-repeat;
-}
-
-.showroom_search input[type="checkbox"]:checked+label span {
- display: inline-block;
- width: 16px;
- height: 16px;
- vertical-align: middle;
- cursor: pointer;
- background: url("../images/checkbox.png") top left no-repeat;
-}
-
-.showroom_search label {
- display: inline-block;
- margin: 0px;
-}
-
-.showroom_multi {
- float: right;
- border: 0px solid #000000;
- margin: 10px 20px 0px 0px;
-}
-
-.showroom_clear {
- clear: both;
- margin: 0px;
- padding: 0px;
- height: 0px;
- width: 0px;
-}
-
-.showroom_back {
- display: inline;
- float: left;
- margin: 0px;
- padding: 0px;
- width: 52px;
- height: 26px;
- margin: 5px 0px 0px 10px;
- border: 0px solid #000000;
-}
-
-.showroom_pager {
- height: 28px;
- text-align: center;
- border: 0px solid #000000;
- overflow: hidden;
-}
-
-.showroom_search_pager span,
-.showroom_pager span {
- margin: 0px 2px;
- line-height: 26px;
- display: inline-block;
- width: 26px;
- height: 26px;
- text-align: center;
- vertical-align: middle;
-}
-
-.showroom_search_pager span img,
-.showroom_pager span img {
- vertical-align: top;
-}
-
-.showroom_search_pager a,
-.showroom_pager a {
- color: #676767;
-}
-
-.showroom_search_pager a:hover,
-.showroom_pager a:hover {
- color: #f0c317;
- text-decoration: none;
-}
-
-.showroom_search_pager .active,
-.showroom_pager .active {
- border: 1px solid #f0c317;
- color: #f0c317;
- font-weight: bold;
-}
-
-.thinborder,
-.showroom_search_pager .inactive,
-.showroom_pager .inactive {
- border: 1px solid #ccc;
-}
-
-#j-main-container .clear {
- clear: both;
- margin: 0px;
- padding: 0px;
- height: 0px;
- width: 0px;
-}
-
-#j-main-container div.hasab {
- display: inline-block;
- width: 320px;
- vertical-align: top;
- border: 0px solid #000;
-}
-
-#j-main-container div.hasab div.inputholder {
- display: block;
- height: 38px;
- border: 0px solid #ff0000;
-}
-
-#j-main-container div.hasab div.inputholder label {
- display: inline-block;
- width: 130px;
- font-weight: bold;
- border: 0px solid #00ff00;
-}
-
-#j-main-container div.hasab div.inputholder input[type="text"],
-#j-main-container div.hasab div.inputholder select {
- display: inline;
- margin: 0px;
- width: 170px;
-}
-
-#j-main-container div.hasab div.inputholder textarea {
- width: 300px;
- height: 150px;
-}
-
-#j-main-container div.hasab div.inputholder input[type="file"] {
- width: 170px;
-}
-
-#j-main-container div.hasab div.inputholder fieldset {
- display: inline;
- width: 170px;
- white-space: nowrap;
- border: 0px solid #ff00ff;
-}
-
-#j-main-container div.hasab div.inputholder fieldset label {
- width: 50px;
- font-weight: normal;
+.manufactureContainer {
+ width: 95%;
+ height: auto;
+ padding: 8px 5px 5px 5px;
+ border: 0px solid #ff0000;
+ user-select: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.manufacureBox {
+ position: relative;
+ float: none;
+ display: inline-block;
+ height: 142px;
+ width: 192px;
+ padding: 10px;
+ margin: 5px 5px;
+ user-select: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.manufacureBox .image {
+ position: relative;
+ text-align: center;
+ border: 0px solid #000000;
+}
+
+.manufacureBox .image img {
+ max-height: 120px;
+ max-width: 100%;
+ vertical-align: top;
+ z-index: 9;
+}
+
+.manufacureBox .description {
+ position: absolute;
+ top: 110px;
+ left: -5px;
+ width: 156px;
+ height: 26px;
+ z-index: 5;
+ background: url(/components/com_showroom/assets/images/sticker_down_active.png);
+ text-align: left;
+}
+
+.manufacureBox .description_description {
+ text-align: left;
+ padding-left: 5px;
+ line-height: 26px;
+ white-space: nowrap;
+}
+
+#structContainer {
+ display: inline-block;
+ line-height: 32px;
+ margin-left: 9px;
+}
+
+#structSearchButton {
+ display: inline-block;
+ vertical-align: top;
+ width: 32px;
+ height: 32px;
+ cursor: pointer;
+ background: url(../images/searchbutton.png);
+ margin-left: 10px;
+}
+
+#structSearchContainer {
+ display: inline-block;
+ vertical-align: top;
+ width: 190px;
+ height: 32px;
+ cursor: pointer;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+}
+
+#structTypeContainer {
+ display: inline-block;
+ vertical-align: top;
+ width: 121px;
+ height: 32px;
+ cursor: pointer;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ margin-left: 10px;
+}
+
+#structBrandContainer {
+ display: inline-block;
+ vertical-align: top;
+ width: 121px;
+ height: 32px;
+ cursor: pointer;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ margin-left: 10px;
+}
+
+#structCategoryContainer {
+ display: inline-block;
+ vertical-align: top;
+ width: 123px;
+ height: 32px;
+ cursor: pointer;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ margin-left: 10px;
+}
+
+#structSubcategoryContainer {
+ display: inline-block;
+ vertical-align: top;
+ width: 121px;
+ height: 32px;
+ cursor: pointer;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ margin-left: 10px;
+}
+
+#typeContainer {
+ display: block;
+ position: relative;
+ margin: 0px 0px 0px -1px;
+ float: left;
+ width: 188px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+#brandContainer {
+ display: block;
+ position: relative;
+ margin: 0px 0px 0px -1px;
+ float: left;
+ width: 564px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+#categoryContainer {
+ display: block;
+ position: relative;
+ margin: 0px 0px 0px -1px;
+ float: left;
+ width: 376px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+#subcategoryContainer {
+ display: block;
+ position: relative;
+ margin: 0px 0px 0px -1px;
+ float: left;
+ width: 376px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+#downloadPanelContainer {
+ display: block;
+ position: absolute;
+ margin: -1px 0px 0px 0px;
+ padding: 10px 10px 10px 10px;
+ float: left;
+ width: 230px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+.smallDownloadPanelContainer {
+ display: block;
+ position: absolute;
+ bottom: 0px;
+ right: -14px;
+ margin: -1px 0px 0px 0px;
+ padding: 2px 5px 2px 5px;
+ float: left;
+ width: 185px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+.smallDownloadPanelContainer2 {
+ display: block;
+ position: absolute;
+ bottom: 26px;
+ right: -3px;
+ margin: -1px 0px 0px 0px;
+ padding: 2px 5px 2px 5px;
+ float: left;
+ width: 185px;
+ background: #fff;
+ z-index: 10;
+ border: 1px solid #ccc;
+}
+
+#typeContainer label,
+#brandContainer label,
+#categoryContainer label,
+#subcategoryContainer label,
+#typeTitle label,
+#brandTitle label,
+#categoryTitle label,
+#subcategoryTitle label {
+ font-size: 13px;
+}
+
+#structContainer .back {
+ float: left;
+ display: inline-block;
+ margin: 0px;
+ width: 43px;
+ height: 32px;
+ line-height: 32px;
+ vertical-align: top;
+ text-align: center;
+}
+
+#structContainer .back img {
+ vertical-align: top;
+}
+
+#structSearchContainer input {
+ vertical-align: top;
+ margin-right: 0px 30px 0px 0px;
+ width: 100%;
+ height: 32px;
+ line-height: 32px;
+ border: 0px solid #ffffff;
+ font-size: 13px;
+ font-family: 'Ubuntu', sans-serif;
+ background-color: #F0F0F0;
+}
+
+.column {
+ display: inline-block;
+ float: left;
+ width: 180px;
+ padding-left: 8px;
+}
+
+.expanded {
+ background: url(../images/triangle-down.png) no-repeat 95% center;
+}
+
+.collapsed {
+ background: url(../images/triangle-right.png) no-repeat 95% center;
+}
+
+.showroom_search_pager {
+ height: 28px;
+ line-height: 28px;
+ margin: 10px 0px 5px 51px;
+ border: 0px solid #000000;
+ vertical-align: top;
+}
+
+.showroom_search_result {
+ float: left;
+ width: 840px;
+ margin: 0px 0px 0px 45px;
+ border: 0px solid #000000;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.showroom_search_result .contentBox {
+ position: relative;
+ width: 192px;
+ height: 142px;
+ padding: 10px 10px 10px 10px;
+ margin: 8px 8px 8px 8px;
+}
+
+.showroom_search_result .image img {
+ max-height: 120px;
+ max-width: 100%;
+ vertical-align: top;
+ z-index: 9;
+}
+
+.showroom_search_result .dd_pos1 {
+ top: 97px;
+ left: 154px;
+}
+
+.showroom_search_result .dd_pos2 {
+ top: 107px;
+ left: 164px;
+}
+
+.showroom_search_result .description_download {
+ position: absolute;
+ width: 26px;
+ height: 26px;
+ z-index: 5;
+ line-height: 26px;
+}
+
+.showroom_checkbox_multi {
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ margin: 0px 0px 0px 5px;
+ vertical-align: top;
+}
+
+.showroom_checkbox_multi label {
+ font-size: 11px;
+}
+
+.showroom_container {
+ height: 156px;
+ padding: 8px 5px 5px 5px;
+ position: relative;
+ border: 0px solid #ff0000;
+}
+
+.showroom_separator {
+ /* background-image: url("/templates/system/images/diver_03.png"); */
+ background-image: url("/components/com_showroom/assets/images/diver_03.png");
+ background-repeat: repeat-x;
+ clear: both;
+ height: 1px;
+ margin: 0px 0px 10px 0px;
+}
+
+.showroom_title {
+ position: absolute;
+ top: 0px;
+ left: 21px;
+ width: 170px;
+ height: 41px;
+ border: 0px solid #00ff00;
+ z-index: 5;
+ background: url(/components/com_showroom/assets/images/sticker_up.png);
+ color: #ffffff;
+ text-transform: uppercase;
+ font-weight: bold;
+ overflow: hidden;
+}
+
+.showroom_title_level1 {
+ background: url(/components/com_showroom/assets/images/sticker_up_1.png);
+}
+
+.showroom_title_level2 {
+ background: url(/components/com_showroom/assets/images/sticker_up_2.png);
+}
+
+.showroom_title_level3 {
+ background: url(/components/com_showroom/assets/images/sticker_up_3.png);
+}
+
+.showroom_title_description {
+ line-height: 33px;
+ font-size: 12px;
+}
+
+.contentBox .image {
+ position: relative;
+ text-align: center;
+ border: 0px solid #000000;
+}
+
+.contentBox .description {
+ position: absolute;
+ top: 111px;
+ left: 0px;
+ width: 156px;
+ height: 26px;
+ z-index: 5;
+ background: url(/components/com_showroom/assets/images/sticker_down.png);
+ text-align: left;
+}
+
+.contentBox .description_active {
+ position: absolute;
+ top: 104px;
+ left: 0px;
+ width: 156px;
+ height: 26px;
+ z-index: 5;
+ background: url(/components/com_showroom/assets/images/sticker_down_active.png);
+ text-align: left;
+}
+
+.contentBox .description_description {
+ text-align: left;
+ padding-left: 5px;
+ line-height: 26px;
+ white-space: nowrap;
+}
+
+.contentBox .description_download {
+ position: absolute;
+ width: 26px;
+ height: 26px;
+ z-index: 5;
+ line-height: 26px;
+}
+
+.contentBox .dd_pos1 {
+ top: 97px;
+ left: 154px;
+}
+
+.contentBox .dd_pos2 {
+ top: 107px;
+ left: 164px;
+}
+
+
+.paddingBottom10 {
+ float: left;
+ padding-bottom: 10px;
+ border: 0px solid #0000ff;
+}
+
+.product_scroller {
+ width: 850px;
+ float: left;
+ padding-top: 20px;
+ border: 0px solid #0000ff;
+}
+
+.contentBox a {
+ color: #000000;
+}
+
+.contentBox a:hover {
+ color: #f0c317;
+}
+
+
+.family_menu {
+ float: left;
+ width: 17%;
+ border: 0px solid #000000;
+}
+
+.search_container {
+ width: 100%;
+}
+
+.family_container {
+ float: left;
+ width: 83%;
+ border: 0px solid #000000;
+ margin: 0px auto 0px auto;
+
+ position: relative;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.family_menu ul {
+ margin: 0px 0px 0px -25px;
+}
+
+.family_menu ul li {
+ list-style-type: none;
+}
+
+.family_menu ul li a {
+ color: #757575;
+}
+
+.family_menu ul li a:hover {
+ color: #F0C318;
+}
+
+.family_menu .active {
+ font-weight: bold;
+ color: #F0C318;
+}
+
+.product_container {
+ float: left;
+ width: 83%;
+ border: 0px solid #000000;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.product_container p {
+ margin: 0px;
+ padding: 0px;
+}
+
+.product_container .product_image_narrow img {
+ max-width: 380px;
+ vertical-align: top;
+ display: inline;
+ float: left;
+}
+
+.product_container .product_image_full {
+ max-width: 420px;
+ vertical-align: top;
+ display: inline;
+ float: left;
+}
+
+.product_container .product_image_full img {
+ width: 100%;
+}
+
+.product_container .product_description {
+ max-width: 420px;
+ display: inline;
+ float: left;
+ padding-left: 10px;
+ border: 0px solid #00ff00;
+}
+
+.product_container .product_description h5 {
+ margin: 0px;
+ padding: 0px;
+}
+
+.product_container .product_description h6 {
+ margin: 0px;
+ padding: 0px;
+}
+
+.product_container .full {
+ width: 420px;
+}
+
+.product_container .narrow {
+ width: 420px;
+}
+
+
+.product_container .product_download {
+ background: no-repeat url(/components/com_showroom/assets/images/icon-download-48.png);
+ width: 200px;
+ margin-top: 0px;
+ border: 1px solid #ccc;
+ line-height: 48px;
+ padding-left: 50px;
+ font-size: 20px;
+ text-transform: uppercase;
+ cursor: pointer;
+}
+
+.product_container a {
+ color: #676767;
+}
+
+.product_container a:hover {
+ text-decoration: none;
+}
+
+.showroom_search {
+ width: 100%;
+ height: 32px;
+ top: -20px;
+ border: 0px solid #000000;
+ margin-bottom: 5px;
+}
+
+.showroom_search form {
+ float: left;
+ display: inline-block;
+ margin: 0px 0px 0px 0px;
+ padding-top: 0px;
+ height: 32px;
+ line-height: 32px;
+ vertical-align: middle;
+}
+
+.showroom_search form input {
+ margin: 0px;
+}
+
+.showroom_search input[type="checkbox"] {
+ display: none;
+}
+
+.showroom_search input[type="checkbox"]+label span {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ vertical-align: middle;
+ cursor: pointer;
+ background: url("../images/checkbox.png") bottom left no-repeat;
+}
+
+.showroom_search input[type="checkbox"]:checked+label span {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ vertical-align: middle;
+ cursor: pointer;
+ background: url("../images/checkbox.png") top left no-repeat;
+}
+
+.showroom_search label {
+ display: inline-block;
+ margin: 0px;
+}
+
+.showroom_multi {
+ float: right;
+ border: 0px solid #000000;
+ margin: 10px 20px 0px 0px;
+}
+
+.showroom_clear {
+ clear: both;
+ margin: 0px;
+ padding: 0px;
+ height: 0px;
+ width: 0px;
+}
+
+.showroom_back {
+ display: inline;
+ float: left;
+ margin: 0px;
+ padding: 0px;
+ width: 52px;
+ height: 26px;
+ margin: 5px 0px 0px 10px;
+ border: 0px solid #000000;
+}
+
+.showroom_pager {
+ height: 28px;
+ text-align: center;
+ border: 0px solid #000000;
+ overflow: hidden;
+}
+
+.showroom_search_pager span,
+.showroom_pager span {
+ margin: 0px 2px;
+ line-height: 26px;
+ display: inline-block;
+ width: 26px;
+ height: 26px;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.showroom_search_pager span img,
+.showroom_pager span img {
+ vertical-align: top;
+}
+
+.showroom_search_pager a,
+.showroom_pager a {
+ color: #676767;
+}
+
+.showroom_search_pager a:hover,
+.showroom_pager a:hover {
+ color: #f0c317;
+ text-decoration: none;
+}
+
+.showroom_search_pager .active,
+.showroom_pager .active {
+ border: 1px solid #f0c317;
+ color: #f0c317;
+ font-weight: bold;
+}
+
+.thinborder,
+.showroom_search_pager .inactive,
+.showroom_pager .inactive {
+ border: 1px solid #ccc;
+}
+
+#j-main-container .clear {
+ clear: both;
+ margin: 0px;
+ padding: 0px;
+ height: 0px;
+ width: 0px;
+}
+
+#j-main-container div.hasab {
+ display: inline-block;
+ width: 320px;
+ vertical-align: top;
+ border: 0px solid #000;
+}
+
+#j-main-container div.hasab div.inputholder {
+ display: block;
+ height: 38px;
+ border: 0px solid #ff0000;
+}
+
+#j-main-container div.hasab div.inputholder label {
+ display: inline-block;
+ width: 130px;
+ font-weight: bold;
+ border: 0px solid #00ff00;
+}
+
+#j-main-container div.hasab div.inputholder input[type="text"],
+#j-main-container div.hasab div.inputholder select {
+ display: inline;
+ margin: 0px;
+ width: 170px;
+}
+
+#j-main-container div.hasab div.inputholder textarea {
+ width: 300px;
+ height: 150px;
+}
+
+#j-main-container div.hasab div.inputholder input[type="file"] {
+ width: 170px;
+}
+
+#j-main-container div.hasab div.inputholder fieldset {
+ display: inline;
+ width: 170px;
+ white-space: nowrap;
+ border: 0px solid #ff00ff;
+}
+
+#j-main-container div.hasab div.inputholder fieldset label {
+ width: 50px;
+ font-weight: normal;
}
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/models/family.php b/cadline/components/components/com_showroom/models/family.php
index 458cab06..7d22560e 100644
--- a/cadline/components/components/com_showroom/models/family.php
+++ b/cadline/components/components/com_showroom/models/family.php
@@ -1,386 +1,386 @@
-get('sr_lang');
- if (!isset($this->families))
- {
- $db=JFactory::getDBO();
-
- if ($m_id==0)
- {
- $db->setQuery("
- SELECT c.c_id,c.nev_hun,c.nev_eng,c.m_id,m.`name` AS manufacture, m.dir,c.deleted AS c_deleted,m.deleted AS m_deleted
- FROM coll2_cat c
- LEFT OUTER JOIN coll2_man m ON m.id=c.m_id
- WHERE c.c_id=".(int)$family." LIMIT 1;");
- $tmp=$db->loadObjectList();
-
- $manufacture=(int)$tmp[0]->m_id;
- }
- else
- {
- $manufacture=$m_id;
- }
-
- $db->setQuery("
- SELECT f.c_id,f.m_id,m.`name` AS manufacture,IF( LENGTH(f.nev_".$lang.")>20,CONCAT(SUBSTRING(f.nev_".$lang.",1,18),'...'),f.nev_".$lang.") AS family_short,f.nev_".$lang." AS family,cnt.darab
- FROM coll2_cat f
- LEFT OUTER JOIN (
- SELECT COUNT(*) AS darab,c_id,c_name FROM (
- SELECT x.o_id,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($manufacture>0 ? "AND x.m_id='".$manufacture."'" : "")."
- ) x GROUP BY c_id
- ) cnt ON cnt.c_id=f.c_id
- LEFT OUTER JOIN coll2_man m ON m.id=f.m_id
- WHERE f.deleted=0 AND m.deleted=0 AND cnt.darab>0
- ORDER BY f.nev_".$lang.";");
- $this->families = $db->loadObjectList();
- }
- return $this->families;
- }
-
- public function getFamily($id=0)
- {
- $session=JFactory::getSession();
- $lang=$session->get('sr_lang');//'hun';
- if ($id>0 && (!isset($this->family) or empty($this->family)))
- {
- $db=JFactory::getDBO();
- $db->setQuery("SELECT c_id,m_id,nev_".$lang." AS name,deleted FROM coll2_cat WHERE c_id=".$id." LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->family=$tmp[0];
- }
- return $this->family;
- }
-
-
- public function getProducts($family="",$m_id=0)
- {
- $session=JFactory::getSession();
- $lang=$session->get('sr_lang');
- if (!isset($this->products))
- {
- $db = JFactory::getDBO();
- $db->setQuery("
- SELECT x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`,v.`version`,x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN (
- SELECT ver_id,o_id,fajl AS `file`,version FROM (
- SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
- ) z GROUP BY o_id
- ) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($m_id>0 ? " AND x.m_id='".$m_id."'":"")." ".((int)$family>0 ? ' AND x.c_id='.(int)$family.' ORDER BY x.title_'.$lang : ' ORDER BY RAND() LIMIT 0,'.$this->limit).";");
- $this->products = $db->loadObjectList();
- }
- return $this->products;
- }
-
-
- public function getProduct($product=0)
- {
- $session=JFactory::getSession();
- $lang=$session->get('sr_lang');
- if (!isset($this->product) && (int)$product>0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT
- x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
- x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
- x.rendelheto,x.`show`,x.`down`,x.tipus,t.name_".$lang." AS tipus_lang,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
- x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
- $tmp = $db->loadObjectList();
- $this->product = $tmp[0];
- }
- return $this->product;
- }
-
- public function getPrVersion()
- {
- $ret=2012;
-
- if (!isset($this->prversion) || (int)$this->prversion==0)
- {
- $db=JFactory::getDBO();
- $session=JFactory::getSession();
-
- $ver=(int)$session->get('sr_ver');
-
- if ($ver)
- {
- $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
- $row=$db->loadObjectList();
- if (!empty($row)) $ret=(int)$row[0]->prversion;
- }
-
- $this->prversion=$ret;
- }
- else
- {
- $ret=$this->prversion;
- }
-
- return ($ret);
- }
-
-
- public function getFiles($id=0)
- {
- if ((int)$id<=0) return(FALSE);
-
- $this->folder=$this->getFullPath($id);
- if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
- return $this->files;
- }
-
- public function getFilteredFiles($tomb=array(),$id)
- {
- $ret=array();
- $this->filter=array('.','..','.quarantine');
- if (is_array($tomb) and count($tomb))
- {
- foreach ($tomb as $file)
- {
- if (!in_array($file, $this->filter))
- {
- $parts=explode(".", $file);
-
- $obj=new stdClass;
- $obj->name=$file;
- $obj->path=$this->getPath($id).$file;
- $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
- $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
- $obj->filesize=filesize($obj->fullpath);
- $obj->datetime=filemtime($obj->fullpath);
- $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
- $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
-
- $ret[]=$obj;
- }
- }
- }
- return $ret;
- }
-
-
- public function getPath($id=0)
- {
- $path='';
- if ((int)$id>0)
- {
- $itm=$this->getProduct($id);
- $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
- }
- return $path;
- }
-
-
- public function getFullPath($id=0)
- {
- $path='';
- if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
- return $path;
- }
-
-
- public function getMultiDownloadLink($id,$path)
- {
- $ret="";
-
- $obj=$this->getProduct($id);
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
-/*
- $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=$obj->file; }
- else { $f=$fajlok[2]; }
-*/
- if ($path>"")
- {
- $ret=$path."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- "&objectname=".base64_encode($obj->title).
- ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
-
- if ((int)$_SESSION['__default']['sr_ver']>=33)
- {
- $struct=$this->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
-
- return $ret;
- }
-
-
- public function getArticle($alias='showroom')
- {
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->article=$tmp[0];
- return $this->article;
- }
-
-
- public function getStruct($id=0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
- FROM coll2_struct s
- LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
- WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->struct=$tmp[0];
- return($this->struct);
- }
-
- public function getProductThumb() { return $this->productThumb; }
- public function getProductDir() { return $this->productDir; }
-
- public function getLang()
- {
- return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
- }
-
-
- public function getURL($url='')
- {
- $sefurl=$nonsefurl='';
-
- $db=JFactory::getDBO();
- $url=trim($url);
- if (substr($url,0,1)=='/') $url=substr($url,1);
- $lang=&JFactory::getSession()->get('sr_lang');
- $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
-
- $db->setQuery("SELECT * FROM `".$table."` WHERE `".(substr($url, 0, 5)=='index' ? "newurl" : "oldurl" )."`='".$url."' LIMIT 1;");
- $tmp=$db->loadObjectList();
-
- if (!empty($tmp))
- {
- $sefurl=$tmp[0]->oldurl;
- $nonsefurl=$tmp[0]->newurl;
- parse_str($nonsefurl, $output);
- $id=(int)$output['product'];
- }
- else
- {
- $id=(int)$_GET['product'];
- $product=$this->getProduct($id);
- $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
- $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
-
- $db->setQuery("SELECT * FROM ".$table." WHERE oldurl='".$sefurl."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- if (empty($tmp) && $id>0)
- {
- $tomb=New stdClass();
- $tomb->cpt=1;
- $tomb->rank=0;
- $tomb->oldurl=$sefurl;
- $tomb->newurl=$nonsefurl;
- $tomb->dateadd=date('Y-m-d',time());
- $db->insertObject($table, $tomb);
- }
- }
-
- return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
- }
-
-
- public function getURLbyID($id=0)
- {
-
- $db=JFactory::getDBO();
- $sefurl=$nonsefurl='';
- $lang=JFactory::getSession()->get('sr_lang');
- $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
-
- $sql="SELECT * FROM `".$table."` WHERE `newurl`='index.php?option=com_showroom&view=product&product=".$id."&lang=".$lang."' LIMIT 1;";
- $db->setQuery($sql);
- $tmp=$db->loadObjectList();
-
- if (!empty($tmp))
- {
- $sefurl=$tmp[0]->oldurl;
- $nonsefurl=$tmp[0]->newurl;
- parse_str($nonsefurl, $output);
- $id=(int)$output['product'];
- }
- else
- {
- if ($id>0)
- {
- $product=$this->getProduct($id);
- $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
- $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
-
- $tomb=New stdClass();
- $tomb->cpt=1;
- $tomb->rank=0;
- $tomb->oldurl=$sefurl;
- $tomb->newurl=$nonsefurl;
- $tomb->dateadd=date('Y-m-d',time());
- $db->insertObject($table, $tomb);
- }
- }
-
- return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
- }
-
-
- public function createSlug($string, $delimiter = '-') {
- if (!extension_loaded('iconv')) { throw new Exception('iconv module not loaded'); }
- $oldLocale = setlocale(LC_ALL, '0'); // Save the old locale and set the new locale to UTF-8
- setlocale(LC_ALL, 'en_US.UTF-8');
- $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
- $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
- $clean = strtolower($clean);
- $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
- $clean = trim($clean, $delimiter);
- setlocale(LC_ALL, $oldLocale); // Revert back to the old locale
- return $clean;
- }
-}
-?>
+get('sr_lang');
+ if (!isset($this->families))
+ {
+ $db=JFactory::getDBO();
+
+ if ($m_id==0)
+ {
+ $db->setQuery("
+ SELECT c.c_id,c.nev_hun,c.nev_eng,c.m_id,m.`name` AS manufacture, m.dir,c.deleted AS c_deleted,m.deleted AS m_deleted
+ FROM coll2_cat c
+ LEFT OUTER JOIN coll2_man m ON m.id=c.m_id
+ WHERE c.c_id=".(int)$family." LIMIT 1;");
+ $tmp=$db->loadObjectList();
+
+ $manufacture=(int)$tmp[0]->m_id;
+ }
+ else
+ {
+ $manufacture=$m_id;
+ }
+
+ $db->setQuery("
+ SELECT f.c_id,f.m_id,m.`name` AS manufacture,IF( LENGTH(f.nev_".$lang.")>20,CONCAT(SUBSTRING(f.nev_".$lang.",1,18),'...'),f.nev_".$lang.") AS family_short,f.nev_".$lang." AS family,cnt.darab
+ FROM coll2_cat f
+ LEFT OUTER JOIN (
+ SELECT COUNT(*) AS darab,c_id,c_name FROM (
+ SELECT x.o_id,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($manufacture>0 ? "AND x.m_id='".$manufacture."'" : "")."
+ ) x GROUP BY c_id
+ ) cnt ON cnt.c_id=f.c_id
+ LEFT OUTER JOIN coll2_man m ON m.id=f.m_id
+ WHERE f.deleted=0 AND m.deleted=0 AND cnt.darab>0
+ ORDER BY f.nev_".$lang.";");
+ $this->families = $db->loadObjectList();
+ }
+ return $this->families;
+ }
+
+ public function getFamily($id=0)
+ {
+ $session=JFactory::getSession();
+ $lang=$session->get('sr_lang');//'hun';
+ if ($id>0 && (!isset($this->family) or empty($this->family)))
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT c_id,m_id,nev_".$lang." AS name,deleted FROM coll2_cat WHERE c_id=".$id." LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->family=$tmp[0];
+ }
+ return $this->family;
+ }
+
+
+ public function getProducts($family="",$m_id=0)
+ {
+ $session=JFactory::getSession();
+ $lang=$session->get('sr_lang');
+ if (!isset($this->products))
+ {
+ $db = JFactory::getDBO();
+ $db->setQuery("
+ SELECT x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`,v.`version`,x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN (
+ SELECT ver_id,o_id,fajl AS `file`,version FROM (
+ SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
+ ) z GROUP BY o_id
+ ) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($m_id>0 ? " AND x.m_id='".$m_id."'":"")." ".((int)$family>0 ? ' AND x.c_id='.(int)$family.' ORDER BY x.title_'.$lang : ' ORDER BY RAND() LIMIT 0,'.$this->limit).";");
+ $this->products = $db->loadObjectList();
+ }
+ return $this->products;
+ }
+
+
+ public function getProduct($product=0)
+ {
+ $session=JFactory::getSession();
+ $lang=$session->get('sr_lang');
+ if (!isset($this->product) && (int)$product>0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT
+ x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
+ x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
+ x.rendelheto,x.`show`,x.`down`,x.tipus,t.name_".$lang." AS tipus_lang,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
+ x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
+ $tmp = $db->loadObjectList();
+ $this->product = $tmp[0];
+ }
+ return $this->product;
+ }
+
+ public function getPrVersion()
+ {
+ $ret=2012;
+
+ if (!isset($this->prversion) || (int)$this->prversion==0)
+ {
+ $db=JFactory::getDBO();
+ $session=JFactory::getSession();
+
+ $ver=(int)$session->get('sr_ver');
+
+ if ($ver)
+ {
+ $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
+ $row=$db->loadObjectList();
+ if (!empty($row)) $ret=(int)$row[0]->prversion;
+ }
+
+ $this->prversion=$ret;
+ }
+ else
+ {
+ $ret=$this->prversion;
+ }
+
+ return ($ret);
+ }
+
+
+ public function getFiles($id=0)
+ {
+ if ((int)$id<=0) return(FALSE);
+
+ $this->folder=$this->getFullPath($id);
+ if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
+ return $this->files;
+ }
+
+ public function getFilteredFiles($tomb=array(),$id)
+ {
+ $ret=array();
+ $this->filter=array('.','..','.quarantine');
+ if (is_array($tomb) and count($tomb))
+ {
+ foreach ($tomb as $file)
+ {
+ if (!in_array($file, $this->filter))
+ {
+ $parts=explode(".", $file);
+
+ $obj=new stdClass;
+ $obj->name=$file;
+ $obj->path=$this->getPath($id).$file;
+ $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
+ $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
+ $obj->filesize=filesize($obj->fullpath);
+ $obj->datetime=filemtime($obj->fullpath);
+ $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
+ $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
+
+ $ret[]=$obj;
+ }
+ }
+ }
+ return $ret;
+ }
+
+
+ public function getPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0)
+ {
+ $itm=$this->getProduct($id);
+ $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
+ }
+ return $path;
+ }
+
+
+ public function getFullPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
+ return $path;
+ }
+
+
+ public function getMultiDownloadLink($id,$path)
+ {
+ $ret="";
+
+ $obj=$this->getProduct($id);
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+/*
+ $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=$obj->file; }
+ else { $f=$fajlok[2]; }
+*/
+ if ($path>"")
+ {
+ $ret=$path."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ "&objectname=".base64_encode($obj->title).
+ ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
+
+ if ((int)$_SESSION['__default']['sr_ver']>=33)
+ {
+ $struct=$this->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+
+ return $ret;
+ }
+
+
+ public function getArticle($alias='showroom')
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->article=$tmp[0];
+ return $this->article;
+ }
+
+
+ public function getStruct($id=0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
+ FROM coll2_struct s
+ LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
+ WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->struct=$tmp[0];
+ return($this->struct);
+ }
+
+ public function getProductThumb() { return $this->productThumb; }
+ public function getProductDir() { return $this->productDir; }
+
+ public function getLang()
+ {
+ return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
+ }
+
+
+ public function getURL($url='')
+ {
+ $sefurl=$nonsefurl='';
+
+ $db=JFactory::getDBO();
+ $url=trim($url);
+ if (substr($url,0,1)=='/') $url=substr($url,1);
+ $lang=&JFactory::getSession()->get('sr_lang');
+ $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
+
+ $db->setQuery("SELECT * FROM `".$table."` WHERE `".(substr($url, 0, 5)=='index' ? "newurl" : "oldurl" )."`='".$url."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+
+ if (!empty($tmp))
+ {
+ $sefurl=$tmp[0]->oldurl;
+ $nonsefurl=$tmp[0]->newurl;
+ parse_str($nonsefurl, $output);
+ $id=(int)$output['product'];
+ }
+ else
+ {
+ $id=(int)$_GET['product'];
+ $product=$this->getProduct($id);
+ $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
+ $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
+
+ $db->setQuery("SELECT * FROM ".$table." WHERE oldurl='".$sefurl."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ if (empty($tmp) && $id>0)
+ {
+ $tomb=New stdClass();
+ $tomb->cpt=1;
+ $tomb->rank=0;
+ $tomb->oldurl=$sefurl;
+ $tomb->newurl=$nonsefurl;
+ $tomb->dateadd=date('Y-m-d',time());
+ $db->insertObject($table, $tomb);
+ }
+ }
+
+ return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
+ }
+
+
+ public function getURLbyID($id=0)
+ {
+
+ $db=JFactory::getDBO();
+ $sefurl=$nonsefurl='';
+ $lang=JFactory::getSession()->get('sr_lang');
+ $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
+
+ $sql="SELECT * FROM `".$table."` WHERE `newurl`='index.php?option=com_showroom&view=product&product=".$id."&lang=".$lang."' LIMIT 1;";
+ $db->setQuery($sql);
+ $tmp=$db->loadObjectList();
+
+ if (!empty($tmp))
+ {
+ $sefurl=$tmp[0]->oldurl;
+ $nonsefurl=$tmp[0]->newurl;
+ parse_str($nonsefurl, $output);
+ $id=(int)$output['product'];
+ }
+ else
+ {
+ if ($id>0)
+ {
+ $product=$this->getProduct($id);
+ $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
+ $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
+
+ $tomb=New stdClass();
+ $tomb->cpt=1;
+ $tomb->rank=0;
+ $tomb->oldurl=$sefurl;
+ $tomb->newurl=$nonsefurl;
+ $tomb->dateadd=date('Y-m-d',time());
+ $db->insertObject($table, $tomb);
+ }
+ }
+
+ return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
+ }
+
+
+ public function createSlug($string, $delimiter = '-') {
+ if (!extension_loaded('iconv')) { throw new Exception('iconv module not loaded'); }
+ $oldLocale = setlocale(LC_ALL, '0'); // Save the old locale and set the new locale to UTF-8
+ setlocale(LC_ALL, 'en_US.UTF-8');
+ $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
+ $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
+ $clean = strtolower($clean);
+ $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
+ $clean = trim($clean, $delimiter);
+ setlocale(LC_ALL, $oldLocale); // Revert back to the old locale
+ return $clean;
+ }
+}
+?>
diff --git a/cadline/components/components/com_showroom/models/product.php b/cadline/components/components/com_showroom/models/product.php
index 8ab4ae37..63df4cff 100644
--- a/cadline/components/components/com_showroom/models/product.php
+++ b/cadline/components/components/com_showroom/models/product.php
@@ -1,374 +1,374 @@
-get('sr_lang');//'hun';
- if (!isset($this->families) or empty($this->families) )
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT x.*
- FROM collection2 x
- LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
- LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
- WHERE x.deleted=0 AND c.deleted=0 AND m.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
- $tmp=$db->loadObjectList();
-
- $manufacture=(int)$tmp[0]->m_id;
-
- if ($manufacture>0)
- {
- $db->setQuery("
- SELECT f.c_id,f.m_id,m.`name` AS manufacture,IF( LENGTH(f.nev_".$lang.")>25,CONCAT(SUBSTRING(f.nev_".$lang.",1,23),'...'),f.nev_".$lang.") AS family_short,f.nev_".$lang." AS family,cnt.darab
- FROM coll2_cat f
- LEFT OUTER JOIN (
- SELECT COUNT(*) AS darab,c_id,c_name FROM (
- SELECT x.o_id,x.tipus,x.deleted,x.m_id,m.`name` AS m_name,m.deleted AS m_deleted,x.c_id,c.nev_hun AS c_name,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($manufacture>0 ? "AND x.m_id='".$manufacture."'" : "")."
- ) x GROUP BY c_id
- ) cnt ON cnt.c_id=f.c_id
- LEFT OUTER JOIN coll2_man m ON m.id=f.m_id
- WHERE f.deleted=0 AND m.deleted=0 AND cnt.darab>0
- ORDER BY f.nev_".$lang.";");
- $this->families = $db->loadObjectList();
- }
- }
- return $this->families;
- }
-
- public function getFamilyID($product=0)
- {
- $session=JFactory::getSession();
- $lang=$session->get( 'sr_lang');//'hun';
- if ($product>0)
- {
- $db=JFactory::getDBO();
- $sql="
- SELECT x.c_id
- FROM collection2 x
- LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
- LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
- WHERE x.deleted=0 AND c.deleted=0 AND m.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;";
- $db->setQuery($sql);
- $tmp=$db->loadObjectList();
-
- $this->family = (int)$tmp[0]->c_id;
- }
- return $this->family;
- }
-
-
- public function getFamily($id=0)
- {
- $session=JFactory::getSession();
- $lang=$session->get('sr_lang');//'hun';
- if ($id>0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("SELECT c_id,m_id,nev_".$lang." AS name,deleted FROM coll2_cat WHERE c_id=".$id." LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->family=$tmp[0];
- }
- return $this->family;
- }
-
-
- public function getProducts($family="",$lang="hun")
- {
- $session=JFactory::getSession();
-// $lang=$session->get('sr_lang');//'hun';
-
- if (!isset($this->products) or empty($this->products) )
- {
- $db = JFactory::getDBO();
- $db->setQuery("
- SELECT x.o_id AS id,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`,x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN (
- SELECT ver_id,o_id,fajl AS `file`,version FROM (
- SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
- ) z GROUP BY o_id
- ) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".((int)$family>0 ? ' AND x.c_id='.(int)$family.' ORDER BY x.title_'.$lang : ' ORDER BY RAND() LIMIT 0,'.$this->limit).";");
- $this->products = $db->loadObjectList();
- }
- return $this->products;
- }
-
- public function getProduct($product=0,$lang="hun")
- {
- $session=JFactory::getSession();
- $lang2=$session->get('sr_lang');
- if($lang2 == 'eng') {
- $lang=$lang2;
- }
- if (!isset($this->product) && (int)$product>0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT
- x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
- x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
- x.rendelheto,x.`show`,x.`down`,x.tipus, t.name_".$lang." AS tipus_lang,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
- x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
- $tmp = $db->loadObjectList();
- $this->product = $tmp[0];
- }
- return $this->product;
- }
-
- public function getPrVersion()
- {
- $ret=2012;
-
- if (!isset($this->prversion) || (int)$this->prversion==0)
- {
- $db=JFactory::getDBO();
- $session=JFactory::getSession();
-
- $ver=(int)$session->get('sr_ver');
-
- if ($ver)
- {
- $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
- $row=$db->loadObjectList();
- if (!empty($row)) $ret=(int)$row[0]->prversion;
- }
-
- $this->prversion=$ret;
- }
- else
- {
- $ret=$this->prversion;
- }
-
- return ($ret);
- }
-
-
- public function getFiles($id=0)
- {
- if ((int)$id<=0) return(FALSE);
-
- $this->folder=$this->getFullPath($id);
- if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
- return $this->files;
- }
-
- public function getFilteredFiles($tomb=array(),$id)
- {
- $ret=array();
- $this->filter=array('.','..','.quarantine');
- if (is_array($tomb) and count($tomb))
- {
- foreach ($tomb as $file)
- {
- if (!in_array($file, $this->filter))
- {
- $parts=explode(".", $file);
-
- $obj=new stdClass;
- $obj->name=$file;
- $obj->path=$this->getPath($id).$file;
- $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
- $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
- $obj->filesize=filesize($obj->fullpath);
- $obj->datetime=filemtime($obj->fullpath);
- $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
- $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
-
- $ret[]=$obj;
- }
- }
- }
- return $ret;
- }
-
-
- public function getPath($id=0)
- {
- $path='';
- if ((int)$id>0)
- {
- $itm=$this->getProduct($id);
- $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
- }
- return $path;
- }
-
-
- public function getFullPath($id=0)
- {
- $path='';
- if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
- return $path;
- }
-
-
- public function getMultiDownloadLink($id,$path)
- {
- $ret="";
-
- $obj=$this->getProduct($id);
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
-/*
- $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=$obj->file; }
- else { $f=$fajlok[2]; }
-*/
- if ($path>"")
- {
- $ret=$path."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
-
- if ((int)$_SESSION['__default']['sr_ver']>=33)
- {
- $struct=$this->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
-
- return $ret;
- }
-
-
- public function getArticle($alias='showroom')
- {
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->article=$tmp[0];
- return $this->article;
- }
-
-
- public function getStruct($id=0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
- FROM coll2_struct s
- LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
- WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->struct=$tmp[0];
- return($this->struct);
- }
-
-
- public function addShow($id=0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("UPDATE collection2 SET `show`=`show`+1 WHERE o_id=".$id);
- $db->query();
- }
-
-
- public function getProductThumb() { return $this->productThumb; }
- public function getProductDir() { return $this->productDir; }
-
- public function getLang()
- {
- return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
- }
-
-
- public function getURL($url='')
- {
- $sefurl=$nonsefurl='';
-
- $db=JFactory::getDBO();
- $url=trim($url);
- if (substr($url,0,1)=='/') $url=substr($url,1);
- $lang=JFactory::getSession()->get('sr_lang');
- $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
-
- $db->setQuery("SELECT * FROM `".$table."` WHERE `".(substr($url, 0, 5)=='index' ? "newurl" : "oldurl" )."`='".$url."' LIMIT 1;");
- $tmp=$db->loadObjectList();
-
- if (!empty($tmp))
- {
- $sefurl=$tmp[0]->oldurl;
- $nonsefurl=$tmp[0]->newurl;
- parse_str($nonsefurl, $output);
- $id=(int)$output['product'];
- }
- else
- {
- $id=(int)$_GET['product'];
- $product=$this->getProduct($id);
- $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
- $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
-
- $db->setQuery("SELECT * FROM ".$table." WHERE oldurl='".$sefurl."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- if (empty($tmp) && $id>0)
- {
- $tomb=New stdClass();
- $tomb->cpt=1;
- $tomb->rank=0;
- $tomb->oldurl=$sefurl;
- $tomb->newurl=$nonsefurl;
- $tomb->dateadd=date('Y-m-d',time());
- $db->insertObject($table, $tomb);
- }
- }
-
- return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
- }
-
-
- public function createSlug($string, $delimiter = '-') {
- if (!extension_loaded('iconv')) { throw new Exception('iconv module not loaded'); }
- $oldLocale = setlocale(LC_ALL, '0'); // Save the old locale and set the new locale to UTF-8
- setlocale(LC_ALL, 'en_US.UTF-8');
- $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
- $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
- $clean = strtolower($clean);
- $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
- $clean = trim($clean, $delimiter);
- setlocale(LC_ALL, $oldLocale); // Revert back to the old locale
- return $clean;
- }
-}
-?>
+get('sr_lang');//'hun';
+ if (!isset($this->families) or empty($this->families) )
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT x.*
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
+ LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
+ WHERE x.deleted=0 AND c.deleted=0 AND m.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
+ $tmp=$db->loadObjectList();
+
+ $manufacture=(int)$tmp[0]->m_id;
+
+ if ($manufacture>0)
+ {
+ $db->setQuery("
+ SELECT f.c_id,f.m_id,m.`name` AS manufacture,IF( LENGTH(f.nev_".$lang.")>25,CONCAT(SUBSTRING(f.nev_".$lang.",1,23),'...'),f.nev_".$lang.") AS family_short,f.nev_".$lang." AS family,cnt.darab
+ FROM coll2_cat f
+ LEFT OUTER JOIN (
+ SELECT COUNT(*) AS darab,c_id,c_name FROM (
+ SELECT x.o_id,x.tipus,x.deleted,x.m_id,m.`name` AS m_name,m.deleted AS m_deleted,x.c_id,c.nev_hun AS c_name,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".($manufacture>0 ? "AND x.m_id='".$manufacture."'" : "")."
+ ) x GROUP BY c_id
+ ) cnt ON cnt.c_id=f.c_id
+ LEFT OUTER JOIN coll2_man m ON m.id=f.m_id
+ WHERE f.deleted=0 AND m.deleted=0 AND cnt.darab>0
+ ORDER BY f.nev_".$lang.";");
+ $this->families = $db->loadObjectList();
+ }
+ }
+ return $this->families;
+ }
+
+ public function getFamilyID($product=0)
+ {
+ $session=JFactory::getSession();
+ $lang=$session->get( 'sr_lang');//'hun';
+ if ($product>0)
+ {
+ $db=JFactory::getDBO();
+ $sql="
+ SELECT x.c_id
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_cat c ON c.c_id=x.c_id
+ LEFT OUTER JOIN coll2_man m ON m.id=x.m_id
+ WHERE x.deleted=0 AND c.deleted=0 AND m.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;";
+ $db->setQuery($sql);
+ $tmp=$db->loadObjectList();
+
+ $this->family = (int)$tmp[0]->c_id;
+ }
+ return $this->family;
+ }
+
+
+ public function getFamily($id=0)
+ {
+ $session=JFactory::getSession();
+ $lang=$session->get('sr_lang');//'hun';
+ if ($id>0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT c_id,m_id,nev_".$lang." AS name,deleted FROM coll2_cat WHERE c_id=".$id." LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->family=$tmp[0];
+ }
+ return $this->family;
+ }
+
+
+ public function getProducts($family="",$lang="hun")
+ {
+ $session=JFactory::getSession();
+// $lang=$session->get('sr_lang');//'hun';
+
+ if (!isset($this->products) or empty($this->products) )
+ {
+ $db = JFactory::getDBO();
+ $db->setQuery("
+ SELECT x.o_id AS id,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`,x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN (
+ SELECT ver_id,o_id,fajl AS `file`,version FROM (
+ SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
+ ) z GROUP BY o_id
+ ) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".((int)$family>0 ? ' AND x.c_id='.(int)$family.' ORDER BY x.title_'.$lang : ' ORDER BY RAND() LIMIT 0,'.$this->limit).";");
+ $this->products = $db->loadObjectList();
+ }
+ return $this->products;
+ }
+
+ public function getProduct($product=0,$lang="hun")
+ {
+ $session=JFactory::getSession();
+ $lang2=$session->get('sr_lang');
+ if($lang2 == 'eng') {
+ $lang=$lang2;
+ }
+ if (!isset($this->product) && (int)$product>0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT
+ x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
+ x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
+ x.rendelheto,x.`show`,x.`down`,x.tipus, t.name_".$lang." AS tipus_lang,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
+ x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
+ $tmp = $db->loadObjectList();
+ $this->product = $tmp[0];
+ }
+ return $this->product;
+ }
+
+ public function getPrVersion()
+ {
+ $ret=2012;
+
+ if (!isset($this->prversion) || (int)$this->prversion==0)
+ {
+ $db=JFactory::getDBO();
+ $session=JFactory::getSession();
+
+ $ver=(int)$session->get('sr_ver');
+
+ if ($ver)
+ {
+ $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
+ $row=$db->loadObjectList();
+ if (!empty($row)) $ret=(int)$row[0]->prversion;
+ }
+
+ $this->prversion=$ret;
+ }
+ else
+ {
+ $ret=$this->prversion;
+ }
+
+ return ($ret);
+ }
+
+
+ public function getFiles($id=0)
+ {
+ if ((int)$id<=0) return(FALSE);
+
+ $this->folder=$this->getFullPath($id);
+ if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
+ return $this->files;
+ }
+
+ public function getFilteredFiles($tomb=array(),$id)
+ {
+ $ret=array();
+ $this->filter=array('.','..','.quarantine');
+ if (is_array($tomb) and count($tomb))
+ {
+ foreach ($tomb as $file)
+ {
+ if (!in_array($file, $this->filter))
+ {
+ $parts=explode(".", $file);
+
+ $obj=new stdClass;
+ $obj->name=$file;
+ $obj->path=$this->getPath($id).$file;
+ $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
+ $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
+ $obj->filesize=filesize($obj->fullpath);
+ $obj->datetime=filemtime($obj->fullpath);
+ $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
+ $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
+
+ $ret[]=$obj;
+ }
+ }
+ }
+ return $ret;
+ }
+
+
+ public function getPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0)
+ {
+ $itm=$this->getProduct($id);
+ $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
+ }
+ return $path;
+ }
+
+
+ public function getFullPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
+ return $path;
+ }
+
+
+ public function getMultiDownloadLink($id,$path)
+ {
+ $ret="";
+
+ $obj=$this->getProduct($id);
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+/*
+ $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=$obj->file; }
+ else { $f=$fajlok[2]; }
+*/
+ if ($path>"")
+ {
+ $ret=$path."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
+
+ if ((int)$_SESSION['__default']['sr_ver']>=33)
+ {
+ $struct=$this->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+
+ return $ret;
+ }
+
+
+ public function getArticle($alias='showroom')
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->article=$tmp[0];
+ return $this->article;
+ }
+
+
+ public function getStruct($id=0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
+ FROM coll2_struct s
+ LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
+ WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->struct=$tmp[0];
+ return($this->struct);
+ }
+
+
+ public function addShow($id=0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("UPDATE collection2 SET `show`=`show`+1 WHERE o_id=".$id);
+ $db->query();
+ }
+
+
+ public function getProductThumb() { return $this->productThumb; }
+ public function getProductDir() { return $this->productDir; }
+
+ public function getLang()
+ {
+ return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
+ }
+
+
+ public function getURL($url='')
+ {
+ $sefurl=$nonsefurl='';
+
+ $db=JFactory::getDBO();
+ $url=trim($url);
+ if (substr($url,0,1)=='/') $url=substr($url,1);
+ $lang=JFactory::getSession()->get('sr_lang');
+ $table=($lang=='hun' ? 'jml_' : 'eng_')."sh404sef_urls";
+
+ $db->setQuery("SELECT * FROM `".$table."` WHERE `".(substr($url, 0, 5)=='index' ? "newurl" : "oldurl" )."`='".$url."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+
+ if (!empty($tmp))
+ {
+ $sefurl=$tmp[0]->oldurl;
+ $nonsefurl=$tmp[0]->newurl;
+ parse_str($nonsefurl, $output);
+ $id=(int)$output['product'];
+ }
+ else
+ {
+ $id=(int)$_GET['product'];
+ $product=$this->getProduct($id);
+ $sefurl=$this->createSlug($lang=='hun' ? 'bemutatoterem' : 'showroom').'/'.$this->createSlug($product->tipus_lang).'/'.$this->createSlug($product->m_name).'/'.$this->createSlug($product->c_name).'/'.$this->createSlug($product->title);
+ $nonsefurl='index.php?option=com_showroom&view=product&product='.$id.'&lang='.$lang;
+
+ $db->setQuery("SELECT * FROM ".$table." WHERE oldurl='".$sefurl."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ if (empty($tmp) && $id>0)
+ {
+ $tomb=New stdClass();
+ $tomb->cpt=1;
+ $tomb->rank=0;
+ $tomb->oldurl=$sefurl;
+ $tomb->newurl=$nonsefurl;
+ $tomb->dateadd=date('Y-m-d',time());
+ $db->insertObject($table, $tomb);
+ }
+ }
+
+ return array('sef'=>$sefurl,'nonsef'=>$nonsefurl,'lang'=>$lang,'id'=>$id);
+ }
+
+
+ public function createSlug($string, $delimiter = '-') {
+ if (!extension_loaded('iconv')) { throw new Exception('iconv module not loaded'); }
+ $oldLocale = setlocale(LC_ALL, '0'); // Save the old locale and set the new locale to UTF-8
+ setlocale(LC_ALL, 'en_US.UTF-8');
+ $clean = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
+ $clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
+ $clean = strtolower($clean);
+ $clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
+ $clean = trim($clean, $delimiter);
+ setlocale(LC_ALL, $oldLocale); // Revert back to the old locale
+ return $clean;
+ }
+}
+?>
diff --git a/cadline/components/components/com_showroom/models/search.php b/cadline/components/components/com_showroom/models/search.php
index 39539eb4..14122026 100644
--- a/cadline/components/components/com_showroom/models/search.php
+++ b/cadline/components/components/com_showroom/models/search.php
@@ -1,395 +1,395 @@
-get('sr_lang');
- $search=trim(addslashes($search));
-
- $ms_type=((isset($multiselect['type']) && count($multiselect['type'])) ? " AND x.tipus IN ('".implode("','",$multiselect['type'])."')" : "");
- $ms_brand=((isset($multiselect['brand']) && count($multiselect['brand'])) ? " AND x.m_id IN (".implode(',',$multiselect['brand']).")" : "");
- $ms_category=((isset($multiselect['category']) && count($multiselect['category'])) ? " AND s.parent IN (".implode(',',$multiselect['category']).")" : "");
- $ms_subcategory=((isset($multiselect['subcategory']) && count($multiselect['subcategory'])) ? " AND s.id IN (".implode(',',$multiselect['subcategory']).")" : "");
-
- $sql="
- SELECT COUNT(*) AS darab FROM (
- SELECT x.o_id AS id,x.tipus,t.type_download,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN coll2_struct s ON x.struct_id=s.id
- LEFT OUTER JOIN (SELECT id,struct_hun,struct_eng FROM coll2_struct WHERE id=parent) p ON s.parent=p.id
- LEFT OUTER JOIN (
- SELECT ver_id,o_id,fajl AS `file`,version FROM (
- SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
- ) z GROUP BY o_id
- ) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".$ms_type." ".$ms_brand." ".$ms_category." ".$ms_subcategory."
- AND (
- x.title_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- x.desc_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- m.`name` COLLATE utf8_general_ci LIKE '%".$search."%' OR
- c.nev_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- s.struct_".$lang." LIKE '%".$search."%' OR
- p.struct_".$lang." LIKE '%".$search."%')
- ) p;";
-//print $sql;
- $db=JFactory::getDBO();
- $db->setQuery($sql);
- $tmp=$db->loadObjectList();
-
- $db->setQuery("
- SELECT x.o_id AS id,x.tipus,t.type_download,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN coll2_struct s ON x.struct_id=s.id
- LEFT OUTER JOIN (SELECT id,struct_hun,struct_eng FROM coll2_struct WHERE id=parent) p ON s.parent=p.id
- LEFT OUTER JOIN (
- SELECT ver_id,o_id,fajl AS `file`,version FROM (
- SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
- ) z GROUP BY o_id
- ) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".$ms_type." ".$ms_brand." ".$ms_category." ".$ms_subcategory."
- AND (
- x.title_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- x.desc_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- m.`name` COLLATE utf8_general_ci LIKE '%".$search."%' OR
- c.nev_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
- s.struct_".$lang." LIKE '%".$search."%' OR
- p.struct_".$lang." LIKE '%".$search."%')
- ORDER BY x.title_".$lang."
- LIMIT ".($page>0 ? $page-1 : 0)*$this->ipp.", ".$this->ipp.";");
- $this->products=$db->loadObjectList();
-
- $this->page=((int)$page==0 ? 1 : $page);
- $this->all=$tmp[0]->darab;
- $this->last=(floor($this->all/$this->ipp)+($this->all%$this->ipp==0 ? 0 : 1));
- $this->first=1;
-
- if ($this->last>$this->pager*2+1)
- {
- if ($this->page<$this->first+$this->pager) { $this->visibleFirst=$this->first;$this->visibleLast=$this->first+$this->pager*2; }
- else if ($this->page>$this->last-$this->pager) { $this->visibleFirst=$this->last-$this->pager*2;$this->visibleLast=$this->last; }
- else { $this->visibleFirst=$this->page-$this->pager;$this->visibleLast=$this->page+$this->pager; }
- }
- else { $this->visibleFirst=$this->first;$this->visibleLast=$this->last; }
-
- return $this->products;
- }
-
- public function getTypes()
- {
- $session=&JFactory::getSession();
- $lang=$session->get('sr_lang');//'hun';
- $db=JFactory::getDBO();
- $db->setQuery("SELECT `type`,`name_".$lang."` AS `name` FROM coll2_types t WHERE t.visible='Y' ORDER BY `name_".$lang."`;");
- $this->types=$db->loadObjectList();
- return $this->types;
- }
-
- public function getBrands($types=array())
- {
- $session=&JFactory::getSession();
- $lang=$session->get('sr_lang');//'hun';
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(m.`id`),m.`name`
- FROM collection2 c
- LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
- LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
- LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
- LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
- WHERE m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
- ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"")."
- ORDER BY m.`name`;");
- $this->brands=$db->loadObjectList();
- return $this->brands;
- }
-
- public function getCategories($types=array(),$brands=array())
- {
- $session=&JFactory::getSession();
- $lang=$session->get( 'sr_lang');//'hun';
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(p.`id`) AS `id`,p.`struct_".$lang."` AS `name`
- FROM collection2 c
- LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
- LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
- LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
- LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
- WHERE p.`id` IS NOT NULL AND m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
- ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"").
- ((is_array($brands)&&count($brands))?" AND c.m_id IN (".implode(",",$brands).")":"").
- "
- ORDER BY p.`struct_".$lang."`;");
- $this->categories=$db->loadObjectList();
- return $this->categories;
- }
-
- public function getSubcategories($types=array(),$brands=array(),$categories=array())
- {
- $session=&JFactory::getSession();
- $lang=$session->get('sr_lang');//'hun';
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT DISTINCT(s.`id`) AS `id`,s.`struct_".$lang."` AS `name`
- FROM collection2 c
- LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
- LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
- LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
- LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
- WHERE p.`id` IS NOT NULL AND m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
- ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"").
- ((is_array($brands)&&count($brands))?" AND c.m_id IN (".implode(",",$brands).")":"").
- ((is_array($categories)&&count($categories))?" AND s.parent IN (".implode(",",$categories).")":"").
- "
- ORDER BY s.`struct_".$lang."`;");
- $this->subcategories=$db->loadObjectList();
- return $this->subcategories;
- }
-
- public function getPlaceholder($type="sr_type",$value)
- {
- $session=&JFactory::getSession();
- $lang=$session->get('sr_lang');
- if (!isset($this->placeholder))
- {
- $db=JFactory::getDBO();
-
- switch ($type)
- {
- case 'sr_type' :
- {
- $db->setQuery("SELECT `name_".$lang."` AS `name` FROM coll2_types WHERE `type`='".$value."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- break;
- }
- case 'sr_manufacture' :
- {
- $db->setQuery("SELECT `name` AS `name` FROM coll2_man WHERE `id`='".$value."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- break;
- }
- }
-
- $this->placeholder=(isset($tmp[0]->name) ? $tmp[0]->name : "");
- }
- return $this->placeholder;
- }
-
- public function getPrVersion()
- {
- $ret=2012;
-
- if (!isset($this->prversion) || (int)$this->prversion==0)
- {
- $db=JFactory::getDBO();
- $session=&JFactory::getSession();
-
- $ver=(int)$session->get('sr_ver');
-
- if ($ver)
- {
- $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
- $row=$db->loadObjectList();
- if (!empty($row)) $ret=(int)$row[0]->prversion;
- }
-
- $this->prversion=$ret;
- }
- else
- {
- $ret=$this->prversion;
- }
-
- return ($ret);
- }
-
- public function getArticle($alias='showroom')
- {
- $db=JFactory::getDBO();
- $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->article=$tmp[0];
- return $this->article;
- }
-
-
- public function getProduct($product=0)
- {
- $session=&JFactory::getSession();
- $lang=$session->get('sr_lang');
- if (!isset($this->product) && (int)$product>0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT
- x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
- x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
- x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
- x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
- FROM collection2 x
- LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
- LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
- LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
- LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
- WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
- $tmp = $db->loadObjectList();
- $this->product = $tmp[0];
- }
- return $this->product;
- }
-
- public function getFiles($id=0)
- {
- if ((int)$id<=0) return(FALSE);
-
- $this->folder=$this->getFullPath($id);
- if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
- return $this->files;
- }
-
- public function getFilteredFiles($tomb=array(),$id)
- {
- $ret=array();
- $this->filter=array('.','..','.quarantine');
- if (is_array($tomb) and count($tomb))
- {
- foreach ($tomb as $file)
- {
- if (!in_array($file, $this->filter))
- {
- $parts=explode(".", $file);
-
- $obj=new stdClass;
- $obj->name=$file;
- $obj->path=$this->getPath($id).$file;
- $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
- $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
- $obj->filesize=filesize($obj->fullpath);
- $obj->datetime=filemtime($obj->fullpath);
- $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
- $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
-
- $ret[]=$obj;
- }
- }
- }
- return $ret;
- }
-
-
- public function getPath($id=0)
- {
- $path='';
- if ((int)$id>0)
- {
- $itm=$this->getProduct($id);
- $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
- }
- return $path;
- }
-
-
- public function getFullPath($id=0)
- {
- $path='';
- if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
- return $path;
- }
-
-
- public function getMultiDownloadLink($id,$path)
- {
- $ret="";
-
- $obj=$this->getProduct($id);
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
-/*
- $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=$obj->file; }
- else { $f=$fajlok[2]; }
-*/
- if ($path>"")
- {
- $ret=$path."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- "&objectname=".base64_encode($obj->title).
- ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
-
- if ((int)$_SESSION['__default']['sr_ver']>=33)
- {
- $struct=$this->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
-
- return $ret;
- }
-
- public function getStruct($id=0)
- {
- $db=JFactory::getDBO();
- $db->setQuery("
- SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
- FROM coll2_struct s
- LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
- WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
- $tmp=$db->loadObjectList();
- $this->struct=$tmp[0];
- return($this->struct);
- }
-
- public function getProductThumb() { return $this->productThumb; }
- public function getProductDir() { return $this->productDir; }
- public function getAll() { return $this->all; }
- public function getIPP() { return $this->ipp; }
- public function getPage() { return $this->page; }
- public function getLast() { return $this->last; }
- public function getFirst() { return $this->first; }
- public function getPager() { return $this->pager; }
- public function getVisibleLast() { return $this->visibleLast; }
- public function getVisibleFirst() { return $this->visibleFirst; }
-
- public function getLang()
- {
- return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
- }
-
-}
+get('sr_lang');
+ $search=trim(addslashes($search));
+
+ $ms_type=((isset($multiselect['type']) && count($multiselect['type'])) ? " AND x.tipus IN ('".implode("','",$multiselect['type'])."')" : "");
+ $ms_brand=((isset($multiselect['brand']) && count($multiselect['brand'])) ? " AND x.m_id IN (".implode(',',$multiselect['brand']).")" : "");
+ $ms_category=((isset($multiselect['category']) && count($multiselect['category'])) ? " AND s.parent IN (".implode(',',$multiselect['category']).")" : "");
+ $ms_subcategory=((isset($multiselect['subcategory']) && count($multiselect['subcategory'])) ? " AND s.id IN (".implode(',',$multiselect['subcategory']).")" : "");
+
+ $sql="
+ SELECT COUNT(*) AS darab FROM (
+ SELECT x.o_id AS id,x.tipus,t.type_download,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN coll2_struct s ON x.struct_id=s.id
+ LEFT OUTER JOIN (SELECT id,struct_hun,struct_eng FROM coll2_struct WHERE id=parent) p ON s.parent=p.id
+ LEFT OUTER JOIN (
+ SELECT ver_id,o_id,fajl AS `file`,version FROM (
+ SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
+ ) z GROUP BY o_id
+ ) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".$ms_type." ".$ms_brand." ".$ms_category." ".$ms_subcategory."
+ AND (
+ x.title_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ x.desc_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ m.`name` COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ c.nev_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ s.struct_".$lang." LIKE '%".$search."%' OR
+ p.struct_".$lang." LIKE '%".$search."%')
+ ) p;";
+//print $sql;
+ $db=JFactory::getDBO();
+ $db->setQuery($sql);
+ $tmp=$db->loadObjectList();
+
+ $db->setQuery("
+ SELECT x.o_id AS id,x.tipus,t.type_download,x.title_".$lang." AS `title`,IF(LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,x.desc_".$lang." AS `desc`,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,c.deleted AS c_deleted,CONCAT('/','".$this->productThumb."','/',m.dir,'/',x.o_id,'/zz_thumb.jpg') AS img,v.`file`
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN coll2_struct s ON x.struct_id=s.id
+ LEFT OUTER JOIN (SELECT id,struct_hun,struct_eng FROM coll2_struct WHERE id=parent) p ON s.parent=p.id
+ LEFT OUTER JOIN (
+ SELECT ver_id,o_id,fajl AS `file`,version FROM (
+ SELECT * FROM coll2_ver WHERE version<=".$this->getPrVersion()." ORDER BY o_id ASC,version DESC
+ ) z GROUP BY o_id
+ ) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 ".$ms_type." ".$ms_brand." ".$ms_category." ".$ms_subcategory."
+ AND (
+ x.title_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ x.desc_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ m.`name` COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ c.nev_".$lang." COLLATE utf8_general_ci LIKE '%".$search."%' OR
+ s.struct_".$lang." LIKE '%".$search."%' OR
+ p.struct_".$lang." LIKE '%".$search."%')
+ ORDER BY x.title_".$lang."
+ LIMIT ".($page>0 ? $page-1 : 0)*$this->ipp.", ".$this->ipp.";");
+ $this->products=$db->loadObjectList();
+
+ $this->page=((int)$page==0 ? 1 : $page);
+ $this->all=$tmp[0]->darab;
+ $this->last=(floor($this->all/$this->ipp)+($this->all%$this->ipp==0 ? 0 : 1));
+ $this->first=1;
+
+ if ($this->last>$this->pager*2+1)
+ {
+ if ($this->page<$this->first+$this->pager) { $this->visibleFirst=$this->first;$this->visibleLast=$this->first+$this->pager*2; }
+ else if ($this->page>$this->last-$this->pager) { $this->visibleFirst=$this->last-$this->pager*2;$this->visibleLast=$this->last; }
+ else { $this->visibleFirst=$this->page-$this->pager;$this->visibleLast=$this->page+$this->pager; }
+ }
+ else { $this->visibleFirst=$this->first;$this->visibleLast=$this->last; }
+
+ return $this->products;
+ }
+
+ public function getTypes()
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get('sr_lang');//'hun';
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT `type`,`name_".$lang."` AS `name` FROM coll2_types t WHERE t.visible='Y' ORDER BY `name_".$lang."`;");
+ $this->types=$db->loadObjectList();
+ return $this->types;
+ }
+
+ public function getBrands($types=array())
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get('sr_lang');//'hun';
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(m.`id`),m.`name`
+ FROM collection2 c
+ LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
+ LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
+ LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
+ LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
+ WHERE m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
+ ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"")."
+ ORDER BY m.`name`;");
+ $this->brands=$db->loadObjectList();
+ return $this->brands;
+ }
+
+ public function getCategories($types=array(),$brands=array())
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get( 'sr_lang');//'hun';
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(p.`id`) AS `id`,p.`struct_".$lang."` AS `name`
+ FROM collection2 c
+ LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
+ LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
+ LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
+ LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
+ WHERE p.`id` IS NOT NULL AND m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
+ ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"").
+ ((is_array($brands)&&count($brands))?" AND c.m_id IN (".implode(",",$brands).")":"").
+ "
+ ORDER BY p.`struct_".$lang."`;");
+ $this->categories=$db->loadObjectList();
+ return $this->categories;
+ }
+
+ public function getSubcategories($types=array(),$brands=array(),$categories=array())
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get('sr_lang');//'hun';
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT DISTINCT(s.`id`) AS `id`,s.`struct_".$lang."` AS `name`
+ FROM collection2 c
+ LEFT OUTER JOIN coll2_man m ON c.`m_id`=m.`id`
+ LEFT OUTER JOIN coll2_cat k ON c.`c_id`=k.`c_id`
+ LEFT OUTER JOIN coll2_struct s ON c.`struct_id`=s.`id`
+ LEFT OUTER JOIN (SELECT id,struct_".$lang." FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
+ WHERE p.`id` IS NOT NULL AND m.deleted=0 AND c.deleted=0 AND k.deleted=0 ".
+ ((is_array($types)&&count($types))?" AND c.tipus IN ('".implode("','",$types)."')":"").
+ ((is_array($brands)&&count($brands))?" AND c.m_id IN (".implode(",",$brands).")":"").
+ ((is_array($categories)&&count($categories))?" AND s.parent IN (".implode(",",$categories).")":"").
+ "
+ ORDER BY s.`struct_".$lang."`;");
+ $this->subcategories=$db->loadObjectList();
+ return $this->subcategories;
+ }
+
+ public function getPlaceholder($type="sr_type",$value)
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get('sr_lang');
+ if (!isset($this->placeholder))
+ {
+ $db=JFactory::getDBO();
+
+ switch ($type)
+ {
+ case 'sr_type' :
+ {
+ $db->setQuery("SELECT `name_".$lang."` AS `name` FROM coll2_types WHERE `type`='".$value."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ break;
+ }
+ case 'sr_manufacture' :
+ {
+ $db->setQuery("SELECT `name` AS `name` FROM coll2_man WHERE `id`='".$value."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ break;
+ }
+ }
+
+ $this->placeholder=(isset($tmp[0]->name) ? $tmp[0]->name : "");
+ }
+ return $this->placeholder;
+ }
+
+ public function getPrVersion()
+ {
+ $ret=2012;
+
+ if (!isset($this->prversion) || (int)$this->prversion==0)
+ {
+ $db=JFactory::getDBO();
+ $session=&JFactory::getSession();
+
+ $ver=(int)$session->get('sr_ver');
+
+ if ($ver)
+ {
+ $db->setQuery("SELECT * FROM coll2_prversion WHERE ver=".$ver);
+ $row=$db->loadObjectList();
+ if (!empty($row)) $ret=(int)$row[0]->prversion;
+ }
+
+ $this->prversion=$ret;
+ }
+ else
+ {
+ $ret=$this->prversion;
+ }
+
+ return ($ret);
+ }
+
+ public function getArticle($alias='showroom')
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("SELECT * FROM #__content WHERE alias='".$alias."' LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->article=$tmp[0];
+ return $this->article;
+ }
+
+
+ public function getProduct($product=0)
+ {
+ $session=&JFactory::getSession();
+ $lang=$session->get('sr_lang');
+ if (!isset($this->product) && (int)$product>0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT
+ x.o_id AS id,x.title_".$lang." AS `title`,IF( LENGTH(x.title_".$lang.")>20,CONCAT(SUBSTRING(x.title_".$lang.",1,18),'...'),x.title_".$lang.") AS `title_short`,
+ x.desc_".$lang." AS `desc`,CONCAT('/".$this->getProductThumb()."/',m.dir,'/',x.o_id,'/zz_big.jpg') AS img,v.file,v.version,
+ x.rendelheto,x.`show`,x.`down`,x.tipus,t.type_download,x.deleted,x.m_id,m.`name` AS m_name,m.dir,m.deleted AS m_deleted,
+ x.c_id,c.nev_".$lang." AS c_name,c.nev_eng AS c_name_eng,IF( LENGTH(c.nev_".$lang.")>15,CONCAT(SUBSTRING(c.nev_".$lang.",1,13),'...'),c.nev_".$lang.") AS `c_name_short`,c.deleted AS c_deleted
+ FROM collection2 x
+ LEFT OUTER JOIN coll2_man m ON x.m_id=m.id
+ LEFT OUTER JOIN coll2_cat c ON x.c_id=c.c_id
+ LEFT OUTER JOIN coll2_types t ON x.tipus=t.type
+ LEFT OUTER JOIN (SELECT ver_id,o_id,fajl AS file,version FROM coll2_ver WHERE o_id=".(int)$product." AND version<=".$this->getPrVersion()." ORDER BY version DESC LIMIT 1) v ON x.o_id=v.o_id
+ WHERE x.deleted=0 AND m.deleted=0 AND c.deleted=0 AND x.o_id=".(int)$product." LIMIT 1;");
+ $tmp = $db->loadObjectList();
+ $this->product = $tmp[0];
+ }
+ return $this->product;
+ }
+
+ public function getFiles($id=0)
+ {
+ if ((int)$id<=0) return(FALSE);
+
+ $this->folder=$this->getFullPath($id);
+ if (is_dir($this->folder)) $this->files=$this->getFilteredFiles(scandir($this->folder),$id);
+ return $this->files;
+ }
+
+ public function getFilteredFiles($tomb=array(),$id)
+ {
+ $ret=array();
+ $this->filter=array('.','..','.quarantine');
+ if (is_array($tomb) and count($tomb))
+ {
+ foreach ($tomb as $file)
+ {
+ if (!in_array($file, $this->filter))
+ {
+ $parts=explode(".", $file);
+
+ $obj=new stdClass;
+ $obj->name=$file;
+ $obj->path=$this->getPath($id).$file;
+ $obj->fullpath=$_SERVER['DOCUMENT_ROOT'].$obj->path;
+ $obj->extension=(in_array(strtolower(end($parts)),$this->arrKnownFiles) ? strtolower(end($parts)) : 'unknown');
+ $obj->filesize=filesize($obj->fullpath);
+ $obj->datetime=filemtime($obj->fullpath);
+ $obj->icon='/components/com_showroom/assets/images/'.$obj->extension.'.png';
+ $obj->multidownloadlink=($obj->extension=='pdf' ? $obj->path : $this->getMultiDownloadLink($id,$obj->path));
+
+ $ret[]=$obj;
+ }
+ }
+ }
+ return $ret;
+ }
+
+
+ public function getPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0)
+ {
+ $itm=$this->getProduct($id);
+ $path='/'.$this->productDir.'/'.$itm->dir.'/'.(int)$id.'/';
+ }
+ return $path;
+ }
+
+
+ public function getFullPath($id=0)
+ {
+ $path='';
+ if ((int)$id>0) { $path=$_SERVER['DOCUMENT_ROOT'].$this->getPath($id); }
+ return $path;
+ }
+
+
+ public function getMultiDownloadLink($id,$path)
+ {
+ $ret="";
+
+ $obj=$this->getProduct($id);
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+/*
+ $fajlok=@scandir($this->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=$obj->file; }
+ else { $f=$fajlok[2]; }
+*/
+ if ($path>"")
+ {
+ $ret=$path."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($this->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ "&objectname=".base64_encode($obj->title).
+ ((int)$_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
+
+ if ((int)$_SESSION['__default']['sr_ver']>=33)
+ {
+ $struct=$this->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+
+ return $ret;
+ }
+
+ public function getStruct($id=0)
+ {
+ $db=JFactory::getDBO();
+ $db->setQuery("
+ SELECT s.`id`,s.`struct_eng` AS `subcategory`,s.`parent` AS `parent_id`,p.`struct_eng` AS `category`
+ FROM coll2_struct s
+ LEFT OUTER JOIN (SELECT * FROM coll2_struct WHERE parent=id) p ON s.parent=p.id
+ WHERE s.id=(SELECT struct_id FROM collection2 WHERE o_id=".(int)$id.") LIMIT 1;");
+ $tmp=$db->loadObjectList();
+ $this->struct=$tmp[0];
+ return($this->struct);
+ }
+
+ public function getProductThumb() { return $this->productThumb; }
+ public function getProductDir() { return $this->productDir; }
+ public function getAll() { return $this->all; }
+ public function getIPP() { return $this->ipp; }
+ public function getPage() { return $this->page; }
+ public function getLast() { return $this->last; }
+ public function getFirst() { return $this->first; }
+ public function getPager() { return $this->pager; }
+ public function getVisibleLast() { return $this->visibleLast; }
+ public function getVisibleFirst() { return $this->visibleFirst; }
+
+ public function getLang()
+ {
+ return (JFactory::getLanguage()->getTag()=='hu-HU' ? "hun" : "eng");
+ }
+
+}
?>
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/views/family/tmpl/default.php b/cadline/components/components/com_showroom/views/family/tmpl/default.php
index 3bc26482..fef94fa6 100644
--- a/cadline/components/components/com_showroom/views/family/tmpl/default.php
+++ b/cadline/components/components/com_showroom/views/family/tmpl/default.php
@@ -1,131 +1,131 @@
-
-
-
-
- sess['sr_template'])) : ?>
- = $this->article->introtext ?>
- = $this->article->fulltext ?>
-
-
-
-
-
-
-
- sess['sr_ver'] >= 32 && $this->sess['sr_template'] == 'blankframe') : ?>
-
- sess['sr_multi'] == 'true' ? 'checked="checked"' : '') ?> />
- = JText::_(COM_SHOWROOM_MULTI_DOWNLOAD); ?>
-
-
-
-
-
-
-
-
-
- products as $product) : ?>
-
-
">
-
-
-
- ">= $product->title_short ?>
-
-
- sess['sr_template']) ? $this->getDownloadLink($product) : '');
- $letoltlink = $this->getDownloadLink($product);
- if ($letoltlink > "") : ?>
-
- sess['sr_template']) ? 'http://www.archline.hu/' . $letoltlink : $letoltlink);
- ?>
-
- files[$product->id]) > 1 && $this->sess['sr_ver'] >= 33) : ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- endforeach; ?>
-
-
-
-
-sess['sr_template'])) : ?>
-
-
-
-sess['sr_template'])) : ?>
-
-
+
+
+
+
+ sess['sr_template'])) : ?>
+ = $this->article->introtext ?>
+ = $this->article->fulltext ?>
+
+
+
+
+
+
+
+ sess['sr_ver'] >= 32 && $this->sess['sr_template'] == 'blankframe') : ?>
+
+ sess['sr_multi'] == 'true' ? 'checked="checked"' : '') ?> />
+ = JText::_(COM_SHOWROOM_MULTI_DOWNLOAD); ?>
+
+
+
+
+
+
+
+
+
+ products as $product) : ?>
+
+
">
+
+
+
+ ">= $product->title_short ?>
+
+
+ sess['sr_template']) ? $this->getDownloadLink($product) : '');
+ $letoltlink = $this->getDownloadLink($product);
+ if ($letoltlink > "") : ?>
+
+ sess['sr_template']) ? 'http://www.archline.hu/' . $letoltlink : $letoltlink);
+ ?>
+
+ files[$product->id]) > 1 && $this->sess['sr_ver'] >= 33) : ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ endforeach; ?>
+
+
+
+
+sess['sr_template'])) : ?>
+
+
+
+sess['sr_template'])) : ?>
+
+
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/views/product/tmpl/default.php b/cadline/components/components/com_showroom/views/product/tmpl/default.php
index c0466272..2d5562ad 100644
--- a/cadline/components/components/com_showroom/views/product/tmpl/default.php
+++ b/cadline/components/components/com_showroom/views/product/tmpl/default.php
@@ -1,228 +1,228 @@
-
-
-id==568)
-{
- print_r($this->url);
- print " ";
-}
-*/
-?>
-
-
-
- sess['sr_template'])) : ?>
- = $this->article->introtext ?>
- = $this->article->fulltext ?>
-
-
-
-
- sess['sr_family'] . $this->querystring);
- ?>
-
-
-
-
-
-
-
- sess['sr_ver'] >= 32 && $this->sess['sr_template'] == 'blankframe') : ?>
-
- sess['sr_multi'] == 'true' ? 'checked="checked"' : '') ?> />
- = JText::_(COM_SHOWROOM_MULTI_DOWNLOAD); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
= $this->product->c_name ?>
-
= $this->product->title ?>
-
-
- product->desc, "#") !== FALSE) {
- $miket = array('#kep_moshato#', '#kep_nem_moshato2#', '#kep_nem_moshato#', '#kep_moshato2#');
- $mikre = array(
- ' ',
- ' ',
- ' ',
- ' '
- );
- $this->product->desc = str_replace($miket, $mikre, $this->product->desc);
- }
- echo nl2br($this->product->desc);
- ?>
-
-
-
= JText::_(COM_SHOWROOM_DOWNLOADS); ?>: = $this->product->down ?> = JText::_(COM_SHOWROOM_VIEWS); ?>: = $this->product->show ?>
- sess['sr_template']) ? $this->getDownloadLink($this->product) : '');
- $letoltlink = $this->getDownloadLink($this->product);
-
- if ($letoltlink > "") : ?>
-
- sess['sr_template']) ? 'http://www.archline.hu/' . $letoltlink : $letoltlink);
- ?>
-
- files[$this->product->id]) > 1 && $this->sess['sr_ver'] >= 33) : ?>
-
= JText::_(COM_SHOWROOM_DOWNLOAD); ?>
-
-
-
- = JText::_(COM_SHOWROOM_DOWNLOAD); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-sess['sr_template'])) : ?>
-
-
-
-sess['sr_template'])) : ?>
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/views/product/view.html.php b/cadline/components/components/com_showroom/views/product/view.html.php
index e01b1906..92451d80 100644
--- a/cadline/components/components/com_showroom/views/product/view.html.php
+++ b/cadline/components/components/com_showroom/views/product/view.html.php
@@ -1,147 +1,147 @@
-'en-GB','hun'=>'hu-HU');
- protected $defLang='eng';
-
- public $sess=array();
- public $url=array();
-
- public function display($tpl = null)
- {
- $app=JFactory::getApplication();
- $session=JFactory::getSession();
- $document=JFactory::getDocument();
- $model=$this->getModel();
-
- $mainframe = JFactory::getApplication('site');
- $mainframe->initialise();
-
- $document->addStyleSheet('/components/com_showroom/assets/css/smoothTouchScroll.css');
- $document->addStyleSheet('/components/com_showroom/assets/css/showroom.css');
- $document->addScript('/components/com_showroom/assets/js/jquery-ui-1.11.2.custom.min.js');
- $document->addScript('/components/com_showroom/assets/js/jquery.kinetic-2.0.4.min.js');
- $document->addScript('/components/com_showroom/assets/js/jquery.smoothDivScroll-1.3.min.js');
-
- $this->url=$model->getURL($_SERVER['REQUEST_URI']);
-
-// SEF URL
- $this->url=$model->getURL($_SERVER['REQUEST_URI']);
- if (!isset($_GET['product']) && $this->url['id']>0) $_GET['product']=$this->url['id'];
- if (!isset($_GET['lang']) && $this->url['lang']>'') $_GET['lang']=$this->url['lang'];
-
-
- if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang));
- if (isset($_GET['product']))
- {
- $product=(trim(addslashes($_GET['product']))=='none' ? '' : (int)$_GET['product']);
- $tomb=$session->get('sr_show');
- if (!is_array($tomb) || !in_array($product,$tomb))
- {
- $tomb[]=$product;
- $session->set('sr_show',$tomb);
- $model->addShow($product);
- }
- $session->set('sr_product',$product);
- }
-
- if (isset($_GET['family'])) $session->set('sr_family',(trim(addslashes($_GET['family']))=='none' ? '' : trim(addslashes($_GET['family']))));
- if (isset($_GET['template']) && trim(addslashes($_GET['template']))=='blankframe') $session->set('sr_template','blankframe');
- if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
- if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
-
- if (!$session->get('sr_lang')) $session->set('sr_lang',$this->defLang);
-
- JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
-
- $session->set('sr_family',$model->getFamilyID($session->get('sr_product')));
-
- $this->getSession();
- $this->article=$model->getArticle();
- $this->families=$model->getFamilies($this->sess['sr_product']);
- $this->family=$model->getFamily(((int)$this->sess["sr_family"]>0 ? $this->sess['sr_family'] : 0));
- $this->products=$model->getProducts($this->sess['sr_family'],$session->get('sr_lang'));
- $this->product=$model->getProduct($this->sess['sr_product'],$session->get('sr_lang'));
- $this->querystring=($this->sess['sr_template']>'' ? '&template='.$this->sess['sr_template'] : '').($this->sess['sr_ver']>'' ? '&ver='.$this->sess['sr_ver'] : '').'&lang='.$this->sess['sr_lang'];
- $this->productThumb=$model->getProductThumb();
- foreach ($this->products as $product) { $this->files[$product->id]=$model->getFiles($product->id); }
-
- $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option=com_showroom&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
- if ((int)$this->families[0]->m_id>0) $app->getPathway()->addItem($this->families[0]->manufacture, '/index.php?option=com_showroom&view=showroom&family=none'.($this->sess["sr_type"]>'' ? '&type='.$this->sess["sr_type"] : '').((int)$this->family->m_id>0 ? '&manufacture='.(int)$this->family->m_id : '').$this->querystring);
- if ((int)$this->family->m_id>0) $app->getPathway()->addItem($this->family->name, '/index.php?option=com_showroom&view=family&family='.(int)$this->family->c_id.($this->sess["sr_type"]>'' ? '&type='.$this->sess["sr_type"] : '').((int)$this->family->m_id>0 ? '&manufacture='.(int)$this->family->m_id : '').$this->querystring);
- if ((int)$this->product->id>0) $app->getPathway()->addItem($this->product->title);
-
- $document->setTitle($this->product->title.' | '.$this->product->c_name.' | '.$this->product->m_name.' | '.JText::_(COM_SHOWROOM_SHOWROOM).' | ARCHLine.XP');
- $document->setDescription(substr(strip_tags(str_replace(array("\n","\r"), " ", ($this->product->desc))), 0, 160) );
-/*
- $document->addCustomTag('
-
-
-
- product->desc))),0,160) ).'"/>');
-*/
- if (isset($_GET['desc'])) { print($this->product->desc); die(); }
-
- parent::display($tpl);
- }
-
- public function getDownloadLink($obj)
- {
- $ret="";
- $model=$this->getModel();
- $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
-
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
- else { $f=$fajlok[2]; }
-
- if ($f>"")
- {
- $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- "&objectname=".base64_encode($obj->title).
- ($this->sess['sr_ver']>=32 ? '&multi='.($this->sess['sr_multi']>'' ? $this->sess['sr_multi'] : 'false') : '');
-
- if ((int)$this->sess['sr_ver']>=33)
- {
- $struct=$model->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
- return $ret;
- }
-
- public function getSession()
- {
- $this->sess['sr_template']=JFactory::getSession()->get('sr_template');
- $this->sess['sr_type']=JFactory::getSession()->get('sr_type');
- $this->sess['sr_manufacture']=JFactory::getSession()->get('sr_manufacture');
- $this->sess['sr_family']=JFactory::getSession()->get('sr_family');
- $this->sess['sr_product']=JFactory::getSession()->get('sr_product');
- $this->sess['sr_search']=JFactory::getSession()->get('sr_search');
- $this->sess['sr_page']=JFactory::getSession()->get('sr_page');
- $this->sess['sr_filter_type']=JFactory::getSession()->get('sr_filter_type');
- $this->sess['sr_filter']=JFactory::getSession()->get('sr_filter');
- $this->sess['sr_lang']=JFactory::getSession()->get('sr_lang');
- $this->sess['sr_ver']=JFactory::getSession()->get('sr_ver');
- $this->sess['sr_multi']=JFactory::getSession()->get('sr_multi');
- $this->sess['sr_multiselect']=JFactory::getSession()->get('sr_multiselect');
- $this->sess['sr_show']=JFactory::getSession()->get('sr_show');
- $this->sess['sr_down']=JFactory::getSession()->get('sr_down');
- }
-}
-?>
+'en-GB','hun'=>'hu-HU');
+ protected $defLang='eng';
+
+ public $sess=array();
+ public $url=array();
+
+ public function display($tpl = null)
+ {
+ $app=JFactory::getApplication();
+ $session=JFactory::getSession();
+ $document=JFactory::getDocument();
+ $model=$this->getModel();
+
+ $mainframe = JFactory::getApplication('site');
+ $mainframe->initialise();
+
+ $document->addStyleSheet('/components/com_showroom/assets/css/smoothTouchScroll.css');
+ $document->addStyleSheet('/components/com_showroom/assets/css/showroom.css');
+ $document->addScript('/components/com_showroom/assets/js/jquery-ui-1.11.2.custom.min.js');
+ $document->addScript('/components/com_showroom/assets/js/jquery.kinetic-2.0.4.min.js');
+ $document->addScript('/components/com_showroom/assets/js/jquery.smoothDivScroll-1.3.min.js');
+
+ $this->url=$model->getURL($_SERVER['REQUEST_URI']);
+
+// SEF URL
+ $this->url=$model->getURL($_SERVER['REQUEST_URI']);
+ if (!isset($_GET['product']) && $this->url['id']>0) $_GET['product']=$this->url['id'];
+ if (!isset($_GET['lang']) && $this->url['lang']>'') $_GET['lang']=$this->url['lang'];
+
+
+ if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang));
+ if (isset($_GET['product']))
+ {
+ $product=(trim(addslashes($_GET['product']))=='none' ? '' : (int)$_GET['product']);
+ $tomb=$session->get('sr_show');
+ if (!is_array($tomb) || !in_array($product,$tomb))
+ {
+ $tomb[]=$product;
+ $session->set('sr_show',$tomb);
+ $model->addShow($product);
+ }
+ $session->set('sr_product',$product);
+ }
+
+ if (isset($_GET['family'])) $session->set('sr_family',(trim(addslashes($_GET['family']))=='none' ? '' : trim(addslashes($_GET['family']))));
+ if (isset($_GET['template']) && trim(addslashes($_GET['template']))=='blankframe') $session->set('sr_template','blankframe');
+ if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
+ if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
+
+ if (!$session->get('sr_lang')) $session->set('sr_lang',$this->defLang);
+
+ JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
+
+ $session->set('sr_family',$model->getFamilyID($session->get('sr_product')));
+
+ $this->getSession();
+ $this->article=$model->getArticle();
+ $this->families=$model->getFamilies($this->sess['sr_product']);
+ $this->family=$model->getFamily(((int)$this->sess["sr_family"]>0 ? $this->sess['sr_family'] : 0));
+ $this->products=$model->getProducts($this->sess['sr_family'],$session->get('sr_lang'));
+ $this->product=$model->getProduct($this->sess['sr_product'],$session->get('sr_lang'));
+ $this->querystring=($this->sess['sr_template']>'' ? '&template='.$this->sess['sr_template'] : '').($this->sess['sr_ver']>'' ? '&ver='.$this->sess['sr_ver'] : '').'&lang='.$this->sess['sr_lang'];
+ $this->productThumb=$model->getProductThumb();
+ foreach ($this->products as $product) { $this->files[$product->id]=$model->getFiles($product->id); }
+
+ $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option=com_showroom&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
+ if ((int)$this->families[0]->m_id>0) $app->getPathway()->addItem($this->families[0]->manufacture, '/index.php?option=com_showroom&view=showroom&family=none'.($this->sess["sr_type"]>'' ? '&type='.$this->sess["sr_type"] : '').((int)$this->family->m_id>0 ? '&manufacture='.(int)$this->family->m_id : '').$this->querystring);
+ if ((int)$this->family->m_id>0) $app->getPathway()->addItem($this->family->name, '/index.php?option=com_showroom&view=family&family='.(int)$this->family->c_id.($this->sess["sr_type"]>'' ? '&type='.$this->sess["sr_type"] : '').((int)$this->family->m_id>0 ? '&manufacture='.(int)$this->family->m_id : '').$this->querystring);
+ if ((int)$this->product->id>0) $app->getPathway()->addItem($this->product->title);
+
+ $document->setTitle($this->product->title.' | '.$this->product->c_name.' | '.$this->product->m_name.' | '.JText::_(COM_SHOWROOM_SHOWROOM).' | ARCHLine.XP');
+ $document->setDescription(substr(strip_tags(str_replace(array("\n","\r"), " ", ($this->product->desc))), 0, 160) );
+/*
+ $document->addCustomTag('
+
+
+
+ product->desc))),0,160) ).'"/>');
+*/
+ if (isset($_GET['desc'])) { print($this->product->desc); die(); }
+
+ parent::display($tpl);
+ }
+
+ public function getDownloadLink($obj)
+ {
+ $ret="";
+ $model=$this->getModel();
+ $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
+ else { $f=$fajlok[2]; }
+
+ if ($f>"")
+ {
+ $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ "&objectname=".base64_encode($obj->title).
+ ($this->sess['sr_ver']>=32 ? '&multi='.($this->sess['sr_multi']>'' ? $this->sess['sr_multi'] : 'false') : '');
+
+ if ((int)$this->sess['sr_ver']>=33)
+ {
+ $struct=$model->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+ return $ret;
+ }
+
+ public function getSession()
+ {
+ $this->sess['sr_template']=JFactory::getSession()->get('sr_template');
+ $this->sess['sr_type']=JFactory::getSession()->get('sr_type');
+ $this->sess['sr_manufacture']=JFactory::getSession()->get('sr_manufacture');
+ $this->sess['sr_family']=JFactory::getSession()->get('sr_family');
+ $this->sess['sr_product']=JFactory::getSession()->get('sr_product');
+ $this->sess['sr_search']=JFactory::getSession()->get('sr_search');
+ $this->sess['sr_page']=JFactory::getSession()->get('sr_page');
+ $this->sess['sr_filter_type']=JFactory::getSession()->get('sr_filter_type');
+ $this->sess['sr_filter']=JFactory::getSession()->get('sr_filter');
+ $this->sess['sr_lang']=JFactory::getSession()->get('sr_lang');
+ $this->sess['sr_ver']=JFactory::getSession()->get('sr_ver');
+ $this->sess['sr_multi']=JFactory::getSession()->get('sr_multi');
+ $this->sess['sr_multiselect']=JFactory::getSession()->get('sr_multiselect');
+ $this->sess['sr_show']=JFactory::getSession()->get('sr_show');
+ $this->sess['sr_down']=JFactory::getSession()->get('sr_down');
+ }
+}
+?>
diff --git a/cadline/components/components/com_showroom/views/search/view.html.php b/cadline/components/components/com_showroom/views/search/view.html.php
index 678c8ff1..677914e8 100644
--- a/cadline/components/components/com_showroom/views/search/view.html.php
+++ b/cadline/components/components/com_showroom/views/search/view.html.php
@@ -1,124 +1,124 @@
-'en-GB','hun'=>'hu-HU');
- protected $defLang='eng';
- protected $types;
- protected $brands;
- protected $categories;
- protected $subcategories;
-
- public $sess=array();
-
- public function display($tpl = null)
- {
- $app=&JFactory::getApplication();
- $session=&JFactory::getSession();
- $model=$this->getModel();
- $document=&JFactory::getDocument();
- $document->addStyleSheet('/components/'.$app->input->get('option').'/assets/css/showroom.css');
-
- if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang) );
-
- if (isset($_POST['showroom_keyword']))
- {
- $multiselect=array('type'=>$_POST['type'],'brand'=>$_POST['brand'],'category'=>$_POST['category'],'subcategory'=>$_POST['subcategory']);
-
- $session->set('sr_search',$_POST['showroom_keyword']);
- $session->set('sr_multiselect',$multiselect);
- $session->set('sr_page',1);
- }
- if (isset($_GET['page']) && (int)$_GET['page']>0) $session->set('sr_page',(int)$_GET['page']);
- if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
- if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
- if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
- if (!$session->get('sr_lang')) $session->set('sr_lang',$this->defLang);
-
- JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
-
- $this->getSession();
- $this->article=$model->getArticle();
- $this->products=$model->getResult($this->sess['sr_search'],$this->sess['sr_multiselect'],$this->sess['sr_page']);
- $this->all=$model->getAll();
- $this->ipp=$model->getIPP();
- $this->page=$model->getPage();
- $this->last=$model->getLast();
- $this->first=$model->getFirst();
- $this->pager=$model->getPager();
- $this->placeholder=$this->sess['sr_search'];
- $this->visibleLast=$model->getVisibleLast();
- $this->visibleFirst=$model->getVisibleFirst();
- $this->querystring=($this->sess['sr_template']>'' ? '&template='.$this->sess['sr_template'] : '').($this->sess['sr_ver']>'' ? '&ver='.$this->sess['sr_ver'] : '').'&lang='.$this->sess['sr_lang'];
- $this->productThumb=$model->getProductThumb();
- $this->types=$model->getTypes();
- $this->brands=$model->getBrands($this->sess['sr_multiselect']['type']);
- $this->categories=$model->getCategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand']);
- $this->subcategories=$model->getSubcategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand'],$this->sess['sr_multiselect']['category']);
- foreach ($this->products as $product) { $this->files[$product->id]=$model->getFiles($product->id); }
-
-
- $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option='.$app->input->get('option').'&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
- $app->getPathway()->addItem( ($this->sess['sr_search']>'' ? ($this->placeholder>'' ? $this->placeholder.": " : "").$this->sess['sr_search'] : JText::_(COM_SHOWROOM_SEARCH)));
-
- parent::display($tpl);
- }
-
- public function getDownloadLink($obj)
- {
- $ret="";
- $model=$this->getModel();
-
- $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
-
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
- else { $f=$fajlok[2]; }
-
- if ($f>"")
- {
- $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- "&objectname=".base64_encode($obj->title).
- ($this->sess['sr_ver']>=32 ? '&multi='.($this->sess['sr_multi']>'' ? $this->sess['sr_multi'] : 'false') : '');
-
- if ((int)$this->sess['sr_ver']>=33)
- {
- $struct=$model->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
-
- return $ret;
- }
-
- public function getSession()
- {
- $this->sess['sr_template']=JFactory::getSession()->get('sr_template');
- $this->sess['sr_type']=JFactory::getSession()->get('sr_type');
- $this->sess['sr_manufacture']=JFactory::getSession()->get('sr_manufacture');
- $this->sess['sr_family']=JFactory::getSession()->get('sr_family');
- $this->sess['sr_product']=JFactory::getSession()->get('sr_product');
- $this->sess['sr_search']=JFactory::getSession()->get('sr_search');
- $this->sess['sr_page']=JFactory::getSession()->get('sr_page');
- $this->sess['sr_filter_type']=JFactory::getSession()->get('sr_filter_type');
- $this->sess['sr_filter']=JFactory::getSession()->get('sr_filter');
- $this->sess['sr_lang']=JFactory::getSession()->get('sr_lang');
- $this->sess['sr_ver']=JFactory::getSession()->get('sr_ver');
- $this->sess['sr_multi']=JFactory::getSession()->get('sr_multi');
- $this->sess['sr_multiselect']=JFactory::getSession()->get('sr_multiselect');
- $this->sess['sr_show']=JFactory::getSession()->get('sr_show');
- $this->sess['sr_down']=JFactory::getSession()->get('sr_down');
- }
-}
+'en-GB','hun'=>'hu-HU');
+ protected $defLang='eng';
+ protected $types;
+ protected $brands;
+ protected $categories;
+ protected $subcategories;
+
+ public $sess=array();
+
+ public function display($tpl = null)
+ {
+ $app=&JFactory::getApplication();
+ $session=&JFactory::getSession();
+ $model=$this->getModel();
+ $document=&JFactory::getDocument();
+ $document->addStyleSheet('/components/'.$app->input->get('option').'/assets/css/showroom.css');
+
+ if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang) );
+
+ if (isset($_POST['showroom_keyword']))
+ {
+ $multiselect=array('type'=>$_POST['type'],'brand'=>$_POST['brand'],'category'=>$_POST['category'],'subcategory'=>$_POST['subcategory']);
+
+ $session->set('sr_search',$_POST['showroom_keyword']);
+ $session->set('sr_multiselect',$multiselect);
+ $session->set('sr_page',1);
+ }
+ if (isset($_GET['page']) && (int)$_GET['page']>0) $session->set('sr_page',(int)$_GET['page']);
+ if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
+ if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
+ if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
+ if (!$session->get('sr_lang')) $session->set('sr_lang',$this->defLang);
+
+ JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
+
+ $this->getSession();
+ $this->article=$model->getArticle();
+ $this->products=$model->getResult($this->sess['sr_search'],$this->sess['sr_multiselect'],$this->sess['sr_page']);
+ $this->all=$model->getAll();
+ $this->ipp=$model->getIPP();
+ $this->page=$model->getPage();
+ $this->last=$model->getLast();
+ $this->first=$model->getFirst();
+ $this->pager=$model->getPager();
+ $this->placeholder=$this->sess['sr_search'];
+ $this->visibleLast=$model->getVisibleLast();
+ $this->visibleFirst=$model->getVisibleFirst();
+ $this->querystring=($this->sess['sr_template']>'' ? '&template='.$this->sess['sr_template'] : '').($this->sess['sr_ver']>'' ? '&ver='.$this->sess['sr_ver'] : '').'&lang='.$this->sess['sr_lang'];
+ $this->productThumb=$model->getProductThumb();
+ $this->types=$model->getTypes();
+ $this->brands=$model->getBrands($this->sess['sr_multiselect']['type']);
+ $this->categories=$model->getCategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand']);
+ $this->subcategories=$model->getSubcategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand'],$this->sess['sr_multiselect']['category']);
+ foreach ($this->products as $product) { $this->files[$product->id]=$model->getFiles($product->id); }
+
+
+ $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option='.$app->input->get('option').'&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
+ $app->getPathway()->addItem( ($this->sess['sr_search']>'' ? ($this->placeholder>'' ? $this->placeholder.": " : "").$this->sess['sr_search'] : JText::_(COM_SHOWROOM_SEARCH)));
+
+ parent::display($tpl);
+ }
+
+ public function getDownloadLink($obj)
+ {
+ $ret="";
+ $model=$this->getModel();
+
+ $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
+ else { $f=$fajlok[2]; }
+
+ if ($f>"")
+ {
+ $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ "&objectname=".base64_encode($obj->title).
+ ($this->sess['sr_ver']>=32 ? '&multi='.($this->sess['sr_multi']>'' ? $this->sess['sr_multi'] : 'false') : '');
+
+ if ((int)$this->sess['sr_ver']>=33)
+ {
+ $struct=$model->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+
+ return $ret;
+ }
+
+ public function getSession()
+ {
+ $this->sess['sr_template']=JFactory::getSession()->get('sr_template');
+ $this->sess['sr_type']=JFactory::getSession()->get('sr_type');
+ $this->sess['sr_manufacture']=JFactory::getSession()->get('sr_manufacture');
+ $this->sess['sr_family']=JFactory::getSession()->get('sr_family');
+ $this->sess['sr_product']=JFactory::getSession()->get('sr_product');
+ $this->sess['sr_search']=JFactory::getSession()->get('sr_search');
+ $this->sess['sr_page']=JFactory::getSession()->get('sr_page');
+ $this->sess['sr_filter_type']=JFactory::getSession()->get('sr_filter_type');
+ $this->sess['sr_filter']=JFactory::getSession()->get('sr_filter');
+ $this->sess['sr_lang']=JFactory::getSession()->get('sr_lang');
+ $this->sess['sr_ver']=JFactory::getSession()->get('sr_ver');
+ $this->sess['sr_multi']=JFactory::getSession()->get('sr_multi');
+ $this->sess['sr_multiselect']=JFactory::getSession()->get('sr_multiselect');
+ $this->sess['sr_show']=JFactory::getSession()->get('sr_show');
+ $this->sess['sr_down']=JFactory::getSession()->get('sr_down');
+ }
+}
?>
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/views/search2/view.html.php b/cadline/components/components/com_showroom/views/search2/view.html.php
index 74a1b5a0..2f88afe4 100644
--- a/cadline/components/components/com_showroom/views/search2/view.html.php
+++ b/cadline/components/components/com_showroom/views/search2/view.html.php
@@ -1,106 +1,106 @@
-'en-GB','hun'=>'hu-HU');
- protected $defLang='eng';
- protected $types;
- protected $brands;
- protected $categories;
- protected $subcategories;
-
- public function display($tpl = null)
- {
- $app=&JFactory::getApplication();
- $session=&JFactory::getSession();
- $model=$this->getModel();
- $document=&JFactory::getDocument();
- $document->addStyleSheet('/components/'.$app->input->get('option').'/assets/css/showroom.css');
-
- if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang) );
-
- if (isset($_POST['showroom_keyword']))
- {
- $multiselect=array('type'=>$_POST['type'],'brand'=>$_POST['brand'],'category'=>$_POST['category'],'subcategory'=>$_POST['subcategory']);
-
- $session->set('sr_search',$_POST['showroom_keyword']);
- $session->set('sr_multiselect',$multiselect);
- $session->set('sr_page',1);
- }
-
-//print_r($_POST);
-//print_r($_SESSION['__default']['sr_multiselect']);
-
- if (isset($_GET['page']) && (int)$_GET['page']>0) $session->set('sr_page',(int)$_GET['page']);
- if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
- if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
- if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
-
- if (!isset($_SESSION['__default']['sr_lang'])) $session->set('sr_lang',$this->defLang);
-
- JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
-
- $this->sess=$_SESSION['__default'];
- $this->article=$model->getArticle();
- $this->products=$model->getResult($this->sess['sr_search'],$this->sess['sr_multiselect'],$this->sess['sr_page']);
- $this->all=$model->getAll();
- $this->ipp=$model->getIPP();
- $this->page=$model->getPage();
- $this->last=$model->getLast();
- $this->first=$model->getFirst();
- $this->pager=$model->getPager();
- $this->placeholder=$session->get('sr_search'); //$model->getPlaceholder();
- $this->visibleLast=$model->getVisibleLast();
- $this->visibleFirst=$model->getVisibleFirst();
- $this->querystring=($session->get('sr_template')>'' ? '&template='.$session->get('sr_template') : '').($session->get('sr_ver')>'' ? '&ver='.$session->get('sr_ver') : '').'&lang='.$session->get('sr_lang');
- $this->productThumb=$model->getProductThumb();
- $this->types=$model->getTypes();
- $this->brands=$model->getBrands($this->sess['sr_multiselect']['type']);
- $this->categories=$model->getCategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand']);
- $this->subcategories=$model->getSubcategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand'],$this->sess['sr_multiselect']['category']);
-
- $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option='.$app->input->get('option').'&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
- $app->getPathway()->addItem( ($this->sess['sr_search']>'' ? ($this->placeholder>'' ? $this->placeholder.": " : "").$this->sess['sr_search'] : JText::_(COM_SHOWROOM_SEARCH)));
-
- parent::display($tpl);
- }
-
- public function getDownloadLink($obj)
- {
- $ret="";
- $model=$this->getModel();
-
- $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
-
- if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
-
- if(!isset($fajlok[2])) { $f=""; }
- elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
- else { $f=$fajlok[2]; }
-
- if ($f>"")
- {
- $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
- "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
- "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
- "&objectname=".base64_encode($obj->title).
- ($_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
-
- if ((int)$_SESSION['__default']['sr_ver']>=33)
- {
- $struct=$model->getStruct($obj->id);
- if (trim($struct->category)>"" && trim($struct->subcategory)>"")
- {
- $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
- }
- }
- }
-
- return $ret;
- }
-}
+'en-GB','hun'=>'hu-HU');
+ protected $defLang='eng';
+ protected $types;
+ protected $brands;
+ protected $categories;
+ protected $subcategories;
+
+ public function display($tpl = null)
+ {
+ $app=&JFactory::getApplication();
+ $session=&JFactory::getSession();
+ $model=$this->getModel();
+ $document=&JFactory::getDocument();
+ $document->addStyleSheet('/components/'.$app->input->get('option').'/assets/css/showroom.css');
+
+ if (isset($_GET['lang'])) $session->set('sr_lang',(array_key_exists(trim($_GET['lang']),$this->acceptLang) ? trim($_GET['lang']) : $this->defLang) );
+
+ if (isset($_POST['showroom_keyword']))
+ {
+ $multiselect=array('type'=>$_POST['type'],'brand'=>$_POST['brand'],'category'=>$_POST['category'],'subcategory'=>$_POST['subcategory']);
+
+ $session->set('sr_search',$_POST['showroom_keyword']);
+ $session->set('sr_multiselect',$multiselect);
+ $session->set('sr_page',1);
+ }
+
+//print_r($_POST);
+//print_r($_SESSION['__default']['sr_multiselect']);
+
+ if (isset($_GET['page']) && (int)$_GET['page']>0) $session->set('sr_page',(int)$_GET['page']);
+ if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
+ if (isset($_GET['ver'])) $session->set('sr_ver',(int)$_GET['ver']);
+ if (isset($_GET['multi'])) $session->set('sr_multi', ($_GET['multi']=='true' ? 'true' : 'false'));
+
+ if (!isset($_SESSION['__default']['sr_lang'])) $session->set('sr_lang',$this->defLang);
+
+ JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
+
+ $this->sess=$_SESSION['__default'];
+ $this->article=$model->getArticle();
+ $this->products=$model->getResult($this->sess['sr_search'],$this->sess['sr_multiselect'],$this->sess['sr_page']);
+ $this->all=$model->getAll();
+ $this->ipp=$model->getIPP();
+ $this->page=$model->getPage();
+ $this->last=$model->getLast();
+ $this->first=$model->getFirst();
+ $this->pager=$model->getPager();
+ $this->placeholder=$session->get('sr_search'); //$model->getPlaceholder();
+ $this->visibleLast=$model->getVisibleLast();
+ $this->visibleFirst=$model->getVisibleFirst();
+ $this->querystring=($session->get('sr_template')>'' ? '&template='.$session->get('sr_template') : '').($session->get('sr_ver')>'' ? '&ver='.$session->get('sr_ver') : '').'&lang='.$session->get('sr_lang');
+ $this->productThumb=$model->getProductThumb();
+ $this->types=$model->getTypes();
+ $this->brands=$model->getBrands($this->sess['sr_multiselect']['type']);
+ $this->categories=$model->getCategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand']);
+ $this->subcategories=$model->getSubcategories($this->sess['sr_multiselect']['type'],$this->sess['sr_multiselect']['brand'],$this->sess['sr_multiselect']['category']);
+
+ $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option='.$app->input->get('option').'&view=showroom&type=none&manufacture=none&family=none'.$this->querystring);
+ $app->getPathway()->addItem( ($this->sess['sr_search']>'' ? ($this->placeholder>'' ? $this->placeholder.": " : "").$this->sess['sr_search'] : JText::_(COM_SHOWROOM_SEARCH)));
+
+ parent::display($tpl);
+ }
+
+ public function getDownloadLink($obj)
+ {
+ $ret="";
+ $model=$this->getModel();
+
+ $fajlok=@scandir($model->getProductDir().'/'.$obj->dir.'/'.$obj->id);
+
+ if ($obj->prver=="2013" && $obj->tipus=="object") { $obj->type_download="accessory"; }
+
+ if(!isset($fajlok[2])) { $f=""; }
+ elseif(count($fajlok)>3) { $f=(trim($obj->file)>'' ? $obj->file : $fajlok[2]); }
+ else { $f=$fajlok[2]; }
+
+ if ($f>"")
+ {
+ $ret=$model->getProductDir()."/".$obj->dir."/".$obj->id."/".$f."?download=1&type=".$obj->type_download.
+ "&bigimage=".base64_encode($model->getProductThumb()."/".$obj->dir."/".$obj->id."/zz_big.jpg").
+ "&brandcategory=".base64_encode($obj->m_name.'\\'.$obj->c_name_eng).
+ "&objectname=".base64_encode($obj->title).
+ ($_SESSION['__default']['sr_ver']>=32 ? '&multi='.($_SESSION['__default']['sr_multi']>'' ? $_SESSION['__default']['sr_multi'] : 'false') : '');
+
+ if ((int)$_SESSION['__default']['sr_ver']>=33)
+ {
+ $struct=$model->getStruct($obj->id);
+ if (trim($struct->category)>"" && trim($struct->subcategory)>"")
+ {
+ $ret.="&category=".base64_encode($struct->category)."&subcategory=".base64_encode($struct->subcategory);
+ }
+ }
+ }
+
+ return $ret;
+ }
+}
?>
\ No newline at end of file
diff --git a/cadline/components/components/com_showroom/views/upload/view.html.php b/cadline/components/components/com_showroom/views/upload/view.html.php
index 409f329e..5d338d4c 100644
--- a/cadline/components/components/com_showroom/views/upload/view.html.php
+++ b/cadline/components/components/com_showroom/views/upload/view.html.php
@@ -1,255 +1,255 @@
-'en-GB','hun'=>'hu-HU');
- protected $defLang='eng';
- protected $desc=array();
- protected $data=array();
- protected $selected_type;
- protected $selected_manufacture;
- protected $selected_family;
- protected $selected_category;
- protected $selected_subcategory;
-
- public $pf='ProductsController';
-
- public function display($tpl = null)
- {
- $app=&JFactory::getApplication();
- $session=&JFactory::getSession();
- $document=&JFactory::getDocument();
- $model=$this->getModel();
-
- if (isset($_GET['lang']))
- {
- if (array_key_exists(trim($_GET['lang']), $this->acceptLang)) { $session->set('sr_lang',trim($_GET['lang'])); }
- else { $session->set('sr_lang',$this->defLang); }
- }
-
- if (isset($_GET['file'])) $session->set('sr_file',(trim(addslashes($_GET['file']))=='none' ? '' : trim(addslashes($_GET['file']))));
- if (isset($_GET['type'])) $session->set('sr_type',(trim(addslashes($_GET['type']))=='none' ? '' : trim(addslashes($_GET['type']))));
- if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
- if (!isset($_SESSION['__default']['sr_lang'])) $session->set('sr_lang',$this->defLang);
-
- JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
-
- $this->sess=$_SESSION['__default'];
- $this->types=$this->get('Types');
- $this->manufactures=$model->getManufactures($this->sess['sr_type']);
- $this->families=$model->getFamilies($this->sess['sr_type'],$this->sess['sr_manufacture']);
- $this->family=$model->getFamily(((int)$this->sess["sr_family"]>0 ? $this->sess['sr_family'] : 0));
- $this->querystring='&lang='.$session->get('sr_lang')
- .($session->get('sr_template')>'' ? '&template='.$session->get('sr_template') : '')
- .($session->get('sr_file')>'' ? '&file='.$session->get('sr_file') : '')
- .($session->get('sr_type')>'' ? '&type='.$session->get('sr_type') : '');
-
- if ($session->get('sr_file')>"") {
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $descriptor = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$session->get('sr_file');
- } else {
- $descriptor = '/home/vendeg/'.$session->get('sr_file');
- }
-
- if (is_file($descriptor))
- {
- $this->desc=explode("#",file_get_contents($descriptor));
-
- if (is_array($this->desc) && count($this->desc)) { foreach ($this->desc as $k=>$v) $this->desc[$k]=trim($v); }
-
- if ($this->desc[0]==$this->desc[1]) // regi struktura
- {
- $this->data=array(
- "file"=>$this->desc[0],
- "vendegkep"=>$this->desc[2],
- "nev_eng"=>$this->desc[4],
- "nev_hun"=>($this->desc[5] ? $this->desc[5] : $this->desc[4]),
- "tipus"=>$this->sess['sr_type'],
- "kategoria"=>"",
- "alkategoria"=>"",
- "gyarto"=>"",
- "prver"=>($this->desc[6]=="-1" ? "2012" : $this->desc[6]),
- "ifc"=>false
- );
- }
- else // uj struktura
- {
- $this->data=array(
- "file"=>$this->desc[0],
- "vendegkep"=>$this->desc[1],
- "nev_eng"=>$this->desc[2],
- "nev_hun"=>$this->desc[3],
- "tipus"=>$this->desc[4],
- "kategoria"=>$this->desc[5],
- "alkategoria"=>$this->desc[6],
- "gyarto"=>$this->desc[7],
- "prver"=>($this->desc[8]=="-1" ? "2012" : $this->desc[8]),
- "ifc"=>(substr($this->desc[0],-4)==".ifc"?TRUE:FALSE)
- );
- }
-
- if ($this->data['gyarto']>"") { $manufacure=$model->getManufactureByName($this->data['gyarto']); }
- if ($this->data['kategoria']>"") { $kategoria=$model->getParentByName($this->data['tipus'],$this->data['kategoria']); }
- if ($this->data['alkategoria']>"" && $kategoria->id>0) { $alkategoria=$model->getSubcatByName($this->data['tipus'],$kategoria->id,$this->data['alkategoria']); }
-
- $this->selected_type=$this->data['tipus'];
- $this->selected_manufacture=((int)$manufacure->id>0 ? (int)$manufacure->id : 0);
- $this->selected_family=$this->sess['sr_family'];
- $this->selected_category=((int)$kategoria->id>0 ? (int)$kategoria->id : 0);
- $this->selected_subcategory=((int)$alkategoria->id>0 ? (int)$alkategoria->id : 0);
-
-// kis kép elhelyezése a végleges helyére
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['vendegkep'];
- } else {
- $honnan = '/home/vendeg/'.$this->data['vendegkep'];
- }
-
- $hova=$_SERVER['DOCUMENT_ROOT'].'/public/img/collection/'.$this->data['tipus'];
- if (!is_dir($hova)) mkdir($hova, 0777);
- $hova.='/'.$this->data['vendegkep'];
- if (is_file($honnan) && !is_file($hova)) { copy($honnan,$hova); }
-
- if (isset($_POST['save']))
- {
- $tomb=array(
- 'm_id'=>(int)$_POST['m_id'],
- 'c_id'=>(int)$_POST['c_id'],
- 'struct_id'=>(int)$_POST['subcat'],
- 'title_hun'=>trim(addslashes($_POST['title_hun'])),
- 'title_eng'=>trim(addslashes($_POST['title_eng'])),
- 'desc_hun'=>trim(addslashes($_POST['desc_hun'])),
- 'desc_eng'=>trim(addslashes($_POST['desc_eng'])),
- 'tipus'=>$_POST['tipus'],
- 'fajl'=>$this->data['file'],
- 'version'=>$this->data['prver'],
- 'deleted'=>(isset($_POST['deleted']) ? 0 : 1),
- );
-
-// $newID=($this->data['ifc']==FALSE ? $model->saveRecord($tomb) : (int)$_POST['joinID']);
- $newID=$model->saveRecord($tomb);
-
- if ((int)$newID>0)
- {
- $man=$model->getManufacture($tomb['m_id']);
-
-// objektum file(ok) elhelyezése a végleges helyére
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['file'];
- } else {
- $honnan = '/home/vendeg/'.$this->data['file'];
- }
-
- $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$man->dir;
- if (!is_dir($hova)) mkdir($hova, 0777);
- $hova.='/'.$newID;
- if (!is_dir($hova)) mkdir($hova, 0777);
- $hova.='/'.$this->data['file'];
- if (is_file($honnan)) copy($honnan,$hova);
-
- if ($this->data['ifc']==TRUE)
- {
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.str_replace(".ifc",".oli",$this->data['file']);
- } else {
- $honnan = '/home/vendeg/'.str_replace(".ifc",".oli",$this->data['file']);
- }
-
- $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$man->dir.'/'.$newID.'/'.str_replace(".ifc",".oli",$this->data['file']);
- if (is_file($honnan)) copy($honnan,$hova);
- }
-
-// feltöltött kép elhelyezése a végleges helyére
- if (is_array($_FILES['fileupload']) && !empty($_FILES['fileupload']) && /*$this->data['ifc']==FALSE &&*/ in_array($_FILES['fileupload']['type'],array('image/jpeg','image/jpg')))
- {
- $origSize=getimagesize($_FILES['fileupload']['tmp_name']);
- $hova=$_SERVER['DOCUMENT_ROOT']."/public/img/collection/".$man->dir;
- if (!is_dir($hova)) mkdir($hova,0777);
- $hova.="/".$newID;
- if (!is_dir($hova)) mkdir($hova,0777);
- if (!is_dir($hova."/orig")) mkdir($hova."/orig",0777);
-
- $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_big.jpg', (int)round(($origSize[0]/$origSize[1])*400),400);
- $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_thumb.jpg', (int)round(($origSize[0]/$origSize[1])*120),120);
- $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_small.jpg', (int)round(($origSize[0]/$origSize[1])*66),66);
-
- move_uploaded_file($_FILES['fileupload']['tmp_name'], $hova.'/orig/'.$_FILES['fileupload']['name']);
- }
- }
- }
- }
- else { print ("descriptor file nem elérhető"); }
- }
-
- $this->parents=$model->getParents();
- $this->subcat=$model->getSubcat($this->selected_category);
- $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option=com_showroom&view=showroom');
- $app->getPathway()->addItem(JText::_(COM_SHOWROOM_UPLOAD));
-
- parent::display($tpl);
- }
-
- protected function make_thumb($src, $dest, $desired_width,$desired_h)
- {
- $source_image=imagecreatefromjpeg($src);
- $width=imagesx($source_image);
- $height=imagesy($source_image);
- $desired_height=$desired_h;
- $virtual_image=imagecreatetruecolor($desired_width, $desired_height);
- imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
- imagejpeg($virtual_image, $dest);
- }
-} // end of class
-?>
+'en-GB','hun'=>'hu-HU');
+ protected $defLang='eng';
+ protected $desc=array();
+ protected $data=array();
+ protected $selected_type;
+ protected $selected_manufacture;
+ protected $selected_family;
+ protected $selected_category;
+ protected $selected_subcategory;
+
+ public $pf='ProductsController';
+
+ public function display($tpl = null)
+ {
+ $app=&JFactory::getApplication();
+ $session=&JFactory::getSession();
+ $document=&JFactory::getDocument();
+ $model=$this->getModel();
+
+ if (isset($_GET['lang']))
+ {
+ if (array_key_exists(trim($_GET['lang']), $this->acceptLang)) { $session->set('sr_lang',trim($_GET['lang'])); }
+ else { $session->set('sr_lang',$this->defLang); }
+ }
+
+ if (isset($_GET['file'])) $session->set('sr_file',(trim(addslashes($_GET['file']))=='none' ? '' : trim(addslashes($_GET['file']))));
+ if (isset($_GET['type'])) $session->set('sr_type',(trim(addslashes($_GET['type']))=='none' ? '' : trim(addslashes($_GET['type']))));
+ if (isset($_GET['template']) && trim($_GET['template'])=='blankframe') $session->set('sr_template','blankframe');
+ if (!isset($_SESSION['__default']['sr_lang'])) $session->set('sr_lang',$this->defLang);
+
+ JFactory::getLanguage()->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
+
+ $this->sess=$_SESSION['__default'];
+ $this->types=$this->get('Types');
+ $this->manufactures=$model->getManufactures($this->sess['sr_type']);
+ $this->families=$model->getFamilies($this->sess['sr_type'],$this->sess['sr_manufacture']);
+ $this->family=$model->getFamily(((int)$this->sess["sr_family"]>0 ? $this->sess['sr_family'] : 0));
+ $this->querystring='&lang='.$session->get('sr_lang')
+ .($session->get('sr_template')>'' ? '&template='.$session->get('sr_template') : '')
+ .($session->get('sr_file')>'' ? '&file='.$session->get('sr_file') : '')
+ .($session->get('sr_type')>'' ? '&type='.$session->get('sr_type') : '');
+
+ if ($session->get('sr_file')>"") {
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $descriptor = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$session->get('sr_file');
+ } else {
+ $descriptor = '/home/vendeg/'.$session->get('sr_file');
+ }
+
+ if (is_file($descriptor))
+ {
+ $this->desc=explode("#",file_get_contents($descriptor));
+
+ if (is_array($this->desc) && count($this->desc)) { foreach ($this->desc as $k=>$v) $this->desc[$k]=trim($v); }
+
+ if ($this->desc[0]==$this->desc[1]) // regi struktura
+ {
+ $this->data=array(
+ "file"=>$this->desc[0],
+ "vendegkep"=>$this->desc[2],
+ "nev_eng"=>$this->desc[4],
+ "nev_hun"=>($this->desc[5] ? $this->desc[5] : $this->desc[4]),
+ "tipus"=>$this->sess['sr_type'],
+ "kategoria"=>"",
+ "alkategoria"=>"",
+ "gyarto"=>"",
+ "prver"=>($this->desc[6]=="-1" ? "2012" : $this->desc[6]),
+ "ifc"=>false
+ );
+ }
+ else // uj struktura
+ {
+ $this->data=array(
+ "file"=>$this->desc[0],
+ "vendegkep"=>$this->desc[1],
+ "nev_eng"=>$this->desc[2],
+ "nev_hun"=>$this->desc[3],
+ "tipus"=>$this->desc[4],
+ "kategoria"=>$this->desc[5],
+ "alkategoria"=>$this->desc[6],
+ "gyarto"=>$this->desc[7],
+ "prver"=>($this->desc[8]=="-1" ? "2012" : $this->desc[8]),
+ "ifc"=>(substr($this->desc[0],-4)==".ifc"?TRUE:FALSE)
+ );
+ }
+
+ if ($this->data['gyarto']>"") { $manufacure=$model->getManufactureByName($this->data['gyarto']); }
+ if ($this->data['kategoria']>"") { $kategoria=$model->getParentByName($this->data['tipus'],$this->data['kategoria']); }
+ if ($this->data['alkategoria']>"" && $kategoria->id>0) { $alkategoria=$model->getSubcatByName($this->data['tipus'],$kategoria->id,$this->data['alkategoria']); }
+
+ $this->selected_type=$this->data['tipus'];
+ $this->selected_manufacture=((int)$manufacure->id>0 ? (int)$manufacure->id : 0);
+ $this->selected_family=$this->sess['sr_family'];
+ $this->selected_category=((int)$kategoria->id>0 ? (int)$kategoria->id : 0);
+ $this->selected_subcategory=((int)$alkategoria->id>0 ? (int)$alkategoria->id : 0);
+
+// kis kép elhelyezése a végleges helyére
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['vendegkep'];
+ } else {
+ $honnan = '/home/vendeg/'.$this->data['vendegkep'];
+ }
+
+ $hova=$_SERVER['DOCUMENT_ROOT'].'/public/img/collection/'.$this->data['tipus'];
+ if (!is_dir($hova)) mkdir($hova, 0777);
+ $hova.='/'.$this->data['vendegkep'];
+ if (is_file($honnan) && !is_file($hova)) { copy($honnan,$hova); }
+
+ if (isset($_POST['save']))
+ {
+ $tomb=array(
+ 'm_id'=>(int)$_POST['m_id'],
+ 'c_id'=>(int)$_POST['c_id'],
+ 'struct_id'=>(int)$_POST['subcat'],
+ 'title_hun'=>trim(addslashes($_POST['title_hun'])),
+ 'title_eng'=>trim(addslashes($_POST['title_eng'])),
+ 'desc_hun'=>trim(addslashes($_POST['desc_hun'])),
+ 'desc_eng'=>trim(addslashes($_POST['desc_eng'])),
+ 'tipus'=>$_POST['tipus'],
+ 'fajl'=>$this->data['file'],
+ 'version'=>$this->data['prver'],
+ 'deleted'=>(isset($_POST['deleted']) ? 0 : 1),
+ );
+
+// $newID=($this->data['ifc']==FALSE ? $model->saveRecord($tomb) : (int)$_POST['joinID']);
+ $newID=$model->saveRecord($tomb);
+
+ if ((int)$newID>0)
+ {
+ $man=$model->getManufacture($tomb['m_id']);
+
+// objektum file(ok) elhelyezése a végleges helyére
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['file'];
+ } else {
+ $honnan = '/home/vendeg/'.$this->data['file'];
+ }
+
+ $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$man->dir;
+ if (!is_dir($hova)) mkdir($hova, 0777);
+ $hova.='/'.$newID;
+ if (!is_dir($hova)) mkdir($hova, 0777);
+ $hova.='/'.$this->data['file'];
+ if (is_file($honnan)) copy($honnan,$hova);
+
+ if ($this->data['ifc']==TRUE)
+ {
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.str_replace(".ifc",".oli",$this->data['file']);
+ } else {
+ $honnan = '/home/vendeg/'.str_replace(".ifc",".oli",$this->data['file']);
+ }
+
+ $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$man->dir.'/'.$newID.'/'.str_replace(".ifc",".oli",$this->data['file']);
+ if (is_file($honnan)) copy($honnan,$hova);
+ }
+
+// feltöltött kép elhelyezése a végleges helyére
+ if (is_array($_FILES['fileupload']) && !empty($_FILES['fileupload']) && /*$this->data['ifc']==FALSE &&*/ in_array($_FILES['fileupload']['type'],array('image/jpeg','image/jpg')))
+ {
+ $origSize=getimagesize($_FILES['fileupload']['tmp_name']);
+ $hova=$_SERVER['DOCUMENT_ROOT']."/public/img/collection/".$man->dir;
+ if (!is_dir($hova)) mkdir($hova,0777);
+ $hova.="/".$newID;
+ if (!is_dir($hova)) mkdir($hova,0777);
+ if (!is_dir($hova."/orig")) mkdir($hova."/orig",0777);
+
+ $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_big.jpg', (int)round(($origSize[0]/$origSize[1])*400),400);
+ $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_thumb.jpg', (int)round(($origSize[0]/$origSize[1])*120),120);
+ $this->make_thumb($_FILES['fileupload']['tmp_name'], $hova.'/zz_small.jpg', (int)round(($origSize[0]/$origSize[1])*66),66);
+
+ move_uploaded_file($_FILES['fileupload']['tmp_name'], $hova.'/orig/'.$_FILES['fileupload']['name']);
+ }
+ }
+ }
+ }
+ else { print ("descriptor file nem elérhető"); }
+ }
+
+ $this->parents=$model->getParents();
+ $this->subcat=$model->getSubcat($this->selected_category);
+ $app->getPathway()->addItem(JText::_(COM_SHOWROOM_SHOWROOM), '/index.php?option=com_showroom&view=showroom');
+ $app->getPathway()->addItem(JText::_(COM_SHOWROOM_UPLOAD));
+
+ parent::display($tpl);
+ }
+
+ protected function make_thumb($src, $dest, $desired_width,$desired_h)
+ {
+ $source_image=imagecreatefromjpeg($src);
+ $width=imagesx($source_image);
+ $height=imagesy($source_image);
+ $desired_height=$desired_h;
+ $virtual_image=imagecreatetruecolor($desired_width, $desired_height);
+ imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
+ imagejpeg($virtual_image, $dest);
+ }
+} // end of class
+?>
diff --git a/cadline/components/components/com_showroom/views/uploadgroup/view.html.php b/cadline/components/components/com_showroom/views/uploadgroup/view.html.php
index 782bbdc8..53aaca0f 100644
--- a/cadline/components/components/com_showroom/views/uploadgroup/view.html.php
+++ b/cadline/components/components/com_showroom/views/uploadgroup/view.html.php
@@ -1,272 +1,272 @@
-$this->desc[8],
- $data["prver"]=($adatok[9]=="-1" ? "2012" : $adatok[8]),
- $data["desc_eng"]=>$this->desc[10],
- $data["desc_hun"]=>$this->desc[11],
- $data["serial"]=>$this->desc[12],
-
- Pl. (valójában sortörés nélkül van):
- ------------------------------------
- 85151612-3251-2A4C-838D-BDAE5C2ED382.oli#
- 3000585D-7B7A-BF4D-A501-3ACDE09CCA31.bmp#
- brown chair#
- barna szék#
- material#
- Wood#
- Oak#
- Marrakesh#
- -1
-*******************************************************************************/
-defined('_JEXEC') or die; // No direct access to this file
-
-jimport('joomla.application.component.view'); // import Joomla view library
-jimport('joomla.application.module.helper');
-jimport('joomla.session.session');
-
-class ShowroomViewUploadGroup extends JViewLegacy
-{
- protected $arrAllowedGroups=array(7,8);
- protected $acceptLang=array('eng'=>'en-GB','hun'=>'hu-HU');
- protected $desc=array();
- protected $data=array();
- protected $hiba;
-
- public function display($tpl = null)
- {
- $app=&JFactory::getApplication();
- $lang=&JFactory::getLanguage();
- $session=&JFactory::getSession();
- $document=&JFactory::getDocument();
- $model=$this->getModel();
-
- $document->addStyleSheet('/components/com_showroom/assets/css/showroom.css');
- $session->set('sr_template','blankframe');
- $session->set('sr_lang','eng');
- $lang->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
- $session->set('sr_file',(trim(addslashes($_GET['file']))=='none' ? '' : trim(addslashes($_GET['file']))));
-// $this->sess=$_SESSION['__default'];
- $this->out=array();
-
- if (trim($session->get('sr_file'))>"" && trim($session->get('sr_file'))!='none')
- {
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $grouplist = trim($_SERVER['DOCUMENT_ROOT'].'/webdav/'.$session->get('sr_file'));
- } else {
- $grouplist = trim('/home/vendeg/'.$session->get('sr_file'));
- }
-
- /*if ($_SERVER['REMOTE_ADDR'] == '213.197.95.246') {
- if (file_exists($_SERVER['DOCUMENT_ROOT'].'/webdav/3979EAED-035E-4367-B8C2-52277989A480.oli')) {
- echo $grouplist;
- echo ' ';
- echo $_SERVER['DOCUMENT_ROOT'].'/webdav/3979EAED-035E-4367-B8C2-52277989A480.oli';
-
- die();
- }
- }*/
-
- $this->out['grouplist']=$session->get('sr_file');
- $this->out['sorok']=array();
-
- if (is_file($grouplist))
- {
- $lines=file($grouplist);
-
- if (is_array($lines) && count($lines))
- {
- foreach ($lines as $idx=>$line)
- {
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $descriptor = trim($_SERVER['DOCUMENT_ROOT'].'/webdav/'.$line);
- } else {
- $descriptor = trim('/home/vendeg/'.$line);
- }
- $this->out['sorok'][$idx]['descriptor']=$line;
-
- if (is_file($descriptor))
- {
- $this->desc=explode("#",file_get_contents($descriptor));
-
- if (is_array($this->desc) && count($this->desc)) { foreach ($this->desc as $k=>$v) $this->desc[$k]=trim($v); }
-
- $this->data=array(
- "file"=>$this->desc[0],
- "nagykep"=>$this->desc[1],
- "nev_eng"=>$this->desc[2],
- "nev_hun"=>$this->desc[3],
- "tipus"=>$this->desc[4],
- "kategoria"=>$this->desc[5],
- "alkategoria"=>$this->desc[6],
- "gyarto"=>$this->desc[7],
- "termekcsalad"=>$this->desc[8],
- "prver"=>($this->desc[9]=="-1" ? "2012" : $this->desc[9]),
- "desc_eng"=>$this->desc[10],
- "desc_hun"=>$this->desc[11],
- "serial"=>(isset($this->desc[12]) ? trim($this->desc[12]) : ""),
- );
- $this->out['sorok'][$idx]['data']=$this->data;
-
- if ($this->data['tipus']>"") { $this->tipus=$model->getType($this->data['tipus']); }
- if ($this->data['gyarto']>"") { $this->manufacture=$model->getManufactureByName($this->data['gyarto']); }
- if ($this->data['termekcsalad']>"" && (int)$this->manufacture->id>0) { $this->termekcsalad=$model->getFamilyByName($this->data['termekcsalad'],$this->manufacture->id); }
- if ($this->data['kategoria']>"") { $this->kategoria=$model->getParentByName($this->data['tipus'],$this->data['kategoria']); }
- if ($this->data['alkategoria']>"" && (int)$this->kategoria->id>0) { $this->alkategoria=$model->getSubcatByName($this->data['tipus'],$this->kategoria->id,$this->data['alkategoria']); }
-
- $tomb=array(
- 'kategoria'=>(int)$this->kategoria->id,
- 't_id'=>$this->tipus->type_download,
- 'm_id'=>(int)$this->manufacture->id,
- 'c_id'=>(int)$this->termekcsalad->c_id,
- 'struct_id'=>(int)$this->alkategoria->id,
- 'title_hun'=>$this->data['nev_hun'],
- 'title_eng'=>$this->data['nev_eng'],
- 'desc_hun'=>$this->data['desc_hun'],
- 'desc_eng'=>$this->data['desc_eng'],
- 'tipus'=>$this->data['tipus'],
- 'fajl'=>$this->data['file'],
- 'version'=>$this->data['prver'],
- 'deleted'=>($this->data['gyarto']=='User' ? 1 : 0),
- 'nUserID'=>$model->getUserBySerial($this->data['serial']),
- );
- $this->out['sorok'][$idx]['tomb']=$tomb;
- $newID=$model->saveRecord($tomb);
- $this->out['sorok'][$idx]['newID']=$newID;
-
- if ((int)$newID>0)
- {
-// objektum file elhelyezése a végleges helyére
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['file'];
- } else {
- $honnan = '/home/vendeg/'.$this->data['file'];
- }
-
- $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$this->manufacture->dir;
- if (!is_dir($hova))
- {
- $ret=mkdir($hova, 0777);
- if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
- }
-
- $hova.='/'.$newID;
- if (!is_dir($hova))
- {
- $ret=mkdir($hova, 0777);
- if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
- }
-
- $files=scandir($hova);
- $filter=array('.','..','.quarantine');
- $parts=explode(".", $this->data['file']);
- $upload_ext=strtolower(end($parts));
-
- if (is_array($files) and count($files))
- {
- foreach ($files as $file)
- {
- if (!in_array($file, $filter))
- {
- $parts=explode(".", $file);
- $exist_ext=strtolower(end($parts));
- if ($exist_ext==$upload_ext) { unlink($hova.'/'.$file); }
- }
- }
- }
-
- $hova.='/'.$this->data['file'];
- if (is_file($honnan)) copy($honnan,$hova);
- if (is_file($honnan)) unlink($honnan);
-
-// képek legyártása
- if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
- $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['nagykep'];
- } else {
- $honnan = '/home/vendeg/'.$this->data['nagykep'];
- }
-
- if (is_file($honnan))
- {
- $origSize=getimagesize($honnan);
- if ($origSize[0]>=360 || $origSize[1]>=360)
- {
- $hova=$_SERVER['DOCUMENT_ROOT']."/public/img/collection/".$this->manufacture->dir;
-
- if (!is_dir($hova))
- {
- $ret=mkdir($hova, 0777);
- if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
- }
-
- $hova.="/".$newID;
- if (!is_dir($hova))
- {
- $ret=mkdir($hova, 0777);
- if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
- }
-
- if (!is_dir($hova."/orig"))
- {
- $ret=mkdir($hova."/orig", 0777);
- if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova."/orig ";$this->hiba++;}
- }
-
- $this->make_thumb($honnan, $hova.'/zz_big.jpg', (int)round(($origSize[0]/$origSize[1])*400),400);
- $this->make_thumb($honnan, $hova.'/zz_thumb.jpg', (int)round(($origSize[0]/$origSize[1])*120),120);
- $this->make_thumb($honnan, $hova.'/zz_small.jpg', (int)round(($origSize[0]/$origSize[1])*66),66);
-
- if (is_file($honnan)) copy($honnan,$hova."/orig/".$this->data['nagykep']);
- if (is_file($honnan)) unlink($honnan);
- }
- }
- }
- unlink($descriptor);
- }
- else { $this->out['sorok'][$idx]['hiba'].="descriptor file '".$descriptor."' nem elérhető ";$this->hiba++; }
- }
- }
- unlink($grouplist);
- }
- else { $this->out['hiba']="File lista '".$grouplist."' nem elérhető";$this->hiba++; }
-
- $this->article=($this->hiba>0 ? $model->getErrorArticle() : $model->getSuccessArticle());
- }
-
- parent::display($tpl);
- }
-
- protected function make_thumb($src, $dest, $desired_width,$desired_h)
- {
- $source_image=imagecreatefromjpeg($src);
- $width=imagesx($source_image);
- $height=imagesy($source_image);
- $desired_height=$desired_h;
- $virtual_image=imagecreatetruecolor($desired_width, $desired_height);
- imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
- imagejpeg($virtual_image, $dest);
- }
-} // end of class
-?>
+$this->desc[8],
+ $data["prver"]=($adatok[9]=="-1" ? "2012" : $adatok[8]),
+ $data["desc_eng"]=>$this->desc[10],
+ $data["desc_hun"]=>$this->desc[11],
+ $data["serial"]=>$this->desc[12],
+
+ Pl. (valójában sortörés nélkül van):
+ ------------------------------------
+ 85151612-3251-2A4C-838D-BDAE5C2ED382.oli#
+ 3000585D-7B7A-BF4D-A501-3ACDE09CCA31.bmp#
+ brown chair#
+ barna szék#
+ material#
+ Wood#
+ Oak#
+ Marrakesh#
+ -1
+*******************************************************************************/
+defined('_JEXEC') or die; // No direct access to this file
+
+jimport('joomla.application.component.view'); // import Joomla view library
+jimport('joomla.application.module.helper');
+jimport('joomla.session.session');
+
+class ShowroomViewUploadGroup extends JViewLegacy
+{
+ protected $arrAllowedGroups=array(7,8);
+ protected $acceptLang=array('eng'=>'en-GB','hun'=>'hu-HU');
+ protected $desc=array();
+ protected $data=array();
+ protected $hiba;
+
+ public function display($tpl = null)
+ {
+ $app=&JFactory::getApplication();
+ $lang=&JFactory::getLanguage();
+ $session=&JFactory::getSession();
+ $document=&JFactory::getDocument();
+ $model=$this->getModel();
+
+ $document->addStyleSheet('/components/com_showroom/assets/css/showroom.css');
+ $session->set('sr_template','blankframe');
+ $session->set('sr_lang','eng');
+ $lang->load('com_showroom', JPATH_SITE, $this->acceptLang[$session->get('sr_lang')], true);
+ $session->set('sr_file',(trim(addslashes($_GET['file']))=='none' ? '' : trim(addslashes($_GET['file']))));
+// $this->sess=$_SESSION['__default'];
+ $this->out=array();
+
+ if (trim($session->get('sr_file'))>"" && trim($session->get('sr_file'))!='none')
+ {
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $grouplist = trim($_SERVER['DOCUMENT_ROOT'].'/webdav/'.$session->get('sr_file'));
+ } else {
+ $grouplist = trim('/home/vendeg/'.$session->get('sr_file'));
+ }
+
+ /*if ($_SERVER['REMOTE_ADDR'] == '213.197.95.246') {
+ if (file_exists($_SERVER['DOCUMENT_ROOT'].'/webdav/3979EAED-035E-4367-B8C2-52277989A480.oli')) {
+ echo $grouplist;
+ echo ' ';
+ echo $_SERVER['DOCUMENT_ROOT'].'/webdav/3979EAED-035E-4367-B8C2-52277989A480.oli';
+
+ die();
+ }
+ }*/
+
+ $this->out['grouplist']=$session->get('sr_file');
+ $this->out['sorok']=array();
+
+ if (is_file($grouplist))
+ {
+ $lines=file($grouplist);
+
+ if (is_array($lines) && count($lines))
+ {
+ foreach ($lines as $idx=>$line)
+ {
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $descriptor = trim($_SERVER['DOCUMENT_ROOT'].'/webdav/'.$line);
+ } else {
+ $descriptor = trim('/home/vendeg/'.$line);
+ }
+ $this->out['sorok'][$idx]['descriptor']=$line;
+
+ if (is_file($descriptor))
+ {
+ $this->desc=explode("#",file_get_contents($descriptor));
+
+ if (is_array($this->desc) && count($this->desc)) { foreach ($this->desc as $k=>$v) $this->desc[$k]=trim($v); }
+
+ $this->data=array(
+ "file"=>$this->desc[0],
+ "nagykep"=>$this->desc[1],
+ "nev_eng"=>$this->desc[2],
+ "nev_hun"=>$this->desc[3],
+ "tipus"=>$this->desc[4],
+ "kategoria"=>$this->desc[5],
+ "alkategoria"=>$this->desc[6],
+ "gyarto"=>$this->desc[7],
+ "termekcsalad"=>$this->desc[8],
+ "prver"=>($this->desc[9]=="-1" ? "2012" : $this->desc[9]),
+ "desc_eng"=>$this->desc[10],
+ "desc_hun"=>$this->desc[11],
+ "serial"=>(isset($this->desc[12]) ? trim($this->desc[12]) : ""),
+ );
+ $this->out['sorok'][$idx]['data']=$this->data;
+
+ if ($this->data['tipus']>"") { $this->tipus=$model->getType($this->data['tipus']); }
+ if ($this->data['gyarto']>"") { $this->manufacture=$model->getManufactureByName($this->data['gyarto']); }
+ if ($this->data['termekcsalad']>"" && (int)$this->manufacture->id>0) { $this->termekcsalad=$model->getFamilyByName($this->data['termekcsalad'],$this->manufacture->id); }
+ if ($this->data['kategoria']>"") { $this->kategoria=$model->getParentByName($this->data['tipus'],$this->data['kategoria']); }
+ if ($this->data['alkategoria']>"" && (int)$this->kategoria->id>0) { $this->alkategoria=$model->getSubcatByName($this->data['tipus'],$this->kategoria->id,$this->data['alkategoria']); }
+
+ $tomb=array(
+ 'kategoria'=>(int)$this->kategoria->id,
+ 't_id'=>$this->tipus->type_download,
+ 'm_id'=>(int)$this->manufacture->id,
+ 'c_id'=>(int)$this->termekcsalad->c_id,
+ 'struct_id'=>(int)$this->alkategoria->id,
+ 'title_hun'=>$this->data['nev_hun'],
+ 'title_eng'=>$this->data['nev_eng'],
+ 'desc_hun'=>$this->data['desc_hun'],
+ 'desc_eng'=>$this->data['desc_eng'],
+ 'tipus'=>$this->data['tipus'],
+ 'fajl'=>$this->data['file'],
+ 'version'=>$this->data['prver'],
+ 'deleted'=>($this->data['gyarto']=='User' ? 1 : 0),
+ 'nUserID'=>$model->getUserBySerial($this->data['serial']),
+ );
+ $this->out['sorok'][$idx]['tomb']=$tomb;
+ $newID=$model->saveRecord($tomb);
+ $this->out['sorok'][$idx]['newID']=$newID;
+
+ if ((int)$newID>0)
+ {
+// objektum file elhelyezése a végleges helyére
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['file'];
+ } else {
+ $honnan = '/home/vendeg/'.$this->data['file'];
+ }
+
+ $hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$this->manufacture->dir;
+ if (!is_dir($hova))
+ {
+ $ret=mkdir($hova, 0777);
+ if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
+ }
+
+ $hova.='/'.$newID;
+ if (!is_dir($hova))
+ {
+ $ret=mkdir($hova, 0777);
+ if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
+ }
+
+ $files=scandir($hova);
+ $filter=array('.','..','.quarantine');
+ $parts=explode(".", $this->data['file']);
+ $upload_ext=strtolower(end($parts));
+
+ if (is_array($files) and count($files))
+ {
+ foreach ($files as $file)
+ {
+ if (!in_array($file, $filter))
+ {
+ $parts=explode(".", $file);
+ $exist_ext=strtolower(end($parts));
+ if ($exist_ext==$upload_ext) { unlink($hova.'/'.$file); }
+ }
+ }
+ }
+
+ $hova.='/'.$this->data['file'];
+ if (is_file($honnan)) copy($honnan,$hova);
+ if (is_file($honnan)) unlink($honnan);
+
+// képek legyártása
+ if (isset($_GET['ver']) && $_GET['ver'] >= 39) {
+ $honnan = $_SERVER['DOCUMENT_ROOT'].'/webdav/'.$this->data['nagykep'];
+ } else {
+ $honnan = '/home/vendeg/'.$this->data['nagykep'];
+ }
+
+ if (is_file($honnan))
+ {
+ $origSize=getimagesize($honnan);
+ if ($origSize[0]>=360 || $origSize[1]>=360)
+ {
+ $hova=$_SERVER['DOCUMENT_ROOT']."/public/img/collection/".$this->manufacture->dir;
+
+ if (!is_dir($hova))
+ {
+ $ret=mkdir($hova, 0777);
+ if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
+ }
+
+ $hova.="/".$newID;
+ if (!is_dir($hova))
+ {
+ $ret=mkdir($hova, 0777);
+ if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova." ";$this->hiba++;}
+ }
+
+ if (!is_dir($hova."/orig"))
+ {
+ $ret=mkdir($hova."/orig", 0777);
+ if ($ret==FALSE) {$this->out['sorok'][$idx]['hiba'].="könyvtár létrehozási hiba: ".$hova."/orig ";$this->hiba++;}
+ }
+
+ $this->make_thumb($honnan, $hova.'/zz_big.jpg', (int)round(($origSize[0]/$origSize[1])*400),400);
+ $this->make_thumb($honnan, $hova.'/zz_thumb.jpg', (int)round(($origSize[0]/$origSize[1])*120),120);
+ $this->make_thumb($honnan, $hova.'/zz_small.jpg', (int)round(($origSize[0]/$origSize[1])*66),66);
+
+ if (is_file($honnan)) copy($honnan,$hova."/orig/".$this->data['nagykep']);
+ if (is_file($honnan)) unlink($honnan);
+ }
+ }
+ }
+ unlink($descriptor);
+ }
+ else { $this->out['sorok'][$idx]['hiba'].="descriptor file '".$descriptor."' nem elérhető ";$this->hiba++; }
+ }
+ }
+ unlink($grouplist);
+ }
+ else { $this->out['hiba']="File lista '".$grouplist."' nem elérhető";$this->hiba++; }
+
+ $this->article=($this->hiba>0 ? $model->getErrorArticle() : $model->getSuccessArticle());
+ }
+
+ parent::display($tpl);
+ }
+
+ protected function make_thumb($src, $dest, $desired_width,$desired_h)
+ {
+ $source_image=imagecreatefromjpeg($src);
+ $width=imagesx($source_image);
+ $height=imagesy($source_image);
+ $desired_height=$desired_h;
+ $virtual_image=imagecreatetruecolor($desired_width, $desired_height);
+ imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
+ imagejpeg($virtual_image, $dest);
+ }
+} // end of class
+?>
diff --git a/cadline/components/components/com_tcexam/default.php b/cadline/components/components/com_tcexam/default.php
index 449e5410..26e42b02 100644
--- a/cadline/components/components/com_tcexam/default.php
+++ b/cadline/components/components/com_tcexam/default.php
@@ -1,1108 +1,1108 @@
-id );
-$time = md5($time);
-?>
-
-
-
-
=JText::_('MOD_ARCHLINE_APPLICATION')?>
-
-
-
- esemeny!='Y'){?>
-
=JText::_('MOD_ARCHLINE_MY_APPLICATION')?>
-
-
- vizsga=='Y' || $application->attendees <= 3) : ?>
-
-
-
-
-
-
-
-
- kurzus=='Y' || $switch->workshop=='Y' || $switch->vizsga=='Y' || ($switch->esemeny=='Y' && $switch->login=='Y') || ($switch->webinair=='Y' && $switch->login='N')) : ?>
- webinair=='Y' && $switch->login=='N') {
- ?>
-
-
-
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
- =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
-
-
-
-
-
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
- =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
-
-
-
-
-
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
- =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
-
-
-
-
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
- =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
-
-
-
-
-
-
=JText::_('MOD_ARCHLINE_NO_WORKSHOP')?>
-
-
- price>0):?>
-
-
-
-
-
- kurzus=='Y' || $switch->workshop=='Y') : ?>
-
- level!=2) : ?>
-
- level==1) : ?>=JText::_('MOD_ARCHLINE_OTHER_PRELIMINARY_WORKSHOPS')?>:
-
- level);?>
- level!=2) :?>
-
- id==$ows->id) : ?>
- =$ows->title?>
-
- =$ows->title?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+id );
+$time = md5($time);
+?>
+
+
+
+
=JText::_('MOD_ARCHLINE_APPLICATION')?>
+
+
+
+ esemeny!='Y'){?>
+
=JText::_('MOD_ARCHLINE_MY_APPLICATION')?>
+
+
+ vizsga=='Y' || $application->attendees <= 3) : ?>
+
+
+
+
+
+
+
+
+ kurzus=='Y' || $switch->workshop=='Y' || $switch->vizsga=='Y' || ($switch->esemeny=='Y' && $switch->login=='Y') || ($switch->webinair=='Y' && $switch->login='N')) : ?>
+ webinair=='Y' && $switch->login=='N') {
+ ?>
+
+
+
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
+ =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
+
+
+
+
+
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
+ =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
+
+
+
+
+
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
+ =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
+
+
+
+
=JText::_('MOD_ARCHLINE_MUST_LOGIN')?>
+ =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
+
+
+
+
+
+
=JText::_('MOD_ARCHLINE_NO_WORKSHOP')?>
+
+
+ price>0):?>
+
+
+
+
+
+ kurzus=='Y' || $switch->workshop=='Y') : ?>
+
+ level!=2) : ?>
+
+ level==1) : ?>=JText::_('MOD_ARCHLINE_OTHER_PRELIMINARY_WORKSHOPS')?>:
+
+ level);?>
+ level!=2) :?>
+
+ id==$ows->id) : ?>
+ =$ows->title?>
+
+ =$ows->title?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cadline/docroot/beiratkozas/getCourses.php b/cadline/docroot/beiratkozas/getCourses.php
index c0bd3e81..24ef1de7 100644
--- a/cadline/docroot/beiratkozas/getCourses.php
+++ b/cadline/docroot/beiratkozas/getCourses.php
@@ -1,6 +1,6 @@
-login($credentials);
-
-header('Location: ' . $_POST['url']);
+login($credentials);
+
+header('Location: ' . $_POST['url']);
diff --git a/cadline/docroot/components/com_users/controllers/recaptchalib.php b/cadline/docroot/components/com_users/controllers/recaptchalib.php
index a890cbd2..a450d4fa 100644
--- a/cadline/docroot/components/com_users/controllers/recaptchalib.php
+++ b/cadline/docroot/components/com_users/controllers/recaptchalib.php
@@ -1,143 +1,143 @@
-" . self::$_signupUrl . "");
- }
- $this->_secret=$secret;
- }
-
- /**
- * Encodes the given data into a query string format.
- *
- * @param array $data array of string elements to be encoded.
- *
- * @return string - encoded request.
- */
- private function _encodeQS($data)
- {
- $req = "";
- foreach ($data as $key => $value) {
- $req .= $key . '=' . urlencode(stripslashes($value)) . '&';
- }
-
- // Cut the last '&'
- $req=substr($req, 0, strlen($req)-1);
- return $req;
- }
-
- /**
- * Submits an HTTP GET to a reCAPTCHA server.
- *
- * @param string $path url path to recaptcha server.
- * @param array $data array of parameters to be sent.
- *
- * @return array response
- */
- private function _submitHTTPGet($path, $data)
- {
- $req = $this->_encodeQS($data);
- $response = file_get_contents($path . $req);
- return $response;
- }
-
- /**
- * Calls the reCAPTCHA siteverify API to verify whether the user passes
- * CAPTCHA test.
- *
- * @param string $remoteIp IP address of end user.
- * @param string $response response string from recaptcha verification.
- *
- * @return ReCaptchaResponse
- */
- public function verifyResponse($remoteIp, $response)
- {
- // Discard empty solution submissions
- if ($response == null || strlen($response) == 0) {
- $recaptchaResponse = new ReCaptchaResponse();
- $recaptchaResponse->success = false;
- $recaptchaResponse->errorCodes = 'missing-input';
- return $recaptchaResponse;
- }
-
- $getResponse = $this->_submitHttpGet(
- self::$_siteVerifyUrl,
- array (
- 'secret' => $this->_secret,
- 'remoteip' => $remoteIp,
- 'v' => self::$_version,
- 'response' => $response
- )
- );
- $answers = json_decode($getResponse, true);
- $recaptchaResponse = new ReCaptchaResponse();
-
- if (trim($answers ['success']) == true) {
- $recaptchaResponse->success = true;
- } else {
- $recaptchaResponse->success = false;
- $recaptchaResponse->errorCodes = $answers [error-codes];
- }
-
- if ($_SERVER['REMOTE_ADDR'] == '85.66.171.33') {
- var_dump($recaptchaResponse);
- die();
- }
-
- return $recaptchaResponse;
- }
-}
+" . self::$_signupUrl . "");
+ }
+ $this->_secret=$secret;
+ }
+
+ /**
+ * Encodes the given data into a query string format.
+ *
+ * @param array $data array of string elements to be encoded.
+ *
+ * @return string - encoded request.
+ */
+ private function _encodeQS($data)
+ {
+ $req = "";
+ foreach ($data as $key => $value) {
+ $req .= $key . '=' . urlencode(stripslashes($value)) . '&';
+ }
+
+ // Cut the last '&'
+ $req=substr($req, 0, strlen($req)-1);
+ return $req;
+ }
+
+ /**
+ * Submits an HTTP GET to a reCAPTCHA server.
+ *
+ * @param string $path url path to recaptcha server.
+ * @param array $data array of parameters to be sent.
+ *
+ * @return array response
+ */
+ private function _submitHTTPGet($path, $data)
+ {
+ $req = $this->_encodeQS($data);
+ $response = file_get_contents($path . $req);
+ return $response;
+ }
+
+ /**
+ * Calls the reCAPTCHA siteverify API to verify whether the user passes
+ * CAPTCHA test.
+ *
+ * @param string $remoteIp IP address of end user.
+ * @param string $response response string from recaptcha verification.
+ *
+ * @return ReCaptchaResponse
+ */
+ public function verifyResponse($remoteIp, $response)
+ {
+ // Discard empty solution submissions
+ if ($response == null || strlen($response) == 0) {
+ $recaptchaResponse = new ReCaptchaResponse();
+ $recaptchaResponse->success = false;
+ $recaptchaResponse->errorCodes = 'missing-input';
+ return $recaptchaResponse;
+ }
+
+ $getResponse = $this->_submitHttpGet(
+ self::$_siteVerifyUrl,
+ array (
+ 'secret' => $this->_secret,
+ 'remoteip' => $remoteIp,
+ 'v' => self::$_version,
+ 'response' => $response
+ )
+ );
+ $answers = json_decode($getResponse, true);
+ $recaptchaResponse = new ReCaptchaResponse();
+
+ if (trim($answers ['success']) == true) {
+ $recaptchaResponse->success = true;
+ } else {
+ $recaptchaResponse->success = false;
+ $recaptchaResponse->errorCodes = $answers [error-codes];
+ }
+
+ if ($_SERVER['REMOTE_ADDR'] == '85.66.171.33') {
+ var_dump($recaptchaResponse);
+ die();
+ }
+
+ return $recaptchaResponse;
+ }
+}
diff --git a/cadline/docroot/components/com_users/views/registration/tmpl/easyprofile.php b/cadline/docroot/components/com_users/views/registration/tmpl/easyprofile.php
index a781d3e2..dc323996 100644
--- a/cadline/docroot/components/com_users/views/registration/tmpl/easyprofile.php
+++ b/cadline/docroot/components/com_users/views/registration/tmpl/easyprofile.php
@@ -1,75 +1,75 @@
-get('layout_width','full');
-if( $layout_width == 'full' ) $max_width = 'none';
-else $max_width = $config->get('layout_maxwidth','500');
-$layout=$config->get('layout_form','horizontal');
-$lang = JFactory::getLanguage();
-$result = $lang->getTag();
-
-?>
-
-
\ No newline at end of file
diff --git a/cadline/docroot/crashadmin.php b/cadline/docroot/crashadmin.php
index 850c9e24..f6ebcc6c 100644
--- a/cadline/docroot/crashadmin.php
+++ b/cadline/docroot/crashadmin.php
@@ -1,422 +1,422 @@
-query($update) === FALSE) echo '';
- }
- if ($_POST['listaid'] && isset($_POST['CbBoxValue'])) {
- $listaid = substr($_POST['listaid'], 5);
- $update = "UPDATE `www_archline_hu`.`crash` SET `eredmeny`='{$_POST['CbBoxValue']}' WHERE `id`='{$listaid}'";
-
- if ($connection->query($update) === FALSE) echo '';
- }
-}
-
-
-function downloadFile($filename)
-{
- if ($f = fopen($filename, "rb")) {
- $content_len = (int) filesize($filename);
- //@ini_set('zlib.output_compression', 'Off');
- header('Pragma: public');
- //header('Last-Modified: '.gmdate('D, d M Y H(idea)(worry)') . ' GMT');
- header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
- header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
- header('Content-Transfer-Encoding: none');
- header('Content-Type: plain/text');
- header('Content-Disposition: inline; filename="' . $filename . '"');
- header("Content-length: $content_len");
-
- while (!feof($f)) {
- echo fread($f, 2 << 20);
- }
- fclose($f);
- } else {
- print "error opening file";
- }
- exit();
-}
-
-if ($_SERVER['REMOTE_ADDR'] == '91.83.198.90') {
- $path = "../public";
- $files = scandir($path);
-
- print_r($files);
-}
-
-if (isset($_GET) && !empty($_GET)) {
- $filepath = "/home/vendeg/crash/";
- $filepath .= $_GET["guid"];
-
- /*if (!file_exists($filepath))
- $filepath = "../public/crash/".$_GET['guid'];*/
- //$filepath .= ".DMP";
- downloadFile($filepath);
-} else {
-?>
-
-
-
-
-
-
-
-
-
-
- ';
- if (isset($_SESSION["maxdate"]) || isset($_SESSION["mindate"]) || isset($_SESSION["lista"])) {
- echo 'Dátum szűrés -tól -ig';
- } else {
- echo 'Dátum szűrés -tól -ig';
- }
- ?>
-
- Eredmény szűrő:
-
- >
- >
- >
- >
- >
- >
- >
- >
- >
-
-
-
-
-
-
-
- = '" . $_POST['datemin'] . "'";
- if (isset($_POST['datemax'])) $feltetel[] = "left(datum, 10) <= '" . $_POST['datemax'] . "'";
- if (isset($_POST['lista']) && $_POST['lista'] != "%") $feltetel[] = "`eredmeny` = " . $_POST['lista'] . "";
- if (isset($_POST['lista']) && $_POST['lista'] == "%") $feltetel[] = "1";
- if (isset($_POST['datemax']) || isset($_POST['datemin']) || isset($_POST['lezart'])) $query .= "WHERE " . implode(' AND ', $feltetel);
-
- $query .= " ORDER BY id DESC LIMIT 500";
-
- print "
+
+ = '" . $_POST['datemin'] . "'";
+ if (isset($_POST['datemax'])) $feltetel[] = "left(datum, 10) <= '" . $_POST['datemax'] . "'";
+ if (isset($_POST['lista']) && $_POST['lista'] != "%") $feltetel[] = "`eredmeny` = " . $_POST['lista'] . "";
+ if (isset($_POST['lista']) && $_POST['lista'] == "%") $feltetel[] = "1";
+ if (isset($_POST['datemax']) || isset($_POST['datemin']) || isset($_POST['lezart'])) $query .= "WHERE " . implode(' AND ', $feltetel);
+
+ $query .= " ORDER BY id DESC LIMIT 500";
+
+ print "";
+ print "";
+ ?>
+
+
+
+
\ No newline at end of file
diff --git a/cadline/docroot/crm_hardlock.class.php b/cadline/docroot/crm_hardlock.class.php
index 6ad795ba..da874636 100644
--- a/cadline/docroot/crm_hardlock.class.php
+++ b/cadline/docroot/crm_hardlock.class.php
@@ -1,652 +1,652 @@
- array('9500549300568130',9,1), // mar eladva
- '950055' => array('9500559300623371',9,1),
- '950056' => array('9500569300901666',9,1),
- '950057' => array('9500579300292771',9,1),
- '950058' => array('9500589300939891',9,1),
- '950059' => array('9500599300308525',9,1),
- '950060' => array('9500609300502875',9,1),
- '950061' => array('9500619300525057',9,1),
- '950062' => array('9500629300291068',9,1),
- '950063' => array('9500639300800628',9,1),
- '950064' => array('9500649300993926',9,1),
-
- // 2013 standard - normal
- '980104' => array('9801047300709739',7,0),
- '980105' => array('9801057300249936',7,0),
- '980106' => array('9801067300119100',7,0),
- '980107' => array('9801077300009403',7,0),
- '980108' => array('9801087300176636',7,0),
- '980109' => array('9801097300173361',7,0),
- '980110' => array('9801107300987491',7,0),
- '980111' => array('9801117300041608',7,0),
- '980112' => array('9801127300907455',7,0),
-
- // 2013 studio - normal
- '980113' => array('9801136300019297',6,0),
- '980114' => array('9801146300953568',6,0),
- '980115' => array('9801156300054608',6,0),
- '980116' => array('9801166300387538',6,0),
- '980117' => array('9801176300559245',6,0),
- '980118' => array('9801186300983875',6,0),
- '980119' => array('9801196300445516',6,0),
- '980120' => array('9801206300502309',6,0),
- '980121' => array('9801216300152005',6,0)
- );
-
- public static $win10creator_old_isid;
-
- public function __construct()
- {
- self::$aktivalasihibak = $GLOBALS['aktivalasihibak'];
- self::$kulcsprverzio = $GLOBALS['kulcsprverzio'];
- self::$win10creator_old_isid = $GLOBALS['win10creator_old_isid'];
- }
-
- public static function IsValidPassword($password)
- {
- if ($password=="") return false;
-
- $ph = popen(PATH_CODEGEN." -IsValidPassword ".$password, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
- $result = fgets($ph, 1024);
- pclose($ph);
-
- return ($result == 'true');
- }
-
- public static function IsValidTimeCode($idokod)
- {
- if ($idokod=="") return false;
-
- $ph = popen(PATH_CODEGEN." -IsValidDealerCode ".$idokod, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
- $result = fgets($ph, 1024);
- pclose($ph);
-
- return ($result == 'true');
- }
-
- public static function GetDayFromTimeCode($idokod)
- {
- $command = PATH_CODEGEN." -ParseTimeCode " . $idokod;
- $ph = popen($command, "r");
- $result = fgets($ph, 1024);
- $result = (int)$result;
- pclose($ph);
-
- return $result;
- }
-
- public static function GetIsidFromTimeCode($idokod)
- {
- if(!self::IsValidTimeCode($idokod))
- return '';
- $arrIdokod=explode("-", $idokod);
- return $arrIdokod[1];
- }
-
- public static function GetVeridFromPassword($password)
- {
- return substr($password, 7, 2);
- }
-
- public static function GetTypeFromPassword($password)
- {
- return substr($password, 6, 1);
- }
-
- public static function GeneratePassword($hlNum, $lan, $type, $version)
- {
- $country = substr($hlNum, 0, 2);
- $number = substr($hlNum, 2, 4);
- $type = (int)substr($type,0,1);
-
- $command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
- $ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
- $password = fgets($ph, 1024);
- pclose($ph);
- return $password;
- }
-
- public static function GenerateTimeCode($pass,$isid,$numOfDays)
- {
- $command=PATH_CODEGEN." -GenerateTimeCode ".$pass." ".$isid." ".$numOfDays;
- $ph=popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat");
- $aktkod=fgets($ph, 1024);
- pclose($ph);
- return ($aktkod);
- }
-
- public static function IsLiveKey($serial="")
- {
- return (substr($serial, 6,1) == 'L');
- }
-
- public static function IsSoftwareKey($serial="")
- {
- if ($serial=="") return false;
-
- $ph = popen(PATH_CODEGEN." -IsSoftwareKey ".$serial, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
- $szoftveres = fgets($ph, 1024);
-
- return ($szoftveres == 'true');
- }
-
- public static function AddOrUpdateComputer($npID)
- {
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
- $res4=crm_database::getInstance()->fetchAssoc();
-
- if(empty($res4)){
- $comp=array(
- 'computer_id'=>$npID,
- 'last_mod'=>date('Y-m-d',time()));
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`computers`",$comp);
- return crm_database::getInstance()->getInsertedId();
- } else {
- crm_database::getInstance()->update("`".CRMADATBAZIS."`.`computers`",array('last_mod'=>date('Y-m-d',time())),array('computer_id'=>$npID));
- return $res4[0]['id'];
- }
- }
-
- public static function AddHardlockComputer($hlnum, $compid, $verid)
- {
- if($verid >= 36) {
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`hardlock_computers` WHERE hlNum='".$hlnum."' AND computer_id='".$compid."' LIMIT 1;");
- $res=crm_database::getInstance()->fetchAssoc();
-
- if(empty($res)) {
- $comp=array(
- 'hlNum'=>$hlnum,
- 'computer_id'=>$compid);
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock_computers`",$comp);
- }
- }
- }
-
- public static function AddToDebugTable($message)
- {
- $debug=array(
- 'data'=>$message,
- 'insert_date'=>date('Y-m-d H:i:s'));
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`debug_table`",$debug);
- }
-
- public static function AddNonprofit($tomb=array())
- {
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$tomb);
- }
-
- public static function AddHardlock($tomb=array())
- {
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$tomb);
- }
-
- public static function AddProgram($tomb=array())
- {
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$tomb);
- }
-
- public static function GetTheFirstNotUsedHlNumFromInterval($minHlNum=0,$maxHlNum=0)
- {
- $ret=0;
- if ((int)$minHlNum==0 || (int)$maxHlNum==0) return($ret);
- crm_database::getInstance()->query("SELECT LEFT(hlNum,6) AS hlNum FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlStat!=0 AND hlNum>=".(int)$minHlNum." AND hlNum<".(int)$maxHlNum." ORDER BY hlNum;");
- $res=crm_database::getInstance()->fetchAssoc();
-
- if (count($res))
- {
- $allHlNums=range($minHlNum, $maxHlNum);
- foreach ($res as $r) { $usedHlNums[]=$r['hlNum']; }
- $notUsedHlNums=array_diff($allHlNums,$usedHlNums);
- reset($notUsedHlNums);
- $ret=current($notUsedHlNums);
- }
- else
- {
- $ret=0;
- }
-
- return $ret;
- }
-
- public static function GetVersion($tomb=array())
- {
- $ret=array();
- if (is_array($tomb) && count($tomb)) {
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_versions` WHERE `".key($tomb) ."`='".current($tomb)."' LIMIT 1;");
- $ret=crm_database::getInstance()->fetchAssoc();
- return ($ret[0]);
- }
- return ($ret);
- }
-
- function _Hibajelento($kuldo,$kulcs,$hiba="",$arrGCData=array(),$usstatid=NULL)
- {
- $tomb=array(
- "kulcs"=>$kulcs,
- "kuldo"=>$kuldo,
- "leiras"=>$hiba,
- "statusz"=>"uj",
- "datum"=>date('Y-m-d H:i:s',time()),
- "ip"=>$_SERVER['REMOTE_ADDR']);
-
- if (isset($usstatid) && (int)$usstatid>0)
- $tomb['usID']=$usstatid;
-
- if (count($arrGCData)) {
- if (isset($arrGCData['usGCMan'])) $tomb['usGCMan']=trim($arrGCData['usGCMan']); // graphic card manufacture
- if (isset($arrGCData['usGCType'])) $tomb['usGCType']=trim($arrGCData['usGCType']); // graphic card type
- if (isset($arrGCData['usGCDriverVer'])) $tomb['usGCDriverVer']=trim($arrGCData['usGCDriverVer']); // graphic card driver version
- }
-
- crm_database::getInstance()->insert(CRMADATBAZIS.'.h_aktivalas_infok',$tomb);
- }
-
- public static function _Getaktivalasikod($serial,$isid="",$idokod="")
- {
- $voltures = false;
-
- // van-e olyan aktiv program aminek ez a sorozatszama // a/b kulcsok miatt
- crm_database::getInstance()->query("SELECT prID, prStat, prActCode, prSellDate FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
- $ered2 = crm_database::getInstance()->fetchAssoc();
-
- if(!$ered2)
- return "error: nincs ilyen password";
-
- $szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
-
- crm_database::getInstance()->query("SELECT hlStat, hlID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
- $res=crm_database::getInstance()->fetchAssoc();
- $kulcs=$res[0];
-
- if($kulcs['hlStat']!=1) { // a kulcs aktiv-e
- $valasz = "error: nem aktiv a program";
- } else { // egyeb hiba
- if($kulcs['hlID'] == 64300 || $kulcs['hlID'] == 64897) { //ba Namirial Trial program kulcsa es BIMLadder program kulcsa
- $valasz = "error: hianyzo kod";
- return $valasz;
- } else {
- foreach($ered2 as $program) {
- if ($program['prSellDate'] == "0000-00-00" || $program['prSellDate'] == NULL ) { // van-e eladasi datum
- $valasz = "error: nincs vasarlasi idopont";
- } elseif ($program['prActCode'] != "") { // neki megfelelo aktivalasi kod
- if ($szoftveres) {
- self::$win10creator_old_isid=substr($program['prActCode'],5,4);
-
- $isidOK = (substr($program['prActCode'],5,4)==$isid);
- if(!$isidOK && substr($program['prActCode'],7,2) == substr($isid,2,2)) {
- $elteltnapok = 0;
- sscanf(substr($idokod,11,2),'%02x',$elteltnapok);
- $elteltnapok+=self::Convert(substr($idokod,10,1))*256;
-
- $engedelyezettnapok = 0;
- sscanf(substr($program['prActCode'],11,2),'%02x',$engedelyezettnapok);
- $engedelyezettnapok+=self::Convert(substr($program['prActCode'],10,1))*256;
-
- if($engedelyezettnapok > $elteltnapok ) {
- $valasz = "error: win10 creator";
- break;
- }
- }
- if ($isidOK) {
- $valasz = $program['prActCode']; // aktualis aktivalasi kod
- break;
- } else {
- $valasz = 'error: masik gep van regisztralva';
- }
- } else {
- $valasz = $program['prActCode']; // hardveres kulcs eseten egybol visszaadja az aktualis aktivalasi kodot
- break;
- }
- } else {
- $valasz = "error: hianyzo kod"; // nincs beirva a kod
- $voltures = true;
- }
- }
- }
- }
-
- if ($voltures === true && $valasz == "error: masik gep van regisztralva") { // LAN-os szoftver kulcsos liszensznel ha ezt a liszenszt nem talaltuk de volt ures liszensz, akkor csinalja ezt
- $valasz = "error: hianyzo kod";
- }
-
- // Kivetel: 30, 34, 39, 41, 43 kulcsok, amik soha nem kapnak tolunk automata hosszabbitast.
- // csak a hibat adom vissza
- if( self::_Get_aktkod($serial) === true || substr($valasz,0,5) == "error" ) {
- return $valasz;
- } else {
- return;
- }
- }
-
- public static function _Get_aktkod($kulcs)
- {
- // isCodeReplyEnabled(hlNum:str(6))
- // 2017.12.13. F.Zs.
- // Ezekre az esetekre ad vissza TRUE-t a fuggveny (version tabla 1182-es rekord): 30;34;36;38;40;41;42;43;44;47;48;49;82;88;93;94;95;97;98;99;
- // 39 - Olaszorszag szandekosan hianyzik, amig a volume contract fennall!
- if(self::IsLiveKey($kulcs)) { // A live-ok mindig kommunikalnak a szerverrel 2019
- return true;
- }
- $kulcs = substr($kulcs,0,6);
-
- // a lekerdezes vagy egy mezot ad vissza ver_id=1182 vagy semmit
- // pl: SELECT ver_id FROM `www_archline_hu`.`version` WHERE ver_id=1182 AND (`usertype` LIKE '%;360012;%' OR `usertype` LIKE '%;36;%' OR LEFT(`usertype`,3)='36;');
- crm_database::getInstance()->query("SELECT ver_id FROM `".JMLADATBAZIS."`.`version` WHERE ver_id=".ACT_VERSION_ID." AND (`usertype` LIKE '%;".$kulcs.";%' OR `usertype` LIKE '%;".substr($kulcs,0,2).";%' OR LEFT(`usertype`,3)='".substr($kulcs,0,2).";')");
- $res=crm_database::getInstance()->fetchAssoc();
- $re=(object)$res[0];
-
- $ret=( (is_numeric($re->ver_id) && $re->ver_id>0) ? TRUE : FALSE);
- return ($ret);
- }
-
- public static function GetDayInterval($mettol, $meddig)
- {
- $command3 = PATH_CODEGEN." -DiffDay ".$mettol." ".$meddig;
- $ph = popen($command3, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
- $napok = fgets($ph, 1024);
- pclose($ph);
- return $napok;
- }
-
- public static function _Password_gen($hlNum, $lan, $type, $version = 64)
- {
- $country = substr($hlNum, 0, 2);
- $number = substr($hlNum, 2, 4);
-
- if($type == 76) // Live
- $type = 'L';
- else
- $type = (int)substr($type,0,1);
-
- if(substr($hlNum,0,1)=="9") $lan=0;
- //ba ez 2018.11.27.tol a bimladder trial kodja! if($country=='91') { return '9100014260913946'; }
-
- $command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
- $ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
- $password = fgets($ph, 1024);
- pclose($ph);
-
- return $password;
- }
-
- public static function _Ujtempprogram($adatbazis, $kulcs)
- {
- $hlNum = $kulcs->hlNum;
-
- if ($hlNum>'' && !array_key_exists($hlNum,self::$kulcsprverzio)) {
- // hiba, nincs beallitva hogy mit hozzon letre
- $err=array(
- "osztaly"=>"version",
- "fv"=>"_ujtempprogram",
- "hiba"=>"Kulcs: {$hlNum}\nnincs beallitva hogy milyen programot hozzon letre",
- "datum"=>date('Y-m-d H:i:s',time()));
- crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err);
- return;
- }
-
- $adatok = self::$kulcsprverzio[$hlNum];
- $prTypeID = $adatok[1];
- $prContact = $adatok[2];
- $prVerCode = 70; // 2013-as program
- $prVerID = 13; // 2013-as program
-
- $hlNum = $kulcs->hlNum;
- $ctrID = $kulcs->hlCtrID;
- $hlLan = $kulcs->hlLan;
-
- $password = self::_Password_gen($hlNum, $hlLan, $prTypeID, $prVerCode);
-
- // program felvetele
- $ujprogram = array(
- "prHlNum" => $hlNum,
- "prTypeID" => $prTypeID,
- "prSellDate" => date("Y-m-d"),
- "prContact" => $prContact,
- "prPass" => $password,
- "prLan" => $hlLan,
- "prLastMod" => date("Y-m-d H:i:s"),
- "prVerID" => $prVerID,
- "prInfo" => "automatikusan letrehozva (weben), Share It",
- "prCtrID" => $ctrID,
- "prHiType" => 1
- );
-
- crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
-
- $err2=array(
- "osztaly"=>"version",
- "fv"=>"_ujtempprogram",
- "hiba"=>"Uj program letrehozva, Share It-es, kulcs: {$hlNum}",
- "datum"=>date('Y-m-d H:i:s',time()));
- crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err2);
-
- // szoftveres kulcsnal annyi program, ahany lanos
- if (substr($hlNum,0,1)=="9" && $hlLan>1) {
- for($i=1;$i<$hlLan;$i++) {
- crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
- }
- }
-
- crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
- "hiHlNum" => $hlNum,
- "hiDate" => date("Y-m-d"),
- "hiManID" => 0,
- "hiTypeID" => 2,
- "hiCtrID" => $ctrID
- ));
-
- crm_database::getInstance()->update(CRMADATBAZIS.'.hardlock',array('hlStat'=>1),array('hlNum'=>$hlNum));
- return true;
- }
-
- public static function Ujaktivalasikod2($serial,$isid,$idokod)
- {
- // ha uresek a parameterek, akkor az urlbol veszi
- if(!$serial) $serial = ''.$_GET['serial']; // segment(3);
- if(!$isid) $isid = ''.$_GET['isid']; // segment(4);
- if(!$idokod) $idokod = ''.$_GET['kod']; // segment(5);
-
- // isid kiegeszitese
- while(strlen($isid)<4) $isid = "0".$isid;
- $szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
-
- $valasz = self::_Getaktivalasikod($serial,$isid,$idokod);
-
- // csak azok kapnak automatikusan kodot, akiknek megengedjuk vagy akiknel hiba van
- if(self::_Get_aktkod($serial)!==true && ($valasz=='error: hianyzo kod' || !in_array($valasz,self::$aktivalasihibak))) {
- // azoknal lep ki return-el, akiknek nem jar kod (pl. olaszok) es nincs veluk problema (nem kap error-t)
- return;
- }
-
- $elteltnap = self::GetDayFromTimeCode($idokod);
-
- if(!is_numeric($elteltnap) && $szoftveres) {
- self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"(megjegyzes) telepites idejet nem tudtam megallapitani (isid: {$isid}, idokod: {$idokod}, elteltnap: {$elteltnap})");
- $elteltnap = 0; // ennek itt semmi ertelme, mert return-al visszater $this->aktivalasihibak['not_act_prg']
- return 'error: nem aktiv regisztracio'; // - 2013. 10. 21.
- }
- $timeelteltnap = 60*60*24*$elteltnap;
-
- if($valasz == 'error: win10 creator') {
- // aktivalasi kod torlese
- crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`p_serial_isid` SET `isid`=NULL WHERE serial = '".$serial."' AND isid = '".self::$win10creator_old_isid."' LIMIT 1;");
- crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`=NULL,`prActDate`=NULL WHERE `prPass`='".$serial."' AND SUBSTR(prActCode,6,4)='".self::$win10creator_old_isid."' LIMIT 1;");
- $valasz = 'error: hianyzo kod';
- }
-
- $namirialtrial = (substr($serial,0,6) == '930001');
- $bimladdertrial = (substr($serial,0,6) == '910001');
-
- // a paros benne van-e a tablaban, regisztralva van-e
- crm_database::getInstance()->query("SELECT id, aktiv, datum FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid ='{$isid}' ORDER BY datum DESC");
- $ered=crm_database::getInstance()->fetchAssoc();
-
- if(!$namirialtrial && !$bimladdertrial) {
- if(count($ered)!=1) { // regisztraljuk ha nincs benne es meg van szabad regisztracio (lan-os)
- // a max(hlLan) ertelmetlen, mivel a hardlock tablaban a hlNum az egyedi azonosito is, igy ertelmetlen a csoportositas
-
- /* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
- crm_database::getInstance()->query("SELECT max(hlLan) hlLan FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
- $res=crm_database::getInstance()->fetchAssoc();
- $querydb=$res[0];
-
- $maxtelepites = ($querydb['hlLan']==0) ? 1 : $querydb['hlLan'];
- crm_database::getInstance()->query("SELECT id FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid!='' AND isid IS NOT NULL");
- $telepitett = crm_database::getInstance()->fetchAssoc();
-
- /* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
- if($szoftveres && count($telepitett)>=$maxtelepites) {
- $ret=($querydb['hlLan']>1 ? "error: tul sok telepites" : "error: masik gep van regisztralva");
- return ($ret);
- }
-
- $regtelepites = date('Y-m-d H:i:s',(time())-$timeelteltnap);
- crm_database::getInstance()->insert(CRMADATBAZIS.'.p_serial_isid',array(
- "serial"=>$serial,
- "isid"=>$isid,
- "kod"=>$idokod,
- "datum"=>$regtelepites,
- "ip"=>$_SERVER['REMOTE_ADDR'],
- "aktiv"=>1));
- } elseif($ered[0]['aktiv']!=1) {
- return "error: nem aktiv regisztracio";
- } else {
- $regtelepites = substr($ered[0]['datum'],0,10);
- }
- }
-
- // ha Share-It-es meg nem letezo program
- if($valasz == "error: nincs ilyen password" && $serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio)) {
- crm_database::getInstance()->query("SELECT * FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
- $res=crm_database::getInstance()->fetchAssoc();
- $kulcs=(object)$res[0];
- self::_Ujtempprogram(CRMADATBAZIS, $kulcs);
- $valasz = "error: hianyzo kod";
- }
-
- // ha nincs aktivalasi kodja, akkor generalni neki
- if($valasz == "error: hianyzo kod") {
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
- $res=crm_database::getInstance()->fetchAssoc();
- $program=(object)$res[0];
-
- if($namirialtrial || $bimladdertrial) {
- $timeMettol = time()-$timeelteltnap;
- $mettol = date('Y-m-d',$timeMettol);
- if($program->prFizetve) {
- $fizetvetime = strtotime($program->prFizetve);
- $meddig = date('Y-m-d',$fizetvetime); // vege - telepites
- } else {
- return "error: nincs kifizetve";
- }
-
- $napok = self::GetDayInterval($mettol, $meddig);
-
- $aktkod = self::GenerateTimeCode($serial, $isid, $napok);
-
- $aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
- return $aktkod;
- } else {
- $timeszerzodes = strtotime($program->prSellDate);
- $timetelepites = time()-$timeelteltnap;
- $maxtelepites = max($timeszerzodes,$timetelepites);
- $maxdatetelepites = date('Y-m-d',$maxtelepites);
-
- if(!$szoftveres && $program->prSellDate!='' && $program->prSellDate!='0000-00-00') {
- $maxdatetelepites = substr($program->prSellDate,0,10);
- }
-
- if($program->prFizetve) {
- $fizetvetime = strtotime($program->prFizetve);
- $meddig = date('Y-m-d',$fizetvetime); // vege - telepites
- } elseif (substr($serial,0,2)=="99" || ($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))) {
- $meddig = date('Y-m-d',time() + 30*24*60*60); // eloszor 30 napot kap
- } else {
- return "error: nincs kifizetve";
- }
-
- // mostani ido nagyobb mint ameddig jar
- if( date('Y-m-d',time()) > $meddig ) {
- return $valasz;
- }
-
- $napok = self::GetDayInterval($maxdatetelepites, $meddig);
-
- if($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))
- $napok = 30;
- if($meddig == '2050-01-01')
- $napok=3583;
-
- $aktkod = self::GenerateTimeCode($serial, $isid, $napok);
-
- $aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
-
- $serial = trim(addslashes($serial));
-
- crm_database::getInstance()->query("SELECT hlCtrID FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
- $res=crm_database::getInstance()->fetchAssoc();
- $hl=(object)$res[0];
- $hlctrid = $hl->hlCtrID;
-
- crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`='{$aktkod}', prActDate='{$maxdatetelepites}', prFizetve='{$meddig}' WHERE `prPass`='{$serial}' AND (prActCode='' OR prActCode IS NULL) LIMIT 1");
-
- // internetes aktivalas esem�ny
- crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
- "hiHlNum"=>$program->prHlNum,
- "hiDate"=>date('Y-m-d',time()),
- "hiManID"=>0,
- "hiTypeID"=>16,
- "hiTime"=>date('Y-m-d H:i:s',time()),
- ));
-
- self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"felvettem: {$query}");
- }
- return $aktkod;
- }
-
- return $valasz;
- }
-
- public static function Convert($betu)
- {
- $ret=0;
- switch (strtoupper($betu))
- {
- case 'A' : { $ret=0; break; }
- case 'B' : { $ret=1; break; }
- case 'C' : { $ret=2; break; }
- case 'D' : { $ret=3; break; }
- case 'E' : { $ret=4; break; }
- case 'F' : { $ret=5; break; }
- case 'G' : { $ret=6; break; }
- case 'H' : { $ret=7; break; }
- case 'I' : { $ret=8; break; }
- case 'J' : { $ret=9; break; }
- case 'K' : { $ret=10; break; }
- case 'L' : { $ret=11; break; }
- case 'M' : { $ret=12; break; }
- case 'N' : { $ret=13; break; }
- }
- return ($ret);
- }
-}
+ array('9500549300568130',9,1), // mar eladva
+ '950055' => array('9500559300623371',9,1),
+ '950056' => array('9500569300901666',9,1),
+ '950057' => array('9500579300292771',9,1),
+ '950058' => array('9500589300939891',9,1),
+ '950059' => array('9500599300308525',9,1),
+ '950060' => array('9500609300502875',9,1),
+ '950061' => array('9500619300525057',9,1),
+ '950062' => array('9500629300291068',9,1),
+ '950063' => array('9500639300800628',9,1),
+ '950064' => array('9500649300993926',9,1),
+
+ // 2013 standard - normal
+ '980104' => array('9801047300709739',7,0),
+ '980105' => array('9801057300249936',7,0),
+ '980106' => array('9801067300119100',7,0),
+ '980107' => array('9801077300009403',7,0),
+ '980108' => array('9801087300176636',7,0),
+ '980109' => array('9801097300173361',7,0),
+ '980110' => array('9801107300987491',7,0),
+ '980111' => array('9801117300041608',7,0),
+ '980112' => array('9801127300907455',7,0),
+
+ // 2013 studio - normal
+ '980113' => array('9801136300019297',6,0),
+ '980114' => array('9801146300953568',6,0),
+ '980115' => array('9801156300054608',6,0),
+ '980116' => array('9801166300387538',6,0),
+ '980117' => array('9801176300559245',6,0),
+ '980118' => array('9801186300983875',6,0),
+ '980119' => array('9801196300445516',6,0),
+ '980120' => array('9801206300502309',6,0),
+ '980121' => array('9801216300152005',6,0)
+ );
+
+ public static $win10creator_old_isid;
+
+ public function __construct()
+ {
+ self::$aktivalasihibak = $GLOBALS['aktivalasihibak'];
+ self::$kulcsprverzio = $GLOBALS['kulcsprverzio'];
+ self::$win10creator_old_isid = $GLOBALS['win10creator_old_isid'];
+ }
+
+ public static function IsValidPassword($password)
+ {
+ if ($password=="") return false;
+
+ $ph = popen(PATH_CODEGEN." -IsValidPassword ".$password, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
+ $result = fgets($ph, 1024);
+ pclose($ph);
+
+ return ($result == 'true');
+ }
+
+ public static function IsValidTimeCode($idokod)
+ {
+ if ($idokod=="") return false;
+
+ $ph = popen(PATH_CODEGEN." -IsValidDealerCode ".$idokod, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
+ $result = fgets($ph, 1024);
+ pclose($ph);
+
+ return ($result == 'true');
+ }
+
+ public static function GetDayFromTimeCode($idokod)
+ {
+ $command = PATH_CODEGEN." -ParseTimeCode " . $idokod;
+ $ph = popen($command, "r");
+ $result = fgets($ph, 1024);
+ $result = (int)$result;
+ pclose($ph);
+
+ return $result;
+ }
+
+ public static function GetIsidFromTimeCode($idokod)
+ {
+ if(!self::IsValidTimeCode($idokod))
+ return '';
+ $arrIdokod=explode("-", $idokod);
+ return $arrIdokod[1];
+ }
+
+ public static function GetVeridFromPassword($password)
+ {
+ return substr($password, 7, 2);
+ }
+
+ public static function GetTypeFromPassword($password)
+ {
+ return substr($password, 6, 1);
+ }
+
+ public static function GeneratePassword($hlNum, $lan, $type, $version)
+ {
+ $country = substr($hlNum, 0, 2);
+ $number = substr($hlNum, 2, 4);
+ $type = (int)substr($type,0,1);
+
+ $command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
+ $ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
+ $password = fgets($ph, 1024);
+ pclose($ph);
+ return $password;
+ }
+
+ public static function GenerateTimeCode($pass,$isid,$numOfDays)
+ {
+ $command=PATH_CODEGEN." -GenerateTimeCode ".$pass." ".$isid." ".$numOfDays;
+ $ph=popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat");
+ $aktkod=fgets($ph, 1024);
+ pclose($ph);
+ return ($aktkod);
+ }
+
+ public static function IsLiveKey($serial="")
+ {
+ return (substr($serial, 6,1) == 'L');
+ }
+
+ public static function IsSoftwareKey($serial="")
+ {
+ if ($serial=="") return false;
+
+ $ph = popen(PATH_CODEGEN." -IsSoftwareKey ".$serial, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
+ $szoftveres = fgets($ph, 1024);
+
+ return ($szoftveres == 'true');
+ }
+
+ public static function AddOrUpdateComputer($npID)
+ {
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
+ $res4=crm_database::getInstance()->fetchAssoc();
+
+ if(empty($res4)){
+ $comp=array(
+ 'computer_id'=>$npID,
+ 'last_mod'=>date('Y-m-d',time()));
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`computers`",$comp);
+ return crm_database::getInstance()->getInsertedId();
+ } else {
+ crm_database::getInstance()->update("`".CRMADATBAZIS."`.`computers`",array('last_mod'=>date('Y-m-d',time())),array('computer_id'=>$npID));
+ return $res4[0]['id'];
+ }
+ }
+
+ public static function AddHardlockComputer($hlnum, $compid, $verid)
+ {
+ if($verid >= 36) {
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`hardlock_computers` WHERE hlNum='".$hlnum."' AND computer_id='".$compid."' LIMIT 1;");
+ $res=crm_database::getInstance()->fetchAssoc();
+
+ if(empty($res)) {
+ $comp=array(
+ 'hlNum'=>$hlnum,
+ 'computer_id'=>$compid);
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock_computers`",$comp);
+ }
+ }
+ }
+
+ public static function AddToDebugTable($message)
+ {
+ $debug=array(
+ 'data'=>$message,
+ 'insert_date'=>date('Y-m-d H:i:s'));
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`debug_table`",$debug);
+ }
+
+ public static function AddNonprofit($tomb=array())
+ {
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$tomb);
+ }
+
+ public static function AddHardlock($tomb=array())
+ {
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$tomb);
+ }
+
+ public static function AddProgram($tomb=array())
+ {
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$tomb);
+ }
+
+ public static function GetTheFirstNotUsedHlNumFromInterval($minHlNum=0,$maxHlNum=0)
+ {
+ $ret=0;
+ if ((int)$minHlNum==0 || (int)$maxHlNum==0) return($ret);
+ crm_database::getInstance()->query("SELECT LEFT(hlNum,6) AS hlNum FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlStat!=0 AND hlNum>=".(int)$minHlNum." AND hlNum<".(int)$maxHlNum." ORDER BY hlNum;");
+ $res=crm_database::getInstance()->fetchAssoc();
+
+ if (count($res))
+ {
+ $allHlNums=range($minHlNum, $maxHlNum);
+ foreach ($res as $r) { $usedHlNums[]=$r['hlNum']; }
+ $notUsedHlNums=array_diff($allHlNums,$usedHlNums);
+ reset($notUsedHlNums);
+ $ret=current($notUsedHlNums);
+ }
+ else
+ {
+ $ret=0;
+ }
+
+ return $ret;
+ }
+
+ public static function GetVersion($tomb=array())
+ {
+ $ret=array();
+ if (is_array($tomb) && count($tomb)) {
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_versions` WHERE `".key($tomb) ."`='".current($tomb)."' LIMIT 1;");
+ $ret=crm_database::getInstance()->fetchAssoc();
+ return ($ret[0]);
+ }
+ return ($ret);
+ }
+
+ function _Hibajelento($kuldo,$kulcs,$hiba="",$arrGCData=array(),$usstatid=NULL)
+ {
+ $tomb=array(
+ "kulcs"=>$kulcs,
+ "kuldo"=>$kuldo,
+ "leiras"=>$hiba,
+ "statusz"=>"uj",
+ "datum"=>date('Y-m-d H:i:s',time()),
+ "ip"=>$_SERVER['REMOTE_ADDR']);
+
+ if (isset($usstatid) && (int)$usstatid>0)
+ $tomb['usID']=$usstatid;
+
+ if (count($arrGCData)) {
+ if (isset($arrGCData['usGCMan'])) $tomb['usGCMan']=trim($arrGCData['usGCMan']); // graphic card manufacture
+ if (isset($arrGCData['usGCType'])) $tomb['usGCType']=trim($arrGCData['usGCType']); // graphic card type
+ if (isset($arrGCData['usGCDriverVer'])) $tomb['usGCDriverVer']=trim($arrGCData['usGCDriverVer']); // graphic card driver version
+ }
+
+ crm_database::getInstance()->insert(CRMADATBAZIS.'.h_aktivalas_infok',$tomb);
+ }
+
+ public static function _Getaktivalasikod($serial,$isid="",$idokod="")
+ {
+ $voltures = false;
+
+ // van-e olyan aktiv program aminek ez a sorozatszama // a/b kulcsok miatt
+ crm_database::getInstance()->query("SELECT prID, prStat, prActCode, prSellDate FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
+ $ered2 = crm_database::getInstance()->fetchAssoc();
+
+ if(!$ered2)
+ return "error: nincs ilyen password";
+
+ $szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
+
+ crm_database::getInstance()->query("SELECT hlStat, hlID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $kulcs=$res[0];
+
+ if($kulcs['hlStat']!=1) { // a kulcs aktiv-e
+ $valasz = "error: nem aktiv a program";
+ } else { // egyeb hiba
+ if($kulcs['hlID'] == 64300 || $kulcs['hlID'] == 64897) { //ba Namirial Trial program kulcsa es BIMLadder program kulcsa
+ $valasz = "error: hianyzo kod";
+ return $valasz;
+ } else {
+ foreach($ered2 as $program) {
+ if ($program['prSellDate'] == "0000-00-00" || $program['prSellDate'] == NULL ) { // van-e eladasi datum
+ $valasz = "error: nincs vasarlasi idopont";
+ } elseif ($program['prActCode'] != "") { // neki megfelelo aktivalasi kod
+ if ($szoftveres) {
+ self::$win10creator_old_isid=substr($program['prActCode'],5,4);
+
+ $isidOK = (substr($program['prActCode'],5,4)==$isid);
+ if(!$isidOK && substr($program['prActCode'],7,2) == substr($isid,2,2)) {
+ $elteltnapok = 0;
+ sscanf(substr($idokod,11,2),'%02x',$elteltnapok);
+ $elteltnapok+=self::Convert(substr($idokod,10,1))*256;
+
+ $engedelyezettnapok = 0;
+ sscanf(substr($program['prActCode'],11,2),'%02x',$engedelyezettnapok);
+ $engedelyezettnapok+=self::Convert(substr($program['prActCode'],10,1))*256;
+
+ if($engedelyezettnapok > $elteltnapok ) {
+ $valasz = "error: win10 creator";
+ break;
+ }
+ }
+ if ($isidOK) {
+ $valasz = $program['prActCode']; // aktualis aktivalasi kod
+ break;
+ } else {
+ $valasz = 'error: masik gep van regisztralva';
+ }
+ } else {
+ $valasz = $program['prActCode']; // hardveres kulcs eseten egybol visszaadja az aktualis aktivalasi kodot
+ break;
+ }
+ } else {
+ $valasz = "error: hianyzo kod"; // nincs beirva a kod
+ $voltures = true;
+ }
+ }
+ }
+ }
+
+ if ($voltures === true && $valasz == "error: masik gep van regisztralva") { // LAN-os szoftver kulcsos liszensznel ha ezt a liszenszt nem talaltuk de volt ures liszensz, akkor csinalja ezt
+ $valasz = "error: hianyzo kod";
+ }
+
+ // Kivetel: 30, 34, 39, 41, 43 kulcsok, amik soha nem kapnak tolunk automata hosszabbitast.
+ // csak a hibat adom vissza
+ if( self::_Get_aktkod($serial) === true || substr($valasz,0,5) == "error" ) {
+ return $valasz;
+ } else {
+ return;
+ }
+ }
+
+ public static function _Get_aktkod($kulcs)
+ {
+ // isCodeReplyEnabled(hlNum:str(6))
+ // 2017.12.13. F.Zs.
+ // Ezekre az esetekre ad vissza TRUE-t a fuggveny (version tabla 1182-es rekord): 30;34;36;38;40;41;42;43;44;47;48;49;82;88;93;94;95;97;98;99;
+ // 39 - Olaszorszag szandekosan hianyzik, amig a volume contract fennall!
+ if(self::IsLiveKey($kulcs)) { // A live-ok mindig kommunikalnak a szerverrel 2019
+ return true;
+ }
+ $kulcs = substr($kulcs,0,6);
+
+ // a lekerdezes vagy egy mezot ad vissza ver_id=1182 vagy semmit
+ // pl: SELECT ver_id FROM `www_archline_hu`.`version` WHERE ver_id=1182 AND (`usertype` LIKE '%;360012;%' OR `usertype` LIKE '%;36;%' OR LEFT(`usertype`,3)='36;');
+ crm_database::getInstance()->query("SELECT ver_id FROM `".JMLADATBAZIS."`.`version` WHERE ver_id=".ACT_VERSION_ID." AND (`usertype` LIKE '%;".$kulcs.";%' OR `usertype` LIKE '%;".substr($kulcs,0,2).";%' OR LEFT(`usertype`,3)='".substr($kulcs,0,2).";')");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $re=(object)$res[0];
+
+ $ret=( (is_numeric($re->ver_id) && $re->ver_id>0) ? TRUE : FALSE);
+ return ($ret);
+ }
+
+ public static function GetDayInterval($mettol, $meddig)
+ {
+ $command3 = PATH_CODEGEN." -DiffDay ".$mettol." ".$meddig;
+ $ph = popen($command3, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
+ $napok = fgets($ph, 1024);
+ pclose($ph);
+ return $napok;
+ }
+
+ public static function _Password_gen($hlNum, $lan, $type, $version = 64)
+ {
+ $country = substr($hlNum, 0, 2);
+ $number = substr($hlNum, 2, 4);
+
+ if($type == 76) // Live
+ $type = 'L';
+ else
+ $type = (int)substr($type,0,1);
+
+ if(substr($hlNum,0,1)=="9") $lan=0;
+ //ba ez 2018.11.27.tol a bimladder trial kodja! if($country=='91') { return '9100014260913946'; }
+
+ $command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
+ $ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
+ $password = fgets($ph, 1024);
+ pclose($ph);
+
+ return $password;
+ }
+
+ public static function _Ujtempprogram($adatbazis, $kulcs)
+ {
+ $hlNum = $kulcs->hlNum;
+
+ if ($hlNum>'' && !array_key_exists($hlNum,self::$kulcsprverzio)) {
+ // hiba, nincs beallitva hogy mit hozzon letre
+ $err=array(
+ "osztaly"=>"version",
+ "fv"=>"_ujtempprogram",
+ "hiba"=>"Kulcs: {$hlNum}\nnincs beallitva hogy milyen programot hozzon letre",
+ "datum"=>date('Y-m-d H:i:s',time()));
+ crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err);
+ return;
+ }
+
+ $adatok = self::$kulcsprverzio[$hlNum];
+ $prTypeID = $adatok[1];
+ $prContact = $adatok[2];
+ $prVerCode = 70; // 2013-as program
+ $prVerID = 13; // 2013-as program
+
+ $hlNum = $kulcs->hlNum;
+ $ctrID = $kulcs->hlCtrID;
+ $hlLan = $kulcs->hlLan;
+
+ $password = self::_Password_gen($hlNum, $hlLan, $prTypeID, $prVerCode);
+
+ // program felvetele
+ $ujprogram = array(
+ "prHlNum" => $hlNum,
+ "prTypeID" => $prTypeID,
+ "prSellDate" => date("Y-m-d"),
+ "prContact" => $prContact,
+ "prPass" => $password,
+ "prLan" => $hlLan,
+ "prLastMod" => date("Y-m-d H:i:s"),
+ "prVerID" => $prVerID,
+ "prInfo" => "automatikusan letrehozva (weben), Share It",
+ "prCtrID" => $ctrID,
+ "prHiType" => 1
+ );
+
+ crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
+
+ $err2=array(
+ "osztaly"=>"version",
+ "fv"=>"_ujtempprogram",
+ "hiba"=>"Uj program letrehozva, Share It-es, kulcs: {$hlNum}",
+ "datum"=>date('Y-m-d H:i:s',time()));
+ crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err2);
+
+ // szoftveres kulcsnal annyi program, ahany lanos
+ if (substr($hlNum,0,1)=="9" && $hlLan>1) {
+ for($i=1;$i<$hlLan;$i++) {
+ crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
+ }
+ }
+
+ crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
+ "hiHlNum" => $hlNum,
+ "hiDate" => date("Y-m-d"),
+ "hiManID" => 0,
+ "hiTypeID" => 2,
+ "hiCtrID" => $ctrID
+ ));
+
+ crm_database::getInstance()->update(CRMADATBAZIS.'.hardlock',array('hlStat'=>1),array('hlNum'=>$hlNum));
+ return true;
+ }
+
+ public static function Ujaktivalasikod2($serial,$isid,$idokod)
+ {
+ // ha uresek a parameterek, akkor az urlbol veszi
+ if(!$serial) $serial = ''.$_GET['serial']; // segment(3);
+ if(!$isid) $isid = ''.$_GET['isid']; // segment(4);
+ if(!$idokod) $idokod = ''.$_GET['kod']; // segment(5);
+
+ // isid kiegeszitese
+ while(strlen($isid)<4) $isid = "0".$isid;
+ $szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
+
+ $valasz = self::_Getaktivalasikod($serial,$isid,$idokod);
+
+ // csak azok kapnak automatikusan kodot, akiknek megengedjuk vagy akiknel hiba van
+ if(self::_Get_aktkod($serial)!==true && ($valasz=='error: hianyzo kod' || !in_array($valasz,self::$aktivalasihibak))) {
+ // azoknal lep ki return-el, akiknek nem jar kod (pl. olaszok) es nincs veluk problema (nem kap error-t)
+ return;
+ }
+
+ $elteltnap = self::GetDayFromTimeCode($idokod);
+
+ if(!is_numeric($elteltnap) && $szoftveres) {
+ self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"(megjegyzes) telepites idejet nem tudtam megallapitani (isid: {$isid}, idokod: {$idokod}, elteltnap: {$elteltnap})");
+ $elteltnap = 0; // ennek itt semmi ertelme, mert return-al visszater $this->aktivalasihibak['not_act_prg']
+ return 'error: nem aktiv regisztracio'; // - 2013. 10. 21.
+ }
+ $timeelteltnap = 60*60*24*$elteltnap;
+
+ if($valasz == 'error: win10 creator') {
+ // aktivalasi kod torlese
+ crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`p_serial_isid` SET `isid`=NULL WHERE serial = '".$serial."' AND isid = '".self::$win10creator_old_isid."' LIMIT 1;");
+ crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`=NULL,`prActDate`=NULL WHERE `prPass`='".$serial."' AND SUBSTR(prActCode,6,4)='".self::$win10creator_old_isid."' LIMIT 1;");
+ $valasz = 'error: hianyzo kod';
+ }
+
+ $namirialtrial = (substr($serial,0,6) == '930001');
+ $bimladdertrial = (substr($serial,0,6) == '910001');
+
+ // a paros benne van-e a tablaban, regisztralva van-e
+ crm_database::getInstance()->query("SELECT id, aktiv, datum FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid ='{$isid}' ORDER BY datum DESC");
+ $ered=crm_database::getInstance()->fetchAssoc();
+
+ if(!$namirialtrial && !$bimladdertrial) {
+ if(count($ered)!=1) { // regisztraljuk ha nincs benne es meg van szabad regisztracio (lan-os)
+ // a max(hlLan) ertelmetlen, mivel a hardlock tablaban a hlNum az egyedi azonosito is, igy ertelmetlen a csoportositas
+
+ /* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
+ crm_database::getInstance()->query("SELECT max(hlLan) hlLan FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $querydb=$res[0];
+
+ $maxtelepites = ($querydb['hlLan']==0) ? 1 : $querydb['hlLan'];
+ crm_database::getInstance()->query("SELECT id FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid!='' AND isid IS NOT NULL");
+ $telepitett = crm_database::getInstance()->fetchAssoc();
+
+ /* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
+ if($szoftveres && count($telepitett)>=$maxtelepites) {
+ $ret=($querydb['hlLan']>1 ? "error: tul sok telepites" : "error: masik gep van regisztralva");
+ return ($ret);
+ }
+
+ $regtelepites = date('Y-m-d H:i:s',(time())-$timeelteltnap);
+ crm_database::getInstance()->insert(CRMADATBAZIS.'.p_serial_isid',array(
+ "serial"=>$serial,
+ "isid"=>$isid,
+ "kod"=>$idokod,
+ "datum"=>$regtelepites,
+ "ip"=>$_SERVER['REMOTE_ADDR'],
+ "aktiv"=>1));
+ } elseif($ered[0]['aktiv']!=1) {
+ return "error: nem aktiv regisztracio";
+ } else {
+ $regtelepites = substr($ered[0]['datum'],0,10);
+ }
+ }
+
+ // ha Share-It-es meg nem letezo program
+ if($valasz == "error: nincs ilyen password" && $serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio)) {
+ crm_database::getInstance()->query("SELECT * FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $kulcs=(object)$res[0];
+ self::_Ujtempprogram(CRMADATBAZIS, $kulcs);
+ $valasz = "error: hianyzo kod";
+ }
+
+ // ha nincs aktivalasi kodja, akkor generalni neki
+ if($valasz == "error: hianyzo kod") {
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $program=(object)$res[0];
+
+ if($namirialtrial || $bimladdertrial) {
+ $timeMettol = time()-$timeelteltnap;
+ $mettol = date('Y-m-d',$timeMettol);
+ if($program->prFizetve) {
+ $fizetvetime = strtotime($program->prFizetve);
+ $meddig = date('Y-m-d',$fizetvetime); // vege - telepites
+ } else {
+ return "error: nincs kifizetve";
+ }
+
+ $napok = self::GetDayInterval($mettol, $meddig);
+
+ $aktkod = self::GenerateTimeCode($serial, $isid, $napok);
+
+ $aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
+ return $aktkod;
+ } else {
+ $timeszerzodes = strtotime($program->prSellDate);
+ $timetelepites = time()-$timeelteltnap;
+ $maxtelepites = max($timeszerzodes,$timetelepites);
+ $maxdatetelepites = date('Y-m-d',$maxtelepites);
+
+ if(!$szoftveres && $program->prSellDate!='' && $program->prSellDate!='0000-00-00') {
+ $maxdatetelepites = substr($program->prSellDate,0,10);
+ }
+
+ if($program->prFizetve) {
+ $fizetvetime = strtotime($program->prFizetve);
+ $meddig = date('Y-m-d',$fizetvetime); // vege - telepites
+ } elseif (substr($serial,0,2)=="99" || ($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))) {
+ $meddig = date('Y-m-d',time() + 30*24*60*60); // eloszor 30 napot kap
+ } else {
+ return "error: nincs kifizetve";
+ }
+
+ // mostani ido nagyobb mint ameddig jar
+ if( date('Y-m-d',time()) > $meddig ) {
+ return $valasz;
+ }
+
+ $napok = self::GetDayInterval($maxdatetelepites, $meddig);
+
+ if($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))
+ $napok = 30;
+ if($meddig == '2050-01-01')
+ $napok=3583;
+
+ $aktkod = self::GenerateTimeCode($serial, $isid, $napok);
+
+ $aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
+
+ $serial = trim(addslashes($serial));
+
+ crm_database::getInstance()->query("SELECT hlCtrID FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $hl=(object)$res[0];
+ $hlctrid = $hl->hlCtrID;
+
+ crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`='{$aktkod}', prActDate='{$maxdatetelepites}', prFizetve='{$meddig}' WHERE `prPass`='{$serial}' AND (prActCode='' OR prActCode IS NULL) LIMIT 1");
+
+ // internetes aktivalas esem�ny
+ crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
+ "hiHlNum"=>$program->prHlNum,
+ "hiDate"=>date('Y-m-d',time()),
+ "hiManID"=>0,
+ "hiTypeID"=>16,
+ "hiTime"=>date('Y-m-d H:i:s',time()),
+ ));
+
+ self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"felvettem: {$query}");
+ }
+ return $aktkod;
+ }
+
+ return $valasz;
+ }
+
+ public static function Convert($betu)
+ {
+ $ret=0;
+ switch (strtoupper($betu))
+ {
+ case 'A' : { $ret=0; break; }
+ case 'B' : { $ret=1; break; }
+ case 'C' : { $ret=2; break; }
+ case 'D' : { $ret=3; break; }
+ case 'E' : { $ret=4; break; }
+ case 'F' : { $ret=5; break; }
+ case 'G' : { $ret=6; break; }
+ case 'H' : { $ret=7; break; }
+ case 'I' : { $ret=8; break; }
+ case 'J' : { $ret=9; break; }
+ case 'K' : { $ret=10; break; }
+ case 'L' : { $ret=11; break; }
+ case 'M' : { $ret=12; break; }
+ case 'N' : { $ret=13; break; }
+ }
+ return ($ret);
+ }
+}
?>
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/.htaccess b/cadline/docroot/iskolak/.htaccess
index 9b40104c..74285637 100644
--- a/cadline/docroot/iskolak/.htaccess
+++ b/cadline/docroot/iskolak/.htaccess
@@ -1,3 +1,3 @@
-RewriteEngine On
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteRule ^([^\.]+)$ $1.php [NC,L]
+RewriteEngine On
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^([^\.]+)$ $1.php [NC,L]
diff --git a/cadline/docroot/iskolak/index.php b/cadline/docroot/iskolak/index.php
index 309d926b..92481073 100644
--- a/cadline/docroot/iskolak/index.php
+++ b/cadline/docroot/iskolak/index.php
@@ -1,325 +1,325 @@
-query($query, array('i', $school_id));
-$courses = Database::getInstance()->fetchAssoc();
-
-define('_JEXEC', 1);
-define('JPATH_BASE', '..');
-require_once(JPATH_BASE . '/includes/defines.php');
-require_once(JPATH_BASE . '/includes/framework.php');
-
-if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
- require_once('language/hu-HU.lang.php');
-else
- require_once('language/en-GB.lang.php');
-
-$course_end = $home['end_of_course'];
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- = $home['home_page'] ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- = $home['name'] ?>:
-
-
-
-
- = $home['email'] ?>:
-
-
-
-
- = $home['confirm_email'] ?>:
-
-
-
-
- = $home['telephone'] ?>:
-
-
-
-
- = $home['course'] ?>:
-
-
- = $course['name'] ?>
-
-
-
-
-
- = $home['status'] ?>:
-
- = $home['active'] ?>
- = $home['passive'] ?>
- = $home['exam_passed'] ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
+query($query, array('i', $school_id));
+$courses = Database::getInstance()->fetchAssoc();
+
+define('_JEXEC', 1);
+define('JPATH_BASE', '..');
+require_once(JPATH_BASE . '/includes/defines.php');
+require_once(JPATH_BASE . '/includes/framework.php');
+
+if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
+ require_once('language/hu-HU.lang.php');
+else
+ require_once('language/en-GB.lang.php');
+
+$course_end = $home['end_of_course'];
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $home['home_page'] ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $home['name'] ?>:
+
+
+
+
+ = $home['email'] ?>:
+
+
+
+
+ = $home['confirm_email'] ?>:
+
+
+
+
+ = $home['telephone'] ?>:
+
+
+
+
+ = $home['course'] ?>:
+
+
+ = $course['name'] ?>
+
+
+
+
+
+ = $home['status'] ?>:
+
+ = $home['active'] ?>
+ = $home['passive'] ?>
+ = $home['exam_passed'] ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/language/en-GB.lang.php b/cadline/docroot/iskolak/language/en-GB.lang.php
index 7639538c..fbdf1823 100644
--- a/cadline/docroot/iskolak/language/en-GB.lang.php
+++ b/cadline/docroot/iskolak/language/en-GB.lang.php
@@ -1,44 +1,44 @@
-
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/process.php b/cadline/docroot/iskolak/process.php
index 0bf6b794..75762e9b 100644
--- a/cadline/docroot/iskolak/process.php
+++ b/cadline/docroot/iskolak/process.php
@@ -1,335 +1,335 @@
-setCourseID($course_id);
- $studentsArray = $student->getAllStudents($search, $courses);
-
- echo json_encode($studentsArray);
- break;
- }
-
- case 'readEmailRecord': {
- $course_id = isset($_POST['course_id']) ? $_POST['course_id'] : '';
- if (!isset($course_id) || $course_id == '') {
- echo json_encode($process['wrong_course']);
- die();
- }
-
- $student->setCourseID($course_id);
- $studentsArray = $student->getAllStudents($search, []);
-
- echo json_encode($studentsArray);
- break;
- }
-
- case 'create': { // Insert a new student
- $course_id = isset($_POST['course_id']) ? $_POST['course_id'] : '';
- if (!isset($course_id) || $course_id == '') {
- echo json_encode($process['wrong_course']);
- die();
- }
-
- $name = $_POST["name"];
- $email = $_POST["email"];
- $phone = $_POST["phone"];
- $school_id = $_POST["schoolid"];
-
- $student->setCourseID($course_id);
- $course = $student->getCourseByID();
-
- $sql = "SELECT * FROM `" . CRMADATBAZIS . "`.`students` WHERE email = ?";
- $student->query($sql, array('s', $email));
- $students = $student->fetchNext();
-
- if (!empty($students)) {
- if ($student->studentInOtherSchool($school_id, $students['school_id']))
- echo json_encode($process['other_school']);
- else
- echo json_encode($process['user_already']);
- die();
- }
-
- $student->setName($name);
- $student->setEmail($email);
- $student->setPhone($phone);
- $student->setSchoolID($school_id);
- $student->setCourseID($course_id);
- $student->setEndDate($course["vegzes_ideje"]);
- $student->setSchool();
- $student->setCourse();
- $student->addStudent();
-
- if ($student->getnUserID() == null) {
- echo json_encode($process['user_failed']);
- die();
- }
-
- $student->generateStudentPassword();
- break;
- }
-
- case 'delete': { // Delete the selected student
- if (isset($_POST['deletedid'])) $student->deleteStudent($_POST['deletedid']);
- break;
- }
-
- case 'details': { // Get the selected student's details
- if (isset($_POST["editid"])) {
- $userid = $_POST["editid"];
- $response = array();
- $student->getStudent($_POST["editid"], $response);
-
- echo json_encode($response);
- } else {
- $response["status"] = 200;
- $response["message"] = "Invalid Request!";
- }
- break;
- }
-
- case 'update': { // Edit the selected student
- if (isset($_POST["hidden_user_id"])) {
- $userid = $_POST["hidden_user_id"];
- $name = $_POST["name"];
- $email = $_POST["email"];
- $phone = $_POST["phone"];
- $course_id = $_POST["course_id"];
- $status = $_POST["status"];
- $isDelete = $_POST["isDelete"] == "Y";
-
- $student->setCourseID($course_id);
- $course = $student->getCourseByID();
-
- $student->setSchoolID($course['school_id']);
- $school = $student->getSchoolByID();
-
- $begin = str_replace('-', '.', $course["begin"]);
- $end = str_replace('-', '.', $course["vegzes_ideje"]);
- $strEducation = $school['username'] . " " . $course['course_code'] . " " . $begin . " - " . $end;
-
- $student->setName($name);
- $student->setEmail($email);
- $student->setPhone($phone);
- $student->setSchoolID($course['school_id']);
- $student->setnSchoolID($school['nSchoolID']);
- $student->setCourseID($course_id);
- $student->setEndDate($course["vegzes_ideje"]);
- $student->setEducation($strEducation);
- $student->setSchool();
- $student->setCourse();
- $student->setStatus($status);
- $student->updateStudent($userid, $isDelete);
- }
- break;
- }
-
- case 'sendEmail': { // Send email to the selected students
- if (isset($_POST['selected'])) {
- $selected = json_decode(stripslashes($_POST['selected']));
- $school_id = $_POST['school_id'];
- $course_id = $_POST['course_id'];
- $isSend = array();
- $error = false;
-
- $student->setSchoolID($school_id);
- $student->setCourseID($course_id);
- $student->setSchool();
- $student->setCourse();
-
- require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/libraries/phpmailer/PHPMailerAutoload.php');
- require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
-
- $mail = new PHPMailer();
-
- $mail->isSMTP();
-
- $mail->CharSet = 'UTF-8';
- $mail->Host = $mailconfig['Host'];
- $mail->Port = $mailconfig['Port'];
- $mail->SMTPAuth = true;
- $mail->SMTPKeepAlive = true;
-
- $mail->Username = $mailconfig['Username'];
- $mail->Password = $mailconfig['Password'];
-
- if ($student->schoolEmail != '') {
- foreach ($selected as $student_id) {
- $student->sendDistributorEmail($student_id, $error, $isSend, $student->schoolEmail, $mail);
- }
-
- echo json_encode($isSend);
- die();
- }
-
- foreach ($selected as $student_id) {
- if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
- $student->sendEmail($student_id, $error, $isSend, $mail);
- else
- $student->sendEngEmail($student_id, $error, $isSend, $mail);
- }
-
- $msg = "";
- if ($error) {
- $to = "marketing@cadline.hu";
- $subject = 'Email küldés hiba';
- $headers = 'MIME-Version: 1.0' . "\r\n";
- $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
- $headers .= "From: mate.nagy@cadline.hu" . "\r\n";
-
- $counter = 0;
- $msg .= "A következő email címekre nem ment ki a levél: ";
-
- foreach ($isSend as $email) {
- if ($counter == 0)
- $msg .= $email;
- else
- $msg .= ', ' . $email;
-
- $counter++;
- }
- mail($to, $subject, $msg, $headers);
- }
- echo json_encode($isSend);
- } else {
- echo json_encode($process['email_failed']);
- }
- break;
- }
-
- case 'excel_export': {
- require_once 'library/SimpleXLSXGen.php';
-
- $courses = array();
- $course_id = $_POST['excel_c_id'];
- $search = '';
-
- $student->setCourseID($course_id);
-
- $studentsArray = $student->getAllStudents($search, $courses);
- $school = $student->getSchoolByCourse();
-
- $header = array();
-
- if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
- $header = array('Név ', 'Email ', 'Telefonszám ', 'Státusz ', 'ARCHLine.XP Sorozatszám ', 'Program indítások ');
- else
- $header = array('Name ', 'Email ', 'Telephone Number ', 'Status ', 'ARCHLine.XP Serial Number ', 'Program Starts ');
-
- $students = array($header);
- $pwd = '';
-
- foreach ($studentsArray as $stud) {
- if (preg_match('/>(.*?)', $stud['prPass'], $pwd) == 1)
- $pwd = $pwd[1];
-
- $starts = $student->getProgramStarts($pwd);
- $status = $student->getStudentStatus($stud['status']);
- $studentDatas = array($stud['name'], $stud['email'], $stud['phone'], $status, $pwd, $starts);
- array_push($students, $studentDatas);
- }
-
- $xlsx = Shuchkin\SimpleXLSXGen::fromArray($students);
- $xlsx->setDefaultFontSize(14);
- $xlsx->downloadAs($school['school_name'] . '_' . $school['course_name'] . '.xlsx');
- break;
- }
-
- case 'excel_import': { // Import students from XLSX file
- if (isset($_POST['schoolid'])) {
- require_once 'library/SimpleXLSX.php';
-
- $school_id = $_POST["schoolid"];
- $course_id = $_POST["course_id"];
- $values = array();
- $error = array();
- $xlsx = SimpleXLSX::parse($_FILES['file']['tmp_name']);
-
- foreach ($xlsx->rows() as $k => $v) {
- if ($k == 0) continue;
-
- $values[] = array(
- 'name' => $v[0],
- 'email' => $v[1],
- 'phone' => $v[2]
- );
- }
-
- $student->setSchoolID($school_id);
- $student->setCourseID($course_id);
- $student->setSchool();
- $student->setCourse();
- $course = $student->getCourseByID();
-
- foreach ($values as $stud) {
- $name = $stud['name'];
- $email = str_replace(' ', '', $stud["email"]);
- $phone = $stud["phone"];
-
- if ($name == '') continue;
-
- if (is_numeric($name)) {
- array_push($error, $process['number_name'] . ": " . $name);
- continue;
- }
-
- if ($email == '') {
- array_push($error, $process['missing_email'] . ": " . $name);
- continue;
- }
-
- if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- array_push($error, $process['invalid_email'] . ": " . $email);
- continue;
- }
-
- $sql = "SELECT * FROM `" . CRMADATBAZIS . "`.`students` WHERE email = ?";
- $student->query($sql, array('s', $email));
- $students = $student->fetchNext();
-
- if (!empty($students)) {
- if ($student->studentInOtherSchool($school_id, $students['school_id']))
- array_push($error, $process['other_school'] . ": " . $email);
- else
- array_push($error, $process['email_already'] . ": " . $email);
- continue;
- }
-
- $student->setName($name);
- $student->setEmail($email);
- $student->setPhone($phone);
- $student->setEndDate($course["vegzes_ideje"]);
- $student->addStudent();
-
- if ($student->getnUserID() == null) {
- array_push($error, $process['user_failed'] . ": " . $email);
- continue;
- }
- $student->generateStudentPassword();
- }
-
- echo json_encode($error);
- }
- break;
- }
- }
-}
+setCourseID($course_id);
+ $studentsArray = $student->getAllStudents($search, $courses);
+
+ echo json_encode($studentsArray);
+ break;
+ }
+
+ case 'readEmailRecord': {
+ $course_id = isset($_POST['course_id']) ? $_POST['course_id'] : '';
+ if (!isset($course_id) || $course_id == '') {
+ echo json_encode($process['wrong_course']);
+ die();
+ }
+
+ $student->setCourseID($course_id);
+ $studentsArray = $student->getAllStudents($search, []);
+
+ echo json_encode($studentsArray);
+ break;
+ }
+
+ case 'create': { // Insert a new student
+ $course_id = isset($_POST['course_id']) ? $_POST['course_id'] : '';
+ if (!isset($course_id) || $course_id == '') {
+ echo json_encode($process['wrong_course']);
+ die();
+ }
+
+ $name = $_POST["name"];
+ $email = $_POST["email"];
+ $phone = $_POST["phone"];
+ $school_id = $_POST["schoolid"];
+
+ $student->setCourseID($course_id);
+ $course = $student->getCourseByID();
+
+ $sql = "SELECT * FROM `" . CRMADATBAZIS . "`.`students` WHERE email = ?";
+ $student->query($sql, array('s', $email));
+ $students = $student->fetchNext();
+
+ if (!empty($students)) {
+ if ($student->studentInOtherSchool($school_id, $students['school_id']))
+ echo json_encode($process['other_school']);
+ else
+ echo json_encode($process['user_already']);
+ die();
+ }
+
+ $student->setName($name);
+ $student->setEmail($email);
+ $student->setPhone($phone);
+ $student->setSchoolID($school_id);
+ $student->setCourseID($course_id);
+ $student->setEndDate($course["vegzes_ideje"]);
+ $student->setSchool();
+ $student->setCourse();
+ $student->addStudent();
+
+ if ($student->getnUserID() == null) {
+ echo json_encode($process['user_failed']);
+ die();
+ }
+
+ $student->generateStudentPassword();
+ break;
+ }
+
+ case 'delete': { // Delete the selected student
+ if (isset($_POST['deletedid'])) $student->deleteStudent($_POST['deletedid']);
+ break;
+ }
+
+ case 'details': { // Get the selected student's details
+ if (isset($_POST["editid"])) {
+ $userid = $_POST["editid"];
+ $response = array();
+ $student->getStudent($_POST["editid"], $response);
+
+ echo json_encode($response);
+ } else {
+ $response["status"] = 200;
+ $response["message"] = "Invalid Request!";
+ }
+ break;
+ }
+
+ case 'update': { // Edit the selected student
+ if (isset($_POST["hidden_user_id"])) {
+ $userid = $_POST["hidden_user_id"];
+ $name = $_POST["name"];
+ $email = $_POST["email"];
+ $phone = $_POST["phone"];
+ $course_id = $_POST["course_id"];
+ $status = $_POST["status"];
+ $isDelete = $_POST["isDelete"] == "Y";
+
+ $student->setCourseID($course_id);
+ $course = $student->getCourseByID();
+
+ $student->setSchoolID($course['school_id']);
+ $school = $student->getSchoolByID();
+
+ $begin = str_replace('-', '.', $course["begin"]);
+ $end = str_replace('-', '.', $course["vegzes_ideje"]);
+ $strEducation = $school['username'] . " " . $course['course_code'] . " " . $begin . " - " . $end;
+
+ $student->setName($name);
+ $student->setEmail($email);
+ $student->setPhone($phone);
+ $student->setSchoolID($course['school_id']);
+ $student->setnSchoolID($school['nSchoolID']);
+ $student->setCourseID($course_id);
+ $student->setEndDate($course["vegzes_ideje"]);
+ $student->setEducation($strEducation);
+ $student->setSchool();
+ $student->setCourse();
+ $student->setStatus($status);
+ $student->updateStudent($userid, $isDelete);
+ }
+ break;
+ }
+
+ case 'sendEmail': { // Send email to the selected students
+ if (isset($_POST['selected'])) {
+ $selected = json_decode(stripslashes($_POST['selected']));
+ $school_id = $_POST['school_id'];
+ $course_id = $_POST['course_id'];
+ $isSend = array();
+ $error = false;
+
+ $student->setSchoolID($school_id);
+ $student->setCourseID($course_id);
+ $student->setSchool();
+ $student->setCourse();
+
+ require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/libraries/phpmailer/PHPMailerAutoload.php');
+ require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
+
+ $mail = new PHPMailer();
+
+ $mail->isSMTP();
+
+ $mail->CharSet = 'UTF-8';
+ $mail->Host = $mailconfig['Host'];
+ $mail->Port = $mailconfig['Port'];
+ $mail->SMTPAuth = true;
+ $mail->SMTPKeepAlive = true;
+
+ $mail->Username = $mailconfig['Username'];
+ $mail->Password = $mailconfig['Password'];
+
+ if ($student->schoolEmail != '') {
+ foreach ($selected as $student_id) {
+ $student->sendDistributorEmail($student_id, $error, $isSend, $student->schoolEmail, $mail);
+ }
+
+ echo json_encode($isSend);
+ die();
+ }
+
+ foreach ($selected as $student_id) {
+ if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
+ $student->sendEmail($student_id, $error, $isSend, $mail);
+ else
+ $student->sendEngEmail($student_id, $error, $isSend, $mail);
+ }
+
+ $msg = "";
+ if ($error) {
+ $to = "marketing@cadline.hu";
+ $subject = 'Email küldés hiba';
+ $headers = 'MIME-Version: 1.0' . "\r\n";
+ $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
+ $headers .= "From: mate.nagy@cadline.hu" . "\r\n";
+
+ $counter = 0;
+ $msg .= "A következő email címekre nem ment ki a levél: ";
+
+ foreach ($isSend as $email) {
+ if ($counter == 0)
+ $msg .= $email;
+ else
+ $msg .= ', ' . $email;
+
+ $counter++;
+ }
+ mail($to, $subject, $msg, $headers);
+ }
+ echo json_encode($isSend);
+ } else {
+ echo json_encode($process['email_failed']);
+ }
+ break;
+ }
+
+ case 'excel_export': {
+ require_once 'library/SimpleXLSXGen.php';
+
+ $courses = array();
+ $course_id = $_POST['excel_c_id'];
+ $search = '';
+
+ $student->setCourseID($course_id);
+
+ $studentsArray = $student->getAllStudents($search, $courses);
+ $school = $student->getSchoolByCourse();
+
+ $header = array();
+
+ if ($_SERVER['HTTP_HOST'] == 'www.archline.hu')
+ $header = array('Név ', 'Email ', 'Telefonszám ', 'Státusz ', 'ARCHLine.XP Sorozatszám ', 'Program indítások ');
+ else
+ $header = array('Name ', 'Email ', 'Telephone Number ', 'Status ', 'ARCHLine.XP Serial Number ', 'Program Starts ');
+
+ $students = array($header);
+ $pwd = '';
+
+ foreach ($studentsArray as $stud) {
+ if (preg_match('/>(.*?)', $stud['prPass'], $pwd) == 1)
+ $pwd = $pwd[1];
+
+ $starts = $student->getProgramStarts($pwd);
+ $status = $student->getStudentStatus($stud['status']);
+ $studentDatas = array($stud['name'], $stud['email'], $stud['phone'], $status, $pwd, $starts);
+ array_push($students, $studentDatas);
+ }
+
+ $xlsx = Shuchkin\SimpleXLSXGen::fromArray($students);
+ $xlsx->setDefaultFontSize(14);
+ $xlsx->downloadAs($school['school_name'] . '_' . $school['course_name'] . '.xlsx');
+ break;
+ }
+
+ case 'excel_import': { // Import students from XLSX file
+ if (isset($_POST['schoolid'])) {
+ require_once 'library/SimpleXLSX.php';
+
+ $school_id = $_POST["schoolid"];
+ $course_id = $_POST["course_id"];
+ $values = array();
+ $error = array();
+ $xlsx = SimpleXLSX::parse($_FILES['file']['tmp_name']);
+
+ foreach ($xlsx->rows() as $k => $v) {
+ if ($k == 0) continue;
+
+ $values[] = array(
+ 'name' => $v[0],
+ 'email' => $v[1],
+ 'phone' => $v[2]
+ );
+ }
+
+ $student->setSchoolID($school_id);
+ $student->setCourseID($course_id);
+ $student->setSchool();
+ $student->setCourse();
+ $course = $student->getCourseByID();
+
+ foreach ($values as $stud) {
+ $name = $stud['name'];
+ $email = str_replace(' ', '', $stud["email"]);
+ $phone = $stud["phone"];
+
+ if ($name == '') continue;
+
+ if (is_numeric($name)) {
+ array_push($error, $process['number_name'] . ": " . $name);
+ continue;
+ }
+
+ if ($email == '') {
+ array_push($error, $process['missing_email'] . ": " . $name);
+ continue;
+ }
+
+ if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ array_push($error, $process['invalid_email'] . ": " . $email);
+ continue;
+ }
+
+ $sql = "SELECT * FROM `" . CRMADATBAZIS . "`.`students` WHERE email = ?";
+ $student->query($sql, array('s', $email));
+ $students = $student->fetchNext();
+
+ if (!empty($students)) {
+ if ($student->studentInOtherSchool($school_id, $students['school_id']))
+ array_push($error, $process['other_school'] . ": " . $email);
+ else
+ array_push($error, $process['email_already'] . ": " . $email);
+ continue;
+ }
+
+ $student->setName($name);
+ $student->setEmail($email);
+ $student->setPhone($phone);
+ $student->setEndDate($course["vegzes_ideje"]);
+ $student->addStudent();
+
+ if ($student->getnUserID() == null) {
+ array_push($error, $process['user_failed'] . ": " . $email);
+ continue;
+ }
+ $student->generateStudentPassword();
+ }
+
+ echo json_encode($error);
+ }
+ break;
+ }
+ }
+}
diff --git a/cadline/docroot/iskolak/public/css/bootstrap.min.css b/cadline/docroot/iskolak/public/css/bootstrap.min.css
index e1ebedba..ed02d73a 100755
--- a/cadline/docroot/iskolak/public/css/bootstrap.min.css
+++ b/cadline/docroot/iskolak/public/css/bootstrap.min.css
@@ -1,6 +1,6 @@
-/*!
- * Bootstrap v4.4.1 (https://getbootstrap.com/)
- * Copyright 2011-2019 The Bootstrap Authors
- * Copyright 2011-2019 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+/*!
+ * Bootstrap v4.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/public/css/main.css b/cadline/docroot/iskolak/public/css/main.css
index ee8a83fb..b886de06 100755
--- a/cadline/docroot/iskolak/public/css/main.css
+++ b/cadline/docroot/iskolak/public/css/main.css
@@ -1,58 +1,58 @@
-#login-form { margin-top: 15%; }
-#error_div, #error_div2 { display: none; }
-#pelda_excel { margin-left: -46%; }
-#excl_btn { margin-left: 73.5%; }
-#file_input { margin-left: 73.5%; }
-#h_div { margin-left: -2%; }
-#loginbtn, .alert { margin-left: 1.3%; }
-.disabled, .inactive { cursor: not-allowed !important; }
-.modal-header { cursor: move; }
-
-#div_pagination {
- width:100%;
- margin-top:5px;
- text-align:center;
-}
-
-.button1 {
- border-radius:3px;
- border:0px;
- background-color:mediumpurple;
- color:white;
- padding:10px 20px;
- letter-spacing: 1px;
-}
-
-#loading_gif {
- position: absolute;
- margin-left: 20%;
-}
-
-#search_all {
- width: 20px;
- height: 20px;
- margin-left: 20px;
- margin-top: 10px;
-}
-
-#search-txt {
- margin-left: 5px;
- margin-top: 8px;
-}
-
-#archiv_text {
- display: none;
-}
-
-@media only screen and (max-width: 600px) {
- #pelda_excel { margin-left: -85% !important; }
- #excl_btn { margin-left: 0% !important; }
- #email_btn { margin-top: 5% !important; }
- #h_div { margin-top: 5% !important; }
- #file_input { margin-left: 0% !important; }
- #h_div { margin-left: 0% !important; }
-}
-
-@media only screen and (min-width: 600px) {
- #export-form { position: absolute; }
+#login-form { margin-top: 15%; }
+#error_div, #error_div2 { display: none; }
+#pelda_excel { margin-left: -46%; }
+#excl_btn { margin-left: 73.5%; }
+#file_input { margin-left: 73.5%; }
+#h_div { margin-left: -2%; }
+#loginbtn, .alert { margin-left: 1.3%; }
+.disabled, .inactive { cursor: not-allowed !important; }
+.modal-header { cursor: move; }
+
+#div_pagination {
+ width:100%;
+ margin-top:5px;
+ text-align:center;
+}
+
+.button1 {
+ border-radius:3px;
+ border:0px;
+ background-color:mediumpurple;
+ color:white;
+ padding:10px 20px;
+ letter-spacing: 1px;
+}
+
+#loading_gif {
+ position: absolute;
+ margin-left: 20%;
+}
+
+#search_all {
+ width: 20px;
+ height: 20px;
+ margin-left: 20px;
+ margin-top: 10px;
+}
+
+#search-txt {
+ margin-left: 5px;
+ margin-top: 8px;
+}
+
+#archiv_text {
+ display: none;
+}
+
+@media only screen and (max-width: 600px) {
+ #pelda_excel { margin-left: -85% !important; }
+ #excl_btn { margin-left: 0% !important; }
+ #email_btn { margin-top: 5% !important; }
+ #h_div { margin-top: 5% !important; }
+ #file_input { margin-left: 0% !important; }
+ #h_div { margin-left: 0% !important; }
+}
+
+@media only screen and (min-width: 600px) {
+ #export-form { position: absolute; }
}
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/public/js/bootstrap.min.js b/cadline/docroot/iskolak/public/js/bootstrap.min.js
index b13ae6bf..ccde3f4b 100644
--- a/cadline/docroot/iskolak/public/js/bootstrap.min.js
+++ b/cadline/docroot/iskolak/public/js/bootstrap.min.js
@@ -1,6 +1,6 @@
-/*!
- * Bootstrap v4.4.1 (https://getbootstrap.com/)
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
+/*!
+ * Bootstrap v4.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Y.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Se,popperConfig:null},Fe="show",Ue="out",We={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,INSERTED:"inserted"+Oe,CLICK:"click"+Oe,FOCUSIN:"focusin"+Oe,FOCUSOUT:"focusout"+Oe,MOUSEENTER:"mouseenter"+Oe,MOUSELEAVE:"mouseleave"+Oe},qe="fade",Me="show",Ke=".tooltip-inner",Qe=".arrow",Be="hover",Ve="focus",Ye="click",ze="manual",Xe=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Me))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(qe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,this._getPopperConfig(a)),g(o).addClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===Ue&&e._leave(null,e)};if(g(this.tip).hasClass(qe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){function e(){n._hoverState!==Fe&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),g(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()}var n=this,i=this.getTipElement(),o=g.Event(this.constructor.Event.HIDE);if(g(this.element).trigger(o),!o.isDefaultPrevented()){if(g(i).removeClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ye]=!1,this._activeTrigger[Ve]=!1,this._activeTrigger[Be]=!1,g(this.tip).hasClass(qe)){var r=_.getTransitionDurationFromElement(i);g(i).one(_.TRANSITION_END,e).emulateTransitionEnd(r)}else e();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Pe+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ke)),this.getTitle()),g(t).removeClass(qe+" "+Me)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=we(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t=t||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},t._getPopperConfig=function(t){var e=this;return l({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Qe},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},{},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,{},e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Re[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==ze){var e=t===Be?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Be?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),this._hideModalHandler=function(){i.element&&i.hide()},g(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==t||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ve:Be]=!0),g(e.getTipElement()).hasClass(Me)||e._hoverState===Fe?e._hoverState=Fe:(clearTimeout(e._timeout),e._hoverState=Fe,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Fe&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ve:Be]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ue,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Ue&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==je.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(Ae,t,this.constructor.DefaultType),t.sanitize&&(t.template=we(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Le);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(qe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ne),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ne,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return Ae}},{key:"DATA_KEY",get:function(){return Ne}},{key:"Event",get:function(){return We}},{key:"EVENT_KEY",get:function(){return Oe}},{key:"DefaultType",get:function(){return He}}]),i}();g.fn[Ae]=Xe._jQueryInterface,g.fn[Ae].Constructor=Xe,g.fn[Ae].noConflict=function(){return g.fn[Ae]=ke,Xe._jQueryInterface};var $e="popover",Ge="bs.popover",Je="."+Ge,Ze=g.fn[$e],tn="bs-popover",en=new RegExp("(^|\\s)"+tn+"\\S+","g"),nn=l({},Xe.Default,{placement:"right",trigger:"click",content:"",template:''}),on=l({},Xe.DefaultType,{content:"(string|element|function)"}),rn="fade",sn="show",an=".popover-header",ln=".popover-body",cn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,INSERTED:"inserted"+Je,CLICK:"click"+Je,FOCUSIN:"focusin"+Je,FOCUSOUT:"focusout"+Je,MOUSEENTER:"mouseenter"+Je,MOUSELEAVE:"mouseleave"+Je},hn=function(t){function i(){return t.apply(this,arguments)||this}!function(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}(i,t);var e=i.prototype;return e.isWithContent=function(){return this.getTitle()||this._getContent()},e.addAttachmentClass=function(t){g(this.getTipElement()).addClass(tn+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},e.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(an),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ln),e),t.removeClass(rn+" "+sn)},e._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},e._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(en);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active",Qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Bn=".dropdown-toggle",Vn="> .dropdown-menu .active",Yn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(Rn)||g(this._element).hasClass(xn))){var t,i,e=g(this._element).closest(qn)[0],o=_.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?Kn:Mn;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(jn.HIDE,{relatedTarget:this._element}),a=g.Event(jn.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(jn.HIDDEN,{relatedTarget:n._element}),e=g.Event(jn.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,kn),this._element=null},t._activate=function(t,e,n){function i(){return o._transitionComplete(t,r,n)}var o=this,r=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?g(e).children(Mn):g(e).find(Kn))[0],s=n&&r&&g(r).hasClass(Fn);if(r&&s){var a=_.getTransitionDurationFromElement(r);g(r).removeClass(Un).one(_.TRANSITION_END,i).emulateTransitionEnd(a)}else i()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(Rn);var i=g(e.parentNode).find(Vn)[0];i&&g(i).removeClass(Rn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(g(t).addClass(Rn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(Fn)&&t.classList.add(Un),t.parentNode&&g(t.parentNode).hasClass(Hn)){var o=g(t).closest(Wn)[0];if(o){var r=[].slice.call(o.querySelectorAll(Bn));g(r).addClass(Rn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(kn);if(e||(e=new i(this),t.data(kn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),i}();g(document).on(jn.CLICK_DATA_API,Qn,function(t){t.preventDefault(),Yn._jQueryInterface.call(g(this),"show")}),g.fn.tab=Yn._jQueryInterface,g.fn.tab.Constructor=Yn,g.fn.tab.noConflict=function(){return g.fn.tab=Ln,Yn._jQueryInterface};var zn="toast",Xn="bs.toast",$n="."+Xn,Gn=g.fn[zn],Jn={CLICK_DISMISS:"click.dismiss"+$n,HIDE:"hide"+$n,HIDDEN:"hidden"+$n,SHOW:"show"+$n,SHOWN:"shown"+$n},Zn="fade",ti="hide",ei="show",ni="showing",ii={animation:"boolean",autohide:"boolean",delay:"number"},oi={animation:!0,autohide:!0,delay:500},ri='[data-dismiss="toast"]',si=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this,e=g.Event(Jn.SHOW);if(g(this._element).trigger(e),!e.isDefaultPrevented()){this._config.animation&&this._element.classList.add(Zn);var n=function(){t._element.classList.remove(ni),t._element.classList.add(ei),g(t._element).trigger(Jn.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(ti),_.reflow(this._element),this._element.classList.add(ni),this._config.animation){var i=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},t.hide=function(){if(this._element.classList.contains(ei)){var t=g.Event(Jn.HIDE);g(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ei)&&this._element.classList.remove(ei),g(this._element).off(Jn.CLICK_DISMISS),g.removeData(this._element,Xn),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},oi,{},g(this._element).data(),{},"object"==typeof t&&t?t:{}),_.typeCheckConfig(zn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(Jn.CLICK_DISMISS,ri,function(){return t.hide()})},t._close=function(){function t(){e._element.classList.add(ti),g(e._element).trigger(Jn.HIDDEN)}var e=this;if(this._element.classList.remove(ei),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,t).emulateTransitionEnd(n)}else t()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Xn);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Xn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"DefaultType",get:function(){return ii}},{key:"Default",get:function(){return oi}}]),i}();g.fn[zn]=si._jQueryInterface,g.fn[zn].Constructor=si,g.fn[zn].noConflict=function(){return g.fn[zn]=Gn,si._jQueryInterface},t.Alert=v,t.Button=H,t.Carousel=ut,t.Collapse=wt,t.Dropdown=ee,t.Modal=Te,t.Popover=hn,t.Scrollspy=On,t.Tab=Yn,t.Toast=si,t.Tooltip=Xe,t.Util=_,Object.defineProperty(t,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/cadline/docroot/iskolak/public/js/gijgo.min.js b/cadline/docroot/iskolak/public/js/gijgo.min.js
index e9086335..c11f9929 100644
--- a/cadline/docroot/iskolak/public/js/gijgo.min.js
+++ b/cadline/docroot/iskolak/public/js/gijgo.min.js
@@ -1,8 +1,8 @@
-/*
- * Gijgo JavaScript Library v1.9.13
- * http://gijgo.com/
- *
- * Copyright 2014, 2019 gijgo.com
- * Released under the MIT license
- */
+/*
+ * Gijgo JavaScript Library v1.9.13
+ * http://gijgo.com/
+ *
+ * Copyright 2014, 2019 gijgo.com
+ * Released under the MIT license
+ */
var gj={widget:function(){this.xhr=null,this.generateGUID=function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()},this.mouseX=function(e){if(e){if(e.pageX)return e.pageX;if(e.clientX)return e.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);if(e.touches&&e.touches.length)return e.touches[0].pageX;if(e.changedTouches&&e.changedTouches.length)return e.changedTouches[0].pageX;if(e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length)return e.originalEvent.touches[0].pageX;if(e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length)return e.originalEvent.touches[0].pageX}return null},this.mouseY=function(e){if(e){if(e.pageY)return e.pageY;if(e.clientY)return e.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);if(e.touches&&e.touches.length)return e.touches[0].pageY;if(e.changedTouches&&e.changedTouches.length)return e.changedTouches[0].pageY;if(e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length)return e.originalEvent.touches[0].pageY;if(e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches.length)return e.originalEvent.touches[0].pageY}return null}}};gj.widget.prototype.init=function(e,t){var r,a,i;for(r in this.attr("data-type",t),a=$.extend(!0,{},this.getHTMLConfig()||{}),$.extend(!0,a,e||{}),i=this.getConfig(a,t),this.attr("data-guid",i.guid),this.data(i),i)gj[t].events.hasOwnProperty(r)&&(this.on(r,i[r]),delete i[r]);for(plugin in gj[t].plugins)gj[t].plugins.hasOwnProperty(plugin)&&gj[t].plugins[plugin].configure(this,i,a);return this},gj.widget.prototype.getConfig=function(e,t){var r,a,i,o;for(o in r=$.extend(!0,{},gj[t].config.base),a=e.hasOwnProperty("uiLibrary")?e.uiLibrary:r.uiLibrary,gj[t].config[a]&&$.extend(!0,r,gj[t].config[a]),i=e.hasOwnProperty("iconsLibrary")?e.iconsLibrary:r.iconsLibrary,gj[t].config[i]&&$.extend(!0,r,gj[t].config[i]),gj[t].plugins)gj[t].plugins.hasOwnProperty(o)&&($.extend(!0,r,gj[t].plugins[o].config.base),gj[t].plugins[o].config[a]&&$.extend(!0,r,gj[t].plugins[o].config[a]),gj[t].plugins[o].config[i]&&$.extend(!0,r,gj[t].plugins[o].config[i]));return $.extend(!0,r,e),r.guid||(r.guid=this.generateGUID()),r},gj.widget.prototype.getHTMLConfig=function(){var e=this.data(),t=this[0].attributes;return t.width&&(e.width=t.width.value),t.height&&(e.height=t.height.value),t.value&&(e.value=t.value.value),t.align&&(e.align=t.align.value),e&&e.source&&(e.dataSource=e.source,delete e.source),e},gj.widget.prototype.createDoneHandler=function(){var e=this;return function(t){"string"==typeof t&&JSON&&(t=JSON.parse(t)),gj[e.data("type")].methods.render(e,t)}},gj.widget.prototype.createErrorHandler=function(){return function(e){e&&e.statusText&&"abort"!==e.statusText&&alert(e.statusText)}},gj.widget.prototype.reload=function(e){var t,r,a=this.data(),i=this.data("type");return void 0===a.dataSource&&gj[i].methods.useHtmlDataSource(this,a),$.extend(a.params,e),$.isArray(a.dataSource)?(r=gj[i].methods.filter(this),gj[i].methods.render(this,r)):"string"==typeof a.dataSource?(t={url:a.dataSource,data:a.params},this.xhr&&this.xhr.abort(),this.xhr=$.ajax(t).done(this.createDoneHandler()).fail(this.createErrorHandler())):"object"==typeof a.dataSource&&(a.dataSource.data||(a.dataSource.data={}),$.extend(a.dataSource.data,a.params),"json"===(t=$.extend(!0,{},a.dataSource)).dataType&&"object"==typeof t.data&&(t.data=JSON.stringify(t.data)),t.success||(t.success=this.createDoneHandler()),t.error||(t.error=this.createErrorHandler()),this.xhr&&this.xhr.abort(),this.xhr=$.ajax(t)),this},gj.documentManager={events:{},subscribeForEvent:function(e,t,r){if(gj.documentManager.events[e]&&0!==gj.documentManager.events[e].length){if(gj.documentManager.events[e][t])throw"Event "+e+' for widget with guid="'+t+'" is already attached.';gj.documentManager.events[e].push({widgetId:t,callback:r})}else gj.documentManager.events[e]=[{widgetId:t,callback:r}],$(document).on(e,gj.documentManager.executeCallbacks)},executeCallbacks:function(e){var t=gj.documentManager.events[e.type];if(t)for(var r=0;r-1)n=new Date(parseInt(e.substr(6),10));else if(e){for(o=t.split(/[\s,-\.\/\/\:]+/),(i=e.split(/[\s]+/)).length!=o.length&&(i=e.split(/[\s,-\.\/\/\:]+/)),a=0;a-1?l=parseInt(i[a],10):["m","mm"].indexOf(o[a])>-1?s=parseInt(i[a],10)-1:"mmm"===o[a]?s=gj.core.messages[r||"en-us"].monthShortNames.indexOf(i[a]):"mmmm"===o[a]?s=gj.core.messages[r||"en-us"].monthNames.indexOf(i[a]):["yy","yyyy"].indexOf(o[a])>-1?(d=parseInt(i[a],10),"yy"===o[a]&&(d+=2e3)):["h","hh","H","HH"].indexOf(o[a])>-1?c=parseInt(i[a],10):["M","MM"].indexOf(o[a])>-1&&(g=parseInt(i[a],10));n=new Date(d,s,l,c,g)}}else"number"==typeof e?n=new Date(e):e instanceof Date&&(n=e);return n},formatDate:function(e,t,r){var a,o,n="",d=t.split(/[\s,-\.\/\/\:]+/),s=t.split(/s+|M+|H+|h+|t+|T+|d+|m+|y+/);for(s=s.splice(1,s.length-2),i=0;i12?e.getHours()%12:e.getHours())+a;break;case"hh":o=e.getHours()>12?e.getHours()%12:e.getHours(),n+=gj.core.pad(o)+a;break;case"tt":n+=(e.getHours()>=12?"pm":"am")+a;break;case"TT":n+=(e.getHours()>=12?"PM":"AM")+a;break;case"d":n+=e.getDate()+a;break;case"dd":n+=gj.core.pad(e.getDate())+a;break;case"ddd":n+=gj.core.messages[r||"en-us"].weekDaysShort[e.getDay()]+a;break;case"dddd":n+=gj.core.messages[r||"en-us"].weekDays[e.getDay()]+a;break;case"m":n+=e.getMonth()+1+a;break;case"mm":n+=gj.core.pad(e.getMonth()+1)+a;break;case"mmm":n+=gj.core.messages[r||"en-us"].monthShortNames[e.getMonth()]+a;break;case"mmmm":n+=gj.core.messages[r||"en-us"].monthNames[e.getMonth()]+a;break;case"yy":n+=e.getFullYear().toString().substr(2)+a;break;case"yyyy":n+=e.getFullYear()+a}return n},pad:function(e,t){for(e=String(e),t=t||2;e.length0?t:0),e.css("top",r>0?r:0)},isIE:function(){return!!navigator.userAgent.match(/Trident/g)||!!navigator.userAgent.match(/MSIE/g)},setChildPosition:function(e,t){var r=e.getBoundingClientRect(),a=gj.core.height(e,!0),i=gj.core.height(t,!0),o=gj.core.width(e,!0),n=gj.core.width(t,!0),d=window.scrollY||window.pageYOffset||0,s=window.scrollX||window.pageXOffset||0;r.top+a+i>window.innerHeight&&r.top>i?t.style.top=Math.round(r.top+d-i-3)+"px":t.style.top=Math.round(r.top+d+a+3)+"px",r.left+n>document.body.clientWidth?t.style.left=Math.round(r.left+s+o-n)+"px":t.style.left=Math.round(r.left+s)+"px"},height:function(e,t){var r,a=window.getComputedStyle(e);return"border-box"===a.boxSizing?(r=parseInt(a.height,10),gj.core.isIE()&&(r+=parseInt(a.paddingTop||0,10)+parseInt(a.paddingBottom||0,10),r+=parseInt(a.borderTopWidth||0,10)+parseInt(a.borderBottomWidth||0,10))):(r=parseInt(a.height,10),r+=parseInt(a.paddingTop||0,10)+parseInt(a.paddingBottom||0,10),r+=parseInt(a.borderTopWidth||0,10)+parseInt(a.borderBottomWidth||0,10)),t&&(r+=parseInt(a.marginTop||0,10)+parseInt(a.marginBottom||0,10)),r},width:function(e,t){var r,a=window.getComputedStyle(e);return"border-box"===a.boxSizing?r=parseInt(a.width,10):(r=parseInt(a.width,10),r+=parseInt(a.paddingLeft||0,10)+parseInt(a.paddingRight||0,10),r+=parseInt(a.borderLeftWidth||0,10)+parseInt(a.borderRightWidth||0,10)),t&&(r+=parseInt(a.marginLeft||0,10)+parseInt(a.marginRight||0,10)),r},addClasses:function(e,t){var r,a;if(t)for(a=t.split(" "),r=0;re.clientHeight?e:gj.core.getScrollParent(e.parentNode)}},gj.picker={messages:{"en-us":{}}},gj.picker.methods={initialize:function(e,t,r){var a,i=r.createPicker(e,t),o=e.parent('div[role="wrapper"]');(a="bootstrap"===t.uiLibrary?$(''+t.icons.rightIcon+" "):"bootstrap4"===t.uiLibrary?$(''+t.icons.rightIcon+" "):$(t.icons.rightIcon)).attr("role","right-icon"),0===o.length?(o=$('
').addClass(t.style.wrapper),e.wrap(o)):o.addClass(t.style.wrapper),o=e.parent('div[role="wrapper"]'),t.width&&o.css("width",t.width),e.val(t.value).addClass(t.style.input).attr("role","input"),t.fontSize&&e.css("font-size",t.fontSize),"bootstrap"===t.uiLibrary||"bootstrap4"===t.uiLibrary?"small"===t.size?(o.addClass("input-group-sm"),e.addClass("form-control-sm")):"large"===t.size&&(o.addClass("input-group-lg"),e.addClass("form-control-lg")):"small"===t.size?o.addClass("small"):"large"===t.size&&o.addClass("large"),a.on("click",function(t){i.is(":visible")?e.close():e.open()}),o.append(a),!0!==t.footer&&(e.on("blur",function(){e.timeout=setTimeout(function(){e.close()},500)}),i.mousedown(function(){return clearTimeout(e.timeout),e.focus(),!1}),i.on("click",function(){clearTimeout(e.timeout),e.focus()}))}},gj.picker.widget=function(e,t){var r=gj.picker.methods;return this.destroy=function(){return r.destroy(this)},e},gj.picker.widget.prototype=new gj.widget,gj.picker.widget.constructor=gj.picker.widget,gj.picker.widget.prototype.init=function(e,t,r){return gj.widget.prototype.init.call(this,e,t),this.attr("data-"+t,"true"),gj.picker.methods.initialize(this,this.data(),gj[t].methods),this},gj.picker.widget.prototype.open=function(e){var t=this.data(),r=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return r.show(),r.closest('div[role="modal"]').show(),t.modal?gj.core.center(r):(gj.core.setChildPosition(this[0],r[0]),this.focus()),clearTimeout(this.timeout),gj[e].events.open(this),this},gj.picker.widget.prototype.close=function(e){var t=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return t.hide(),t.closest('div[role="modal"]').hide(),gj[e].events.close(this),this},gj.picker.widget.prototype.destroy=function(e){var t=this.data(),r=this.parent(),a=$("body").find('[role="picker"][guid="'+this.attr("data-guid")+'"]');return t&&(this.off(),a.parent('[role="modal"]').length>0&&a.unwrap(),a.remove(),this.removeData(),this.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-"+e),this.removeClass(),r.children('[role="right-icon"]').remove(),this.unwrap()),this},gj.dialog={plugins:{},messages:{}},gj.dialog.config={base:{autoOpen:!0,closeButtonInHeader:!0,closeOnEscape:!0,draggable:!0,height:"auto",locale:"en-us",maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,modal:!1,resizable:!1,scrollable:!1,title:void 0,uiLibrary:void 0,width:300,style:{modal:"gj-modal",content:"gj-dialog-md",header:"gj-dialog-md-header gj-unselectable",headerTitle:"gj-dialog-md-title",headerCloseButton:"gj-dialog-md-close",body:"gj-dialog-md-body",footer:"gj-dialog-footer gj-dialog-md-footer"}},bootstrap:{style:{modal:"modal",content:"modal-content gj-dialog-bootstrap",header:"modal-header",headerTitle:"modal-title",headerCloseButton:"close",body:"modal-body",footer:"gj-dialog-footer modal-footer"}},bootstrap4:{style:{modal:"modal",content:"modal-content gj-dialog-bootstrap4",header:"modal-header",headerTitle:"modal-title",headerCloseButton:"close",body:"modal-body",footer:"gj-dialog-footer modal-footer"}}},gj.dialog.events={initialized:function(e){e.trigger("initialized")},opening:function(e){e.trigger("opening")},opened:function(e){e.trigger("opened")},closing:function(e){e.trigger("closing")},closed:function(e){e.trigger("closed")},drag:function(e){e.trigger("drag")},dragStart:function(e){e.trigger("dragStart")},dragStop:function(e){e.trigger("dragStop")},resize:function(e){e.trigger("resize")},resizeStart:function(e){e.trigger("resizeStart")},resizeStop:function(e){e.trigger("resizeStop")}},gj.dialog.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"dialog"),gj.dialog.methods.localization(this),gj.dialog.methods.initialize(this),gj.dialog.events.initialized(this),this},localization:function(e){var t=e.data();void 0===t.title&&(t.title=gj.dialog.messages[t.locale].DefaultTitle)},getHTMLConfig:function(){var e=gj.widget.prototype.getHTMLConfig.call(this),t=this[0].attributes;return t.title&&(e.title=t.title.value),e},initialize:function(e){var t,r,a,i=e.data();e.addClass(i.style.content),gj.dialog.methods.setSize(e),i.closeOnEscape&&$(document).keyup(function(t){27===t.keyCode&&e.close()}),0===(r=e.children('div[data-role="body"]')).length?(r=$('
').addClass(i.style.body),e.wrapInner(r)):r.addClass(i.style.body),t=gj.dialog.methods.renderHeader(e),a=e.children('div[data-role="footer"]').addClass(i.style.footer),e.find('[data-role="close"]').on("click",function(){e.close()}),gj.draggable&&(i.draggable&&gj.dialog.methods.draggable(e,t),i.resizable&&gj.dialog.methods.resizable(e)),i.scrollable&&i.height&&(e.addClass("gj-dialog-scrollable"),e.on("opened",function(){e.children('div[data-role="body"]').css("height",i.height-t.outerHeight()-(a.length?a.outerHeight():0))})),gj.core.center(e),i.modal&&e.wrapAll('
'),i.autoOpen&&e.open()},setSize:function(e){var t=e.data();t.width&&e.css("width",t.width),t.height&&e.css("height",t.height)},renderHeader:function(e){var t,r,a,i=e.data();return 0===(t=e.children('div[data-role="header"]')).length&&(t=$('
'),e.prepend(t)),t.addClass(i.style.header),0===(r=t.find('[data-role="title"]')).length&&(r=$(''+i.title+" "),t.append(r)),r.addClass(i.style.headerTitle),0===(a=t.find('[data-role="close"]')).length&&i.closeButtonInHeader?((a=$('× ')).addClass(i.style.headerCloseButton),t.append(a)):a.length>0&&!1===i.closeButtonInHeader?a.hide():a.addClass(i.style.headerCloseButton),t},draggable:function(e,t){e.appendTo("body"),t.addClass("gj-draggable"),e.draggable({handle:t,start:function(){e.addClass("gj-unselectable"),gj.dialog.events.dragStart(e)},stop:function(){e.removeClass("gj-unselectable"),gj.dialog.events.dragStop(e)}})},resizable:function(e){var t={drag:gj.dialog.methods.resize,start:function(){e.addClass("gj-unselectable"),gj.dialog.events.resizeStart(e)},stop:function(){this.removeAttribute("style"),e.removeClass("gj-unselectable"),gj.dialog.events.resizeStop(e)}};e.append($('
').draggable($.extend(!0,{horizontal:!1},t))),e.append($('
').draggable($.extend(!0,{vertical:!1},t))),e.append($('
').draggable($.extend(!0,{horizontal:!1},t))),e.append($('
').draggable($.extend(!0,{vertical:!1},t))),e.append($('
').draggable($.extend(!0,{},t))),e.append($('
').draggable($.extend(!0,{},t))),e.append($('
').draggable($.extend(!0,{},t))),e.append($('
').draggable($.extend(!0,{},t)))},resize:function(e,t){var r,a,i,o,n,d,s,l,c=!1;return a=(r=$(this)).parent(),i=gj.core.position(this),offset={top:t.top-i.top,left:t.left-i.left},o=a.data(),r.hasClass("gj-resizable-n")?(n=a.height()-offset.top,s=a.offset().top+offset.top):r.hasClass("gj-resizable-e")?d=a.width()+offset.left:r.hasClass("gj-resizable-s")?n=a.height()+offset.top:r.hasClass("gj-resizable-w")?(d=a.width()-offset.left,l=a.offset().left+offset.left):r.hasClass("gj-resizable-ne")?(n=a.height()-offset.top,s=a.offset().top+offset.top,d=a.width()+offset.left):r.hasClass("gj-resizable-nw")?(n=a.height()-offset.top,s=a.offset().top+offset.top,d=a.width()-offset.left,l=a.offset().left+offset.left):r.hasClass("gj-resizable-se")?(n=a.height()+offset.top,d=a.width()+offset.left):r.hasClass("gj-resizable-sw")&&(n=a.height()+offset.top,d=a.width()-offset.left,l=a.offset().left+offset.left),n&&(!o.minHeight||n>=o.minHeight)&&(!o.maxHeight||n<=o.maxHeight)&&(a.height(n),s&&a.css("top",s),c=!0),d&&(!o.minWidth||d>=o.minWidth)&&(!o.maxWidth||d<=o.maxWidth)&&(a.width(d),l&&a.css("left",l),c=!0),c&&gj.dialog.events.resize(a),c},open:function(e,t){var r;return gj.dialog.events.opening(e),e.css("display","block"),e.closest('div[data-role="modal"]').css("display","block"),(r=e.children('div[data-role="footer"]')).length&&r.outerHeight()&&e.children('div[data-role="body"]').css("margin-bottom",r.outerHeight()),void 0!==t&&e.find('[data-role="title"]').html(t),gj.dialog.events.opened(e),e},close:function(e){return e.is(":visible")&&(gj.dialog.events.closing(e),e.css("display","none"),e.closest('div[data-role="modal"]').css("display","none"),gj.dialog.events.closed(e)),e},isOpen:function(e){return e.is(":visible")},content:function(e,t){var r=e.children('div[data-role="body"]');return void 0===t?r.html():r.html(t)},destroy:function(e,t){var r=e.data();return r&&(!1===t?e.remove():(e.close(),e.off(),e.removeData(),e.removeAttr("data-type"),e.removeClass(r.style.content),e.find('[data-role="header"]').removeClass(r.style.header),e.find('[data-role="title"]').removeClass(r.style.headerTitle),e.find('[data-role="close"]').remove(),e.find('[data-role="body"]').removeClass(r.style.body),e.find('[data-role="footer"]').removeClass(r.style.footer))),e}},gj.dialog.widget=function(e,t){var r=gj.dialog.methods;return this.open=function(e){return r.open(this,e)},this.close=function(){return r.close(this)},this.isOpen=function(){return r.isOpen(this)},this.content=function(e){return r.content(this,e)},this.destroy=function(e){return r.destroy(this,e)},$.extend(e,this),"dialog"!==e.attr("data-type")&&r.init.call(e,t),e},gj.dialog.widget.prototype=new gj.widget,gj.dialog.widget.constructor=gj.dialog.widget,gj.dialog.widget.prototype.getHTMLConfig=gj.dialog.methods.getHTMLConfig,jQuery.fn.dialog=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.dialog.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.dialog.widget(this,e)}},gj.dialog.messages["en-us"]={Close:"Close",DefaultTitle:"Dialog"},gj.draggable={plugins:{}},gj.draggable.config={base:{handle:void 0,vertical:!0,horizontal:!0,containment:void 0}},gj.draggable.methods={init:function(e){var t,r,a=this;return gj.widget.prototype.init.call(this,e,"draggable"),r=this.data(),a.attr("data-draggable","true"),(t=gj.draggable.methods.getHandleElement(a)).on("touchstart mousedown",function(e){var i=gj.core.position(a[0]);a[0].style.top=i.top+"px",a[0].style.left=i.left+"px",a[0].style.position="fixed",a.attr("draggable-dragging",!0),a.removeAttr("draggable-x").removeAttr("draggable-y"),gj.documentManager.subscribeForEvent("touchmove",a.data("guid"),gj.draggable.methods.createMoveHandler(a,t,r)),gj.documentManager.subscribeForEvent("mousemove",a.data("guid"),gj.draggable.methods.createMoveHandler(a,t,r))}),gj.documentManager.subscribeForEvent("mouseup",a.data("guid"),gj.draggable.methods.createUpHandler(a)),gj.documentManager.subscribeForEvent("touchend",a.data("guid"),gj.draggable.methods.createUpHandler(a)),gj.documentManager.subscribeForEvent("touchcancel",a.data("guid"),gj.draggable.methods.createUpHandler(a)),a},getHandleElement:function(e){var t=e.data("handle");return t&&t.length?t:e},createUpHandler:function(e){return function(t){"true"===e.attr("draggable-dragging")&&(e.attr("draggable-dragging",!1),gj.documentManager.unsubscribeForEvent("mousemove",e.data("guid")),gj.documentManager.unsubscribeForEvent("touchmove",e.data("guid")),gj.draggable.events.stop(e,{x:e.mouseX(t),y:e.mouseY(t)}))}},createMoveHandler:function(e,t,r){return function(t){var a,i,o,n,d,s;"true"===e.attr("draggable-dragging")&&(a=Math.round(e.mouseX(t)),i=Math.round(e.mouseY(t)),d=e.attr("draggable-x"),s=e.attr("draggable-y"),d&&s?(o=r.horizontal?a-parseInt(d,10):0,n=r.vertical?i-parseInt(s,10):0,gj.draggable.methods.move(e[0],r,o,n,a,i)):gj.draggable.events.start(e,a,i),e.attr("draggable-x",a),e.attr("draggable-y",i))}},move:function(e,t,r,a,i,o){var n,d,s,l=gj.core.position(e),c=l.top+a,g=l.left+r;t.containment&&(d=(n=gj.core.position(t.containment)).top+gj.core.height(t.containment)-gj.core.height(e),s=n.left+gj.core.width(t.containment)-gj.core.width(e),c>n.top&&c=o||n.bottom<=o)&&(c=l.top):c=c<=n.top?n.top+1:d-1,g>n.left&&g=i||n.right<=i)&&(g=l.left):g=g<=n.left?n.left+1:s-1),!1!==gj.draggable.events.drag($(e),g,c,i,o)&&(e.style.top=c+"px",e.style.left=g+"px")},destroy:function(e){return"true"===e.attr("data-draggable")&&(gj.documentManager.unsubscribeForEvent("mouseup",e.data("guid")),e.removeData(),e.removeAttr("data-guid").removeAttr("data-type").removeAttr("data-draggable"),e.removeAttr("draggable-x").removeAttr("draggable-y").removeAttr("draggable-dragging"),e[0].style.top="",e[0].style.left="",e[0].style.position="",e.off("drag").off("start").off("stop"),gj.draggable.methods.getHandleElement(e).off("mousedown")),e}},gj.draggable.events={drag:function(e,t,r,a,i){return e.triggerHandler("drag",[{left:t,top:r},{x:a,y:i}])},start:function(e,t,r){e.triggerHandler("start",[{x:t,y:r}])},stop:function(e,t){e.triggerHandler("stop",[t])}},gj.draggable.widget=function(e,t){var r=gj.draggable.methods;return e.destroy||(this.destroy=function(){return r.destroy(this)}),$.extend(e,this),"true"!==e.attr("data-draggable")&&r.init.call(e,t),e},gj.draggable.widget.prototype=new gj.widget,gj.draggable.widget.constructor=gj.draggable.widget,jQuery.fn.draggable=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.draggable.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.draggable.widget(this,e)}},gj.droppable={plugins:{}},gj.droppable.config={hoverClass:void 0},gj.droppable.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"droppable"),this.attr("data-droppable","true"),gj.documentManager.subscribeForEvent("mousedown",this.data("guid"),gj.droppable.methods.createMouseDownHandler(this)),gj.documentManager.subscribeForEvent("mousemove",this.data("guid"),gj.droppable.methods.createMouseMoveHandler(this)),gj.documentManager.subscribeForEvent("mouseup",this.data("guid"),gj.droppable.methods.createMouseUpHandler(this)),this},createMouseDownHandler:function(e){return function(t){e.isDragging=!0}},createMouseMoveHandler:function(e){return function(t){if(e.isDragging){var r=e.data("hoverClass"),a={x:e.mouseX(t),y:e.mouseY(t)},i=gj.droppable.methods.isOver(e,a);i!=e.isOver&&(i?(r&&e.addClass(r),gj.droppable.events.over(e,a)):(r&&e.removeClass(r),gj.droppable.events.out(e))),e.isOver=i}}},createMouseUpHandler:function(e){return function(t){var r={left:e.mouseX(t),top:e.mouseY(t)};e.isDragging=!1,gj.droppable.methods.isOver(e,r)&&gj.droppable.events.drop(e)}},isOver:function(e,t){var r=e.offset().top,a=e.offset().left;return t.x>a&&t.xr&&t.y ',desc:' '}},fontawesome:{icons:{asc:' ',desc:' '}},glyphicons:{icons:{asc:' ',desc:' '}}},gj.grid.events={beforeEmptyRowInsert:function(e,t){return e.triggerHandler("beforeEmptyRowInsert",[t])},dataBinding:function(e,t){return e.triggerHandler("dataBinding",[t])},dataBound:function(e,t,r){return e.triggerHandler("dataBound",[t,r])},rowDataBound:function(e,t,r,a){return e.triggerHandler("rowDataBound",[t,r,a])},cellDataBound:function(e,t,r,a,i){return e.triggerHandler("cellDataBound",[t,r,a,i])},rowSelect:function(e,t,r,a){return e.triggerHandler("rowSelect",[t,r,a])},rowUnselect:function(e,t,r,a){return e.triggerHandler("rowUnselect",[t,r,a])},rowRemoving:function(e,t,r,a){return e.triggerHandler("rowRemoving",[t,r,a])},destroying:function(e){return e.triggerHandler("destroying")},columnHide:function(e,t){return e.triggerHandler("columnHide",[t])},columnShow:function(e,t){return e.triggerHandler("columnShow",[t])},initialized:function(e){return e.triggerHandler("initialized")},dataFiltered:function(e,t){return e.triggerHandler("dataFiltered",[t])}},gj.grid.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"grid"),gj.grid.methods.initialize(this),this.data("autoLoad")&&this.reload(),this},getConfig:function(e,t){var r=gj.widget.prototype.getConfig.call(this,e,t);return gj.grid.methods.setDefaultColumnConfig(r.columns,r.defaultColumnSettings),r},setDefaultColumnConfig:function(e,t){var r,a;if(e&&e.length)for(a=0;a tr > th").each(function(){var t=$(this),r=t.text(),a=gj.widget.prototype.getHTMLConfig.call(t);a.title=r,a.field||(a.field=r),a.events&&(a.events=gj.grid.methods.eventsParser(a.events)),e.columns.push(a)}),e},eventsParser:function(events){var result={},list,i,key,func,position;for(list=events.split(","),i=0;i0&&(key=$.trim(list[i].substr(0,position)),func=$.trim(list[i].substr(position+1,list[i].length)),result[key]=eval("window."+func));return result},initialize:function(e){var t=e.data(),r=e.parent('div[data-role="wrapper"]');gj.grid.methods.localization(t),0===r.length?(r=$('
').addClass(t.style.wrapper),e.wrap(r)):r.addClass(t.style.wrapper),t.width&&e.parent().css("width",t.width),t.minWidth&&e.css("min-width",t.minWidth),t.fontSize&&e.css("font-size",t.fontSize),"autogrow"===t.headerRowHeight&&e.addClass("autogrow-header-row"),"fixed"===t.bodyRowHeight&&e.addClass("fixed-body-rows"),e.addClass(t.style.table),"checkbox"===t.selectionMethod&&t.columns.splice(gj.grid.methods.getColumnPositionNotInRole(e),0,{title:"",width:t.defaultCheckBoxColumnWidth,align:"center",type:"checkbox",role:"selectRow",events:{click:function(t){gj.grid.methods.setSelected(e,t.data.id,$(this).closest("tr"))}},headerCssClass:"gj-grid-select-all",stopPropagation:!0}),0===e.children("tbody").length&&e.append($(" ")),gj.grid.methods.renderHeader(e),gj.grid.methods.appendEmptyRow(e," "),gj.grid.events.initialized(e)},localization:function(e){e.notFoundText||(e.notFoundText=gj.grid.messages[e.locale].NoRecordsFound)},renderHeader:function(e){var t,r,a,i,o,n,d,s,l;for(r=(t=e.data()).columns,a=t.style.header,0===(i=e.children("thead")).length&&(i=$(" "),e.prepend(i)),o=$(' '),s=0;s '),r[s].width?n.attr("width",r[s].width):"checkbox"===r[s].type&&n.attr("width",t.defaultIconColumnWidth),n.addClass(a.cell),r[s].headerCssClass&&n.addClass(r[s].headerCssClass),n.css("text-align",r[s].align||"left"),"checkbox"===t.selectionMethod&&"multiple"===t.selectionType&&"checkbox"===r[s].type&&"selectRow"===r[s].role?(0===(l=n.find('input[data-role="selectAll"]')).length&&(l=$(' '),n.append(l),l.checkbox({uiLibrary:t.uiLibrary})),l.off("click").on("click",function(){this.checked?e.selectAll():e.unSelectAll()})):(d=$('
').html(void 0===r[s].title?r[s].field:r[s].title),n.append(d),r[s].sortable&&(d.addClass(a.sortable),d.on("click",gj.grid.methods.createSortHandler(e,r[s])))),r[s].hidden&&n.hide(),o.append(n);i.empty().append(o)},createSortHandler:function(e,t){return function(){var r,a={};e.count()>0&&(a[(r=e.data()).paramNames.sortBy]=t.field,t.direction="asc"===t.direction?"desc":"asc",a[r.paramNames.direction]=t.direction,e.reload(a))}},updateHeader:function(e){var t,r,a=e.data(),i=a.params[a.paramNames.sortBy],o=a.params[a.paramNames.direction];e.find('thead tr th [data-role="sorticon"]').remove(),i&&(position=gj.grid.methods.getColumnPosition(e.data("columns"),i),position>-1&&(r=e.find("thead tr th:eq("+position+') div[data-role="title"]'),t=$('
').append("desc"===o?a.icons.desc:a.icons.asc),r.after(t)))},useHtmlDataSource:function(e,t){var r,a,i,o,n=[],d=e.find('tbody tr[data-role != "empty"]');for(r=0;r ').addClass(d.style.loadingCover).css({width:i,height:o,top:n}),(a=$(''+gj.grid.messages[d.locale].Loading+"
").addClass(d.style.loadingText)).insertAfter(e),r.insertAfter(e),a.css({top:n+o/2-a.outerHeight(!1)/2,left:i/2-a.outerWidth(!1)/2}))},stopLoading:function(e){e.parent().find('div[data-role="loading-cover"]').remove(),e.parent().find('div[data-role="loading-text"]').remove()},appendEmptyRow:function(e,t){var r,a,i,o;r=e.data(),a=$(' '),(i=$(" ").css({width:"100%","text-align":"center"})).attr("colspan",gj.grid.methods.countVisibleColumns(e)),o=$("
").html(t||r.notFoundText),i.append(o),a.append(i),gj.grid.events.beforeEmptyRowInsert(e,a),e.append(a)},autoGenerateColumns:function(e,t){var r,a,i,o,n=e.data();if(n.columns=[],t.length>0){for(r=Object.getOwnPropertyNames(t[0]),o=0;o-1&&(i="date")),n.columns.push({field:r[o],type:i});gj.grid.methods.setDefaultColumnConfig(n.columns,n.defaultColumnSettings)}gj.grid.methods.renderHeader(e)},loadData:function(e){var t,r,a,i,o,n,d,s;for(t=e.data(),r=e.getAll(),gj.grid.events.dataBinding(e,r),i=r.length,gj.grid.methods.stopLoading(e),t.autoGenerateColumns&&gj.grid.methods.autoGenerateColumns(e,r),n=e.children("tbody"),"checkbox"===t.selectionMethod&&"multiple"===t.selectionType&&e.find('thead input[data-role="selectAll"]').prop("checked",!1),n.children("tr").not('[data-role="row"]').remove(),0===i&&(n.empty(),gj.grid.methods.appendEmptyRow(e)),o=(d=n.children("tr")).length,a=0;a '),e.children("tbody").append(t)),i=gj.grid.methods.getId(r,d.primaryKey,a+1),t.attr("data-position",a+1),"checkbox"!==d.selectionMethod&&t.on("click",gj.grid.methods.createRowClickHandler(e,i)),n=0;n "),n=$('
'),r.align&&t.css("text-align",r.align),r.cssClass&&t.addClass(r.cssClass),t.append(n),o="create"),gj.grid.methods.renderDisplayElement(e,n,r,a,i,o),"update"===o&&(t.off(),n.off()),r.events)for(d in r.events)r.events.hasOwnProperty(d)&&t.on(d,{id:i,field:r.field,record:a},gj.grid.methods.createCellEventHandler(r,r.events[d]));return r.hidden&&t.hide(),gj.grid.events.cellDataBound(e,n,i,r,a),t},createCellEventHandler:function(e,t){return function(r){e.stopPropagation&&r.stopPropagation(),t.call(this,r)}},renderDisplayElement:function(e,t,r,a,i,o){var n,d;"checkbox"===r.type&&gj.checkbox?"create"===o?(d=$(' ').val(i).prop("checked",!!a[r.field]),r.role&&d.attr("data-role",r.role),t.append(d),d.checkbox({uiLibrary:e.data("uiLibrary")}),"selectRow"===r.role?d.on("click",function(){return!1}):d.prop("disabled",!0)):t.find('input[type="checkbox"]').val(i).prop("checked",!!a[r.field]):"icon"===r.type?"create"===o&&(t.append($(" ").addClass(r.icon).css({cursor:"pointer"})),"bootstrap"===e.data().uiLibrary&&t.children("span").addClass("glyphicon"),r.stopPropagation=!0):r.tmpl?(n=r.tmpl,r.tmpl.replace(/\{(.+?)\}/g,function(e,t){n=n.replace(e,gj.grid.methods.formatText(a[t],r))}),t.html(n)):r.renderer&&"function"==typeof r.renderer?(n=r.renderer(a[r.field],a,t.parent(),t,i,e))&&t.html(n):(a[r.field]=gj.grid.methods.formatText(a[r.field],r),!r.tooltip&&a[r.field]&&t.attr("title",a[r.field]),t.html(a[r.field])),r.tooltip&&"create"===o&&t.attr("title",r.tooltip)},formatText:function(e,t){return e=e&&["date","time","datetime"].indexOf(t.type)>-1?gj.core.formatDate(gj.core.parseDate(e,t.format),t.format):null==e?"":e.toString(),t.decimalDigits&&e&&(e=parseFloat(e).toFixed(t.decimalDigits)),e},setRecordsData:function(e,t){var r=[],a=0,i=e.data();return $.isArray(t)?(r=t,a=t.length):i&&i.mapping&&$.isArray(t[i.mapping.dataField])&&(r=t[i.mapping.dataField],(a=t[i.mapping.totalRecordsField])&&!isNaN(a)||(a=0)),e.data("records",r),e.data("totalRecords",a),r},createRowClickHandler:function(e,t){return function(){gj.grid.methods.setSelected(e,t,$(this))}},selectRow:function(e,t,r,a){var i;return r.addClass(t.style.content.rowSelected),r.attr("data-selected","true"),"checkbox"===t.selectionMethod&&((i=r.find('input[type="checkbox"][data-role="selectRow"]')).length&&!i.prop("checked")&&i.prop("checked",!0),"multiple"===t.selectionType&&e.getSelections().length===e.count(!1)&&e.find('thead input[data-role="selectAll"]').prop("checked",!0)),gj.grid.events.rowSelect(e,r,a,e.getById(a))},unselectRow:function(e,t,r,a){var i;if("true"===r.attr("data-selected"))return r.removeClass(t.style.content.rowSelected),"checkbox"===t.selectionMethod&&((i=r.find('td input[type="checkbox"][data-role="selectRow"]')).length&&i.prop("checked")&&i.prop("checked",!1),"multiple"===t.selectionType&&e.find('thead input[data-role="selectAll"]').prop("checked",!1)),r.removeAttr("data-selected"),gj.grid.events.rowUnselect(e,r,a,e.getById(a))},setSelected:function(e,t,r){var a=e.data();return r&&r.length||(r=gj.grid.methods.getRowById(e,t)),r&&("true"===r.attr("data-selected")?gj.grid.methods.unselectRow(e,a,r,t):("single"===a.selectionType&&r.siblings('[data-selected="true"]').each(function(){var t=$(this),r=gj.grid.methods.getId(t,a.primaryKey,t.data("position"));gj.grid.methods.unselectRow(e,a,t,r)}),gj.grid.methods.selectRow(e,a,r,t))),e},selectAll:function(e){var t=e.data();return e.find('tbody tr[data-role="row"]').each(function(){var r=$(this),a=r.data("position"),i=e.get(a),o=gj.grid.methods.getId(i,t.primaryKey,a);gj.grid.methods.selectRow(e,t,r,o)}),e.find('thead input[data-role="selectAll"]').prop("checked",!0),e},unSelectAll:function(e){var t=e.data();return e.find("tbody tr").each(function(){var r=$(this),a=r.data("position"),i=e.get(a),o=gj.grid.methods.getId(i,t.primaryKey,a);gj.grid.methods.unselectRow(e,t,r,o),r.find('input[type="checkbox"][data-role="selectRow"]').prop("checked",!1)}),e.find('thead input[data-role="selectAll"]').prop("checked",!1),e},getSelected:function(e){var t,r,a,i=null;return(t=e.find('tbody>tr[data-selected="true"]')).length>0&&(a=$(t[0]).data("position"),r=e.get(a),i=gj.grid.methods.getId(r,e.data().primaryKey,a)),i},getSelectedRows:function(e){e.data();return e.find('tbody>tr[data-selected="true"]')},getSelections:function(e){var t,r,a=[],i=e.data(),o=gj.grid.methods.getSelectedRows(e);return 0-1&&(i=gj.grid.methods.getRowById(e,t).find("td:eq("+a+') div[data-role="display"]')),i},setCellContent:function(e,t,r,a){var i,o=gj.grid.methods.getCell(e,t,r);o&&(o.empty(),"object"==typeof a?o.append(a):(i=gj.grid.methods.getColumnInfo(e,r),gj.grid.methods.renderDisplayElement(e,o,i,e.getById(t),t,"update")))},clone:function(e){var t=[];return $.each(e,function(){t.push(this.clone())}),t},getAll:function(e){return e.data("records")},countVisibleColumns:function(e){var t,r,a;for(t=e.data().columns,r=0,a=0;a-1}));return gj.grid.events.dataFiltered(e,i),i},createDefaultSorter:function(e,t){return function(r,a){var i=(r[t]||"").toString(),o=(a[t]||"").toString();return"asc"===e?i.localeCompare(o):o.localeCompare(i)}},destroy:function(e,t,r){return e.data()&&(gj.grid.events.destroying(e),gj.grid.methods.stopLoading(e),e.xhr&&e.xhr.abort(),e.off(),!1===r&&e.parent('div[data-role="wrapper"]').length>0&&e.unwrap(),e.removeData(),!1===t?e.remove():e.removeClass().empty(),e.removeAttr("data-type")),e},showColumn:function(e,t){var r,a=e.data(),i=gj.grid.methods.getColumnPosition(a.columns,t);return i>-1&&(e.find("thead>tr").each(function(){$(this).children("th").eq(i).show()}),$.each(e.find("tbody>tr"),function(){$(this).children("td").eq(i).show()}),a.columns[i].hidden=!1,(r=e.find('tbody > tr[data-role="empty"] > td'))&&r.length&&r.attr("colspan",gj.grid.methods.countVisibleColumns(e)),gj.grid.events.columnShow(e,a.columns[i])),e},hideColumn:function(e,t){var r,a=e.data(),i=gj.grid.methods.getColumnPosition(a.columns,t);return i>-1&&(e.find("thead>tr").each(function(){$(this).children("th").eq(i).hide()}),$.each(e.find("tbody>tr"),function(){$(this).children("td").eq(i).hide()}),a.columns[i].hidden=!0,(r=e.find('tbody > tr[data-role="empty"] > td'))&&r.length&&r.attr("colspan",gj.grid.methods.countVisibleColumns(e)),gj.grid.events.columnHide(e,a.columns[i])),e},isLastRecordVisible:function(){return!0},addRow:function(e,t){var r=e.data();return r.totalRecords=e.data("totalRecords")+1,gj.grid.events.dataBinding(e,[t]),r.records.push(t),$.isArray(r.dataSource)&&r.dataSource.push(t),1===r.totalRecords&&e.children("tbody").empty(),gj.grid.methods.isLastRecordVisible(e)&&gj.grid.methods.renderRow(e,null,t,e.count()-1),gj.grid.events.dataBound(e,[t],r.totalRecords),e},updateRow:function(e,t,r){var a,i=gj.grid.methods.getRowById(e,t),o=e.data();return o.records[i.data("position")-1]=r,$.isArray(o.dataSource)&&(a=gj.grid.methods.getRecVPosById(e,t),o.dataSource[a]=r),gj.grid.methods.renderRow(e,i,r,i.index()),e},removeRow:function(e,t){var r,a=e.data(),i=gj.grid.methods.getRowById(e,t);return gj.grid.events.rowRemoving(e,i,t,e.getById(t)),$.isArray(a.dataSource)&&(r=gj.grid.methods.getRecVPosById(e,t),a.dataSource.splice(r,1)),e.reload(),e},count:function(e,t){return t?e.data().totalRecords:e.getAll().length},getColumnPositionByRole:function(e,t){var r,a,i=e.data("columns");for(r=0;r-1?1:0)):a.css("width",i.outerWidth()),t=0;t ',collapseRow:' '}},fontawesome:{icons:{expandRow:' ',collapseRow:' '}},glyphicons:{icons:{expandRow:' ',collapseRow:' '}}},private:{expandDetail:function(e,t,r){var a=t.closest("tr"),i=$(' '),o=$(' '),n=$('
'),d=e.data(),s=a.data("position"),l=e.get(s),c=gj.grid.plugins.expandCollapseRows;void 0===typeof r&&(r=gj.grid.methods.getId(l,d.primaryKey,l)),i.append(o.append(n.append(a.data("details")))),i.insertAfter(a),t.children('div[data-role="display"]').empty().append(d.icons.collapseRow),e.updateDetails(a),c.private.keepSelection(e,r),c.events.detailExpand(e,i.find("td>div"),r)},collapseDetail:function(e,t,r){var a=t.closest("tr").next('tr[data-role="details"]'),i=e.data(),o=gj.grid.plugins.expandCollapseRows;void 0===typeof r&&(r=gj.grid.methods.getId(record,i.primaryKey,record)),a.remove(),t.children('div[data-role="display"]').empty().append(i.icons.expandRow),o.private.removeSelection(e,r),o.events.detailCollapse(e,a.find("td>div"),r)},keepSelection:function(e,t){var r=e.data();r.keepExpandedRows&&($.isArray(r.expandedRows)?-1==r.expandedRows.indexOf(t)&&r.expandedRows.push(t):r.expandedRows=[t])},removeSelection:function(e,t){var r=e.data();r.keepExpandedRows&&$.isArray(r.expandedRows)&&r.expandedRows.indexOf(t)>-1&&r.expandedRows.splice(r.expandedRows.indexOf(t),1)},updateDetailsColSpan:function(e){var t=e.find('tbody > tr[data-role="details"] > td');t&&t.length&&t.attr("colspan",gj.grid.methods.countVisibleColumns(e))}},public:{collapseAll:function(){var e,t=this,r=t.data();return void 0!==r.detailTemplate&&(e=gj.grid.methods.getColumnPositionByRole(t,"expander"),t.find('tbody tr[data-role="row"]').each(function(){gj.grid.plugins.expandCollapseRows.private.collapseDetail(t,$(this).find("td:eq("+e+")"))})),void 0!==r.grouping&&t.find('tbody tr[role="group"]').each(function(){gj.grid.plugins.grouping.private.collapseGroup(r,$(this).find("td:eq(0)"))}),t},expandAll:function(){var e,t=this,r=t.data();return void 0!==r.detailTemplate&&(e=gj.grid.methods.getColumnPositionByRole(t,"expander"),t.find('tbody tr[data-role="row"]').each(function(){gj.grid.plugins.expandCollapseRows.private.expandDetail(t,$(this).find("td:eq("+e+")"))})),void 0!==r.grouping&&t.find('tbody tr[role="group"]').each(function(){gj.grid.plugins.grouping.private.expandGroup(r,$(this).find("td:eq(0)"))}),t},updateDetails:function(e){var t=this,r=e.data("details"),a=r.html(),i=t.get(e.data("position"));return i&&a&&(r.html().replace(/\{(.+?)\}/g,function(e,r){var o=gj.grid.methods.getColumnInfo(t,r);a=a.replace(e,gj.grid.methods.formatText(i[r],o))}),r.html(a)),t}},events:{detailExpand:function(e,t,r){e.triggerHandler("detailExpand",[t,r])},detailCollapse:function(e,t,r){e.triggerHandler("detailCollapse",[t,r])}},configure:function(e){var t,r=e.data();$.extend(!0,e,gj.grid.plugins.expandCollapseRows.public),void 0!==r.detailTemplate&&(t={title:"",width:r.defaultIconColumnWidth,align:"center",stopPropagation:!0,cssClass:"gj-cursor-pointer gj-unselectable",tmpl:r.icons.expandRow,role:"expander",events:{click:function(t){var r=$(this),a=gj.grid.plugins.expandCollapseRows.private;"details"===r.closest("tr").next().attr("data-role")?a.collapseDetail(e,r,t.data.id):a.expandDetail(e,$(this),t.data.id)}}},r.columns=[t].concat(r.columns),e.on("rowDataBound",function(e,t,a,i){t.data("details",$(r.detailTemplate))}),e.on("columnShow",function(t,r){gj.grid.plugins.expandCollapseRows.private.updateDetailsColSpan(e)}),e.on("columnHide",function(t,r){gj.grid.plugins.expandCollapseRows.private.updateDetailsColSpan(e)}),e.on("rowRemoving",function(t,r,a,i){gj.grid.plugins.expandCollapseRows.private.collapseDetail(e,r.children("td").first(),a)}),e.on("dataBinding",function(){e.collapseAll()}),e.on("pageChanging",function(){e.collapseAll()}),e.on("dataBound",function(){var t,r,a,i,o=e.data();if(o.keepExpandedRows&&$.isArray(o.expandedRows))for(t=0;t '+gj.grid.messages[e.locale].Edit+"",e.inlineEditing.deleteButton=' '+gj.grid.messages[e.locale].Delete+" ",e.inlineEditing.updateButton=' '+gj.grid.messages[e.locale].Update+" ",e.inlineEditing.cancelButton=' '+gj.grid.messages[e.locale].Cancel+" "):(e.inlineEditing.editButton=' '+gj.grid.messages[e.locale].Edit.toUpperCase()+" ",e.inlineEditing.deleteButton=' '+gj.grid.messages[e.locale].Delete.toUpperCase()+" ",e.inlineEditing.updateButton=' '+gj.grid.messages[e.locale].Update.toUpperCase()+" ",e.inlineEditing.cancelButton=' '+gj.grid.messages[e.locale].Cancel.toUpperCase()+" ")},editMode:function(e,t,r,a){var i,o,n,d,s,l=e.data();if("edit"!==t.attr("data-mode"))if(r.editor){if(gj.grid.plugins.inlineEditing.private.updateOtherCells(e,r.mode),i=t.find('div[data-role="display"]').hide(),0===(o=t.find('div[data-role="edit"]').show()).length&&(o=$('
'),t.append(o)),d=a[r.editField||r.field],(n=o.find("input, select, textarea").first()).length)switch(r.type){case"checkbox":n.prop("checked",d);break;case"dropdown":n=n.dropdown("value",d);break;default:n.val(d)}else{if("function"==typeof r.editor)r.editor(o,d,a),n=o.find("input, select, textarea").first();else if((s="object"==typeof r.editor?r.editor:{}).uiLibrary=l.uiLibrary,s.iconsLibrary=l.iconsLibrary,s.fontSize=e.css("font-size"),s.showOnFocus=!1,"checkbox"===r.type&&gj.checkbox)n=$(' ').prop("checked",d),o.append(n),n.checkbox(s);else if("date"===r.type&&gj.datepicker||"time"===r.type&&gj.timepicker||"datetime"===r.type&&gj.datetimepicker){switch(n=$(' '),o.append(n),r.format&&(s.format=r.format),r.type){case"date":n=n.datepicker(s);break;case"time":n=n.timepicker(s);break;case"datetime":n=n.datetimepicker(s)}n.value&&n.value(i.html())}else"dropdown"===r.type&&gj.dropdown?(n=$(' '),o.append(n),s.dataBound=function(e){var t=$(this).dropdown();r.editField?t.value(a[r.editField]):t.value(a[r.field])},n=n.dropdown(s)):(n=$(' '),"materialdesign"===l.uiLibrary&&n.addClass("gj-textbox-md").css("font-size",e.css("font-size")),o.append(n));"command"!==l.inlineEditing.mode&&"editOnly"!==r.mode&&(n=o.find("input, select, textarea").first()).on("keyup",function(a){13!==a.keyCode&&27!==a.keyCode||gj.grid.plugins.inlineEditing.private.displayMode(e,t,r)})}"INPUT"===n.prop("tagName").toUpperCase()&&"TEXT"===n.prop("type").toUpperCase()?gj.core.setCaretAtEnd(n[0]):n.focus(),t.attr("data-mode","edit")}else"managementColumn"===r.role&&(t.find('[role="edit"]').hide(),t.find('[role="delete"]').hide(),t.find('[role="update"]').show(),t.find('[role="cancel"]').show())},displayMode:function(e,t,r,a){var i,o,n,d,s,l,c;"editOnly"!==r.mode&&("edit"===t.attr("data-mode")&&(i=t.find('div[data-role="edit"]'),o=t.find('div[data-role="display"]'),"SELECT"===(n=i.find("input, select, textarea").first())[0].tagName.toUpperCase()&&n[0].selectedIndex>-1?(d=n[0].options[n[0].selectedIndex].innerHTML,s=n[0].value):d="INPUT"===n[0].tagName.toUpperCase()&&"CHECKBOX"===n[0].type.toUpperCase()?n[0].checked:n.val(),c=t.parent().data("position"),l=e.get(c),!0!==a&&d!==l[r.field]&&(l[r.field]="date"===r.type?gj.core.parseDate(d,r.format):d,r.editField&&(l[r.editField]=s||d),"editOnly"!==r.mode&&(gj.grid.methods.renderDisplayElement(e,o,r,l,gj.grid.methods.getId(l,e.data("primaryKey"),c),"update"),0===t.find("span.gj-dirty").length&&t.prepend($(' '))),gj.grid.plugins.inlineEditing.events.cellDataChanged(e,t,r,l,d),gj.grid.plugins.inlineEditing.private.updateChanges(e,r,l,d)),i.hide(),o.show(),t.attr("data-mode","display")),"managementColumn"===r.role&&(t.find('[role="update"]').hide(),t.find('[role="cancel"]').hide(),t.find('[role="edit"]').show(),t.find('[role="delete"]').show()))},updateOtherCells:function(e,t){var r=e.data();"command"!==r.inlineEditing.mode&&"editOnly"!==t&&e.find('div[data-role="edit"]:visible').parent("td").each(function(){var t=$(this),a=r.columns[t.index()];gj.grid.plugins.inlineEditing.private.displayMode(e,t,a)})},updateChanges:function(e,t,r,a){var i,o,n,d=e.data();d.guid||(d.guid=gj.grid.plugins.inlineEditing.private.generateGUID()),d.primaryKey&&((i=JSON.parse(sessionStorage.getItem("gj.grid."+d.guid)))?o=i.filter(function(e){return e[d.primaryKey]===r[d.primaryKey]}):i=[],o&&1===o.length?o[0][t.field]=a:((n={})[d.primaryKey]=r[d.primaryKey],d.primaryKey!==t.field&&(n[t.field]=a),i.push(n)),sessionStorage.setItem("gj.grid."+d.guid,JSON.stringify(i)))},generateGUID:function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}},gj.grid.plugins.inlineEditing.public={getChanges:function(){return JSON.parse(sessionStorage.getItem("gj.grid."+this.data().guid))},edit:function(e){var t,r=this.getById(e),a=gj.grid.methods.getRowById(this,e).children("td"),i=this.data("columns");for(t=0;t',previous:' ',next:' ',last:' ',refresh:' '}},materialicons:{icons:{first:' ',previous:' ',next:' ',last:' ',refresh:' '}},fontawesome:{icons:{first:' ',previous:' ',next:' ',last:' ',refresh:' '}}},private:{init:function(e){var t,r,a,i,o,n,d,s,l,c;if((a=e.data()).pager)for(a.params[a.paramNames.page]||(a.params[a.paramNames.page]=1),a.params[a.paramNames.limit]||(a.params[a.paramNames.limit]=a.pager.limit),gj.grid.plugins.pagination.private.localization(a),t=$(' '),r=$(" "),t.append(r),o=$('
').addClass(a.style.pager.panel).css({float:"left"}),n=$('
').addClass(a.style.pager.panel).css({float:"right"}),r.append(o).append(n),d=$(" ").append(t),e.append(d),gj.grid.plugins.pagination.private.updatePagerColSpan(e),s=gj.grid.methods.clone(a.pager.leftControls),$.each(s,function(){o.append(this)}),l=gj.grid.methods.clone(a.pager.rightControls),$.each(l,function(){n.append(this)}),i=e.find("tfoot [data-role]"),c=0;c'+(e.icons.first||t.First)+"").attr("title",t.FirstPageTooltip).attr("data-role","page-first"),$(''+(e.icons.previous||t.Previous)+" ").attr("title",t.PreviousPageTooltip).attr("data-role","page-previous"),$(""+t.Page+"
"),$(' '),$(""+t.Of+"
"),$('0
'),$(''+(e.icons.next||t.Next)+" ").attr("title",t.NextPageTooltip).attr("data-role","page-next"),$(''+(e.icons.last||t.Last)+" ").attr("title",t.LastPageTooltip).attr("data-role","page-last"),$(''+(e.icons.refresh||t.Refresh)+" ").attr("title",t.Refresh).attr("data-role","page-refresh"),$(' ')]),void 0===e.pager.rightControls&&(e.pager.rightControls=[$(""+t.DisplayingRecords+"
"),$('0
'),$("-
"),$('0
'),$(""+t.Of+"
"),$('0
')])},localizationBootstrap4:function(e){var t=gj.grid.messages[e.locale];void 0===e.pager.leftControls&&(e.pager.leftControls=[$(''+(e.icons.first||t.First)+" ").attr("title",t.FirstPageTooltip).attr("data-role","page-first"),$(''+(e.icons.previous||t.Previous)+" ").attr("title",t.PreviousPageTooltip).attr("data-role","page-previous"),$(""+t.Page+"
"),$('
'),$(""+t.Of+"
"),$('0
'),$(''+(e.icons.next||t.Next)+" ").attr("title",t.NextPageTooltip).attr("data-role","page-next"),$(''+(e.icons.last||t.Last)+" ").attr("title",t.LastPageTooltip).attr("data-role","page-last"),$(''+(e.icons.refresh||t.Refresh)+" ").attr("title",t.Refresh).attr("data-role","page-refresh"),$(' ')]),void 0===e.pager.rightControls&&(e.pager.rightControls=[$(""+t.DisplayingRecords+"
"),$('0
'),$("-
"),$('0
'),$(""+t.Of+"
"),$('0
')])},localizationMaterialDesign:function(e){var t=gj.grid.messages[e.locale];void 0===e.pager.leftControls&&(e.pager.leftControls=[]),void 0===e.pager.rightControls&&(e.pager.rightControls=[$(''+t.RowsPerPage+" "),$(' '),$(' '),$('0 '),$('- '),$('0 '),$('"),$('0 '),$(' '),$(''+(e.icons.previous||t.Previous)+" ").attr("title",t.PreviousPageTooltip).attr("data-role","page-previous").addClass(e.icons.first?"gj-button-md-icon":""),$(' '),$(''+(e.icons.next||t.Next)+" ").attr("title",t.NextPageTooltip).attr("data-role","page-next").addClass(e.icons.first?"gj-button-md-icon":"")])},initPagerControl:function(e,t){var r=t.data();switch(e.data("role")){case"page-size":r.pager.sizes&&0 ").attr("value",this.toString()).text(this.toString()))}),e.change(function(){var e=parseInt(this.value,10);r.params[r.paramNames.limit]=e,gj.grid.plugins.pagination.private.changePage(t,1),gj.grid.plugins.pagination.events.pageSizeChange(t,e)}),e.val(r.params[r.paramNames.limit]),gj.dropdown&&e.dropdown({uiLibrary:r.uiLibrary,iconsLibrary:r.iconsLibrary,fontSize:e.css("font-size"),style:{presenter:"btn btn-default btn-sm"}})):e.hide();break;case"page-refresh":e.on("click",function(){t.reload()})}},reloadPager:function(e,t){var r,a,i,o,n,d,s,l;if((d=e.data()).pager){for(r=0===t?0:parseInt(d.params[d.paramNames.page],10),a=parseInt(d.params[d.paramNames.limit],10),i=Math.ceil(t/a),n=(o=0===r?0:a*(r-1)+1)+a>t?t:o+a-1,s=e.find("TFOOT [data-role]"),l=0;li?t.hide():(t.show().off("click").text(a),a===r?t.addClass(o.activeButton):t.removeClass(o.activeButton).on("click",function(){gj.grid.plugins.pagination.private.changePage(e,a)}))},createChangePageHandler:function(e,t){return function(){e.data();var t=parseInt(this.value,10);gj.grid.plugins.pagination.private.changePage(e,t)}},changePage:function(e,t){var r=e.data();!1===gj.grid.plugins.pagination.events.pageChanging(e,t)||isNaN(t)||(e.find('TFOOT [data-role="page-number"]').val(t),r.params[r.paramNames.page]=t),e.reload()},updatePagerColSpan:function(e){var t=e.find('tfoot > tr[data-role="pager"] > th');t&&t.length&&t.attr("colspan",gj.grid.methods.countVisibleColumns(e))},isLastRecordVisible:function(e){var t=!0,r=e.data(),a=parseInt(r.params[r.paramNames.limit],10),i=parseInt(r.params[r.paramNames.page],10),o=e.count();return a&&i&&(t=(i-1)*a+o===r.totalRecords),t}},public:{getAll:function(e){var t,r,a=this.data();return $.isArray(a.dataSource)?e?a.dataSource:a.params[a.paramNames.limit]&&a.params[a.paramNames.page]?(t=parseInt(a.params[a.paramNames.limit],10),r=(parseInt(a.params[a.paramNames.page],10)-1)*t,a.records.slice(r,r+t)):a.records:a.records}},events:{pageSizeChange:function(e,t){e.triggerHandler("pageSizeChange",[t])},pageChanging:function(e,t){e.triggerHandler("pageChanging",[t])}},configure:function(e,t,r){$.extend(!0,e,gj.grid.plugins.pagination.public);e.data();r.pager&&(gj.grid.methods.isLastRecordVisible=gj.grid.plugins.pagination.private.isLastRecordVisible,e.on("initialized",function(){gj.grid.plugins.pagination.private.init(e)}),e.on("dataBound",function(t,r,a){gj.grid.plugins.pagination.private.reloadPager(e,a)}),e.on("columnShow",function(){gj.grid.plugins.pagination.private.updatePagerColSpan(e)}),e.on("columnHide",function(){gj.grid.plugins.pagination.private.updatePagerColSpan(e)}))}},gj.grid.plugins.responsiveDesign={config:{base:{resizeCheckInterval:500,responsive:!1,showHiddenColumnsAsDetails:!1,defaultColumn:{priority:void 0,minWidth:250},style:{rowDetailItem:""}},bootstrap:{style:{rowDetailItem:"col-lg-4"}}},private:{orderColumns:function(e){var t=[];if(e.columns&&e.columns.length){for(i=0;it.priority&&(r=1),r})}return t},updateDetails:function(e){var t,r,a,i,o,n,d,s,l;for(t=e.find('tbody > tr[data-role="row"]'),r=e.data(),a=0;a"+(s.title||s.field)+": {"+s.field+"}",d&&d.length?d.empty().html(l):((d=$('
').html(l)).addClass(r.style.rowDetailItem),n&&n.length||(n=$('
')),n.append(d))):d&&d.length&&d.remove();e.updateDetails(o)}}},public:{oldWidth:void 0,resizeCheckIntervalId:void 0,makeResponsive:function(){var e,t,r=0,a=this.data(),i=gj.grid.plugins.responsiveDesign.private.orderColumns(a);for(e=0;etr>th:eq("+i[e].position+")")).is(":visible")&&i[e].minWidthtr>th:eq("+i[e].position+")")).is(":visible")&&i[e].minWidth<=r&&(this.showColumn(i[e].field),r-=t.width());for(e=i.length-1;e>=0;e--)(t=this.find("thead>tr>th:eq("+i[e].position+")")).is(":visible")&&i[e].priority&&i[e].minWidth>t.outerWidth()&&this.hideColumn(i[e].field);return this}},events:{resize:function(e,t,r){e.triggerHandler("resize",[t,r])}},configure:function(e,t,r){$.extend(!0,e,gj.grid.plugins.responsiveDesign.public),t.responsive&&(e.on("initialized",function(){e.makeResponsive(),e.oldWidth=e.width(),e.resizeCheckIntervalId=setInterval(function(){var t=e.width();t!==e.oldWidth&&gj.grid.plugins.responsiveDesign.events.resize(e,t,e.oldWidth),e.oldWidth=t},t.resizeCheckInterval)}),e.on("destroy",function(){e.resizeCheckIntervalId&&clearInterval(e.resizeCheckIntervalId)}),e.on("resize",function(){e.makeResponsive()})),t.showHiddenColumnsAsDetails&&gj.grid.plugins.expandCollapseRows&&(e.on("dataBound",function(){gj.grid.plugins.responsiveDesign.private.updateDetails(e)}),e.on("columnHide",function(){gj.grid.plugins.responsiveDesign.private.updateDetails(e)}),e.on("columnShow",function(){gj.grid.plugins.responsiveDesign.private.updateDetails(e)}),e.on("rowDataBound",function(){gj.grid.plugins.responsiveDesign.private.updateDetails(e)}))}},gj.grid.plugins.toolbar={config:{base:{toolbarTemplate:void 0,title:void 0,style:{toolbar:"gj-grid-md-toolbar"}},bootstrap:{style:{toolbar:"gj-grid-bootstrap-toolbar"}},bootstrap4:{style:{toolbar:"gj-grid-bootstrap-4-toolbar"}}},private:{init:function(e){var t,r,a;t=e.data(),r=e.prev('div[data-role="toolbar"]'),(void 0!==t.toolbarTemplate||void 0!==t.title||r.length>0)&&(0===r.length&&(r=$('
'),e.before(r)),r.addClass(t.style.toolbar),0===r.children().length&&t.toolbarTemplate&&r.append(t.toolbarTemplate),0===(a=r.find('[data-role="title"]')).length&&(a=$('
'),r.prepend(a)),t.title&&a.text(t.title),t.minWidth&&r.css("min-width",t.minWidth))}},public:{title:function(e){var t=this.parent().find('div[data-role="toolbar"] [data-role="title"]');return void 0!==e?(t.text(e),this):t.text()}},configure:function(e){$.extend(!0,e,gj.grid.plugins.toolbar.public),e.on("initialized",function(){gj.grid.plugins.toolbar.private.init(e)}),e.on("destroying",function(){e.prev('[data-role="toolbar"]').remove()})}},gj.grid.plugins.resizableColumns={config:{base:{resizableColumns:!1}},private:{init:function(e,t){var r,a,i,o,n,d;if((r=e.find('thead tr[data-role="caption"] th')).length){for(i=0;i '),d=parseInt(a.css("padding-right"),10)+3,(n=$(' ').css("margin-right","-"+d+"px")).draggable({start:function(){e.addClass("gj-unselectable"),e.addClass("gj-grid-resize-cursor")},stop:function(){e.removeClass("gj-unselectable"),e.removeClass("gj-grid-resize-cursor"),this.style.removeProperty("top"),this.style.removeProperty("left"),this.style.removeProperty("position")},drag:gj.grid.plugins.resizableColumns.private.createResizeHandle(e,a,t.columns[i])}),a.append(o.append(n));for(i=0;i]+>/g," ")+'",');for(i+=a.slice(0,a.length-1)+"\r\n",t=0;t-1?r.href=URL.createObjectURL(new Blob([this.getCSV(t)],{type:"text/csv;charset=utf-8;"})):r.href="data:text/csv;charset=utf-8,"+escape(this.getCSV(t)),r.click(),document.body.removeChild(r),this},isColumnApplicable:function(e){return!0!==e.hidden&&!e.role}},configure:function(e){$.extend(!0,e,gj.grid.plugins.export.public)}},gj.grid.plugins.columnReorder={config:{base:{columnReorder:!1,dragReady:!1,style:{targetRowIndicatorTop:"gj-grid-row-reorder-indicator-top",targetRowIndicatorBottom:"gj-grid-row-reorder-indicator-bottom"}}},private:{init:function(e){var t,r,a=e.find("thead tr th");for(t=0;t ');for(t=0;t "),i.columns[t].filterable&&(a=$(' '),"onchange"===i.headerFilter.type?a.on("input propertychange",function(t){gj.grid.plugins.headerFilter.private.reload(e,$(this))}):(a.on("keypress",function(t){13==t.which&&gj.grid.plugins.headerFilter.private.reload(e,$(this))}),a.on("blur",function(t){gj.grid.plugins.headerFilter.private.reload(e,$(this))})),r.append(a)),i.columns[t].hidden&&r.hide(),o.append(r);e.children("thead").append(o)},reload:function(e,t){var r={};r[t.data("field")]=t.val(),e.reload(r)}},public:{},events:{},configure:function(e,t,r){$.extend(!0,e,gj.grid.plugins.headerFilter.public);e.data();r.headerFilter&&e.on("initialized",function(){gj.grid.plugins.headerFilter.private.init(e)})}},gj.grid.plugins.grouping={config:{base:{paramNames:{groupBy:"groupBy",groupByDirection:"groupByDirection"},grouping:{groupBy:void 0,direction:"asc"},icons:{expandGroup:' ',collapseGroup:' '}},fontawesome:{icons:{expandGroup:' ',collapseGroup:' '}},glyphicons:{icons:{expandGroup:' ',collapseGroup:' '}}},private:{init:function(e){var t,r=e.data();t=void 0,e.on("rowDataBound",function(a,i,o,n){if(t!==n[r.grouping.groupBy]||1===i[0].rowIndex){var d=gj.grid.methods.countVisibleColumns(e)-1,s=$(' '),l=$(' ');l.append(''+r.icons.collapseGroup+"
"),l.on("click",gj.grid.plugins.grouping.private.createExpandCollapseHandler(r)),s.append(l),s.append(''+r.grouping.groupBy+": "+n[r.grouping.groupBy]+"
"),s.insertBefore(i),t=n[r.grouping.groupBy]}i.show()}),r.params[r.paramNames.groupBy]=r.grouping.groupBy,r.params[r.paramNames.groupByDirection]=r.grouping.direction},grouping:function(e,t){var r=e.data();t.sort(gj.grid.methods.createDefaultSorter(r.grouping.direction,r.grouping.groupBy))},createExpandCollapseHandler:function(e){return function(t){var r=$(this),a=gj.grid.plugins.grouping.private;"row"===r.closest("tr").next(":visible").data("role")?a.collapseGroup(e,r):a.expandGroup(e,r)}},collapseGroup:function(e,t){var r=t.children('div[data-role="display"]');t.closest("tr").nextUntil('[role="group"]').hide(),r.empty().append(e.icons.expandGroup)},expandGroup:function(e,t){var r=t.children('div[data-role="display"]');t.closest("tr").nextUntil('[role="group"]').show(),r.empty().append(e.icons.collapseGroup)}},public:{},configure:function(e){var t,r=e.data();$.extend(!0,e,gj.grid.plugins.grouping.public),r.grouping&&r.grouping.groupBy&&(t={title:"",width:r.defaultIconColumnWidth,align:"center",stopPropagation:!0,cssClass:"gj-cursor-pointer gj-unselectable"},r.columns=[t].concat(r.columns),e.on("initialized",function(){gj.grid.plugins.grouping.private.init(e)}),e.on("dataFiltered",function(t,r){gj.grid.plugins.grouping.private.grouping(e,r)}))}},gj.grid.messages["en-us"]={First:"First",Previous:"Previous",Next:"Next",Last:"Last",Page:"Page",FirstPageTooltip:"First Page",PreviousPageTooltip:"Previous Page",NextPageTooltip:"Next Page",LastPageTooltip:"Last Page",Refresh:"Refresh",Of:"of",DisplayingRecords:"Displaying records",RowsPerPage:"Rows per page:",Edit:"Edit",Delete:"Delete",Update:"Update",Cancel:"Cancel",NoRecordsFound:"No records found.",Loading:"Loading..."},gj.tree={plugins:{}},gj.tree.config={base:{params:{},autoLoad:!0,selectionType:"single",cascadeSelection:!1,dataSource:void 0,primaryKey:void 0,textField:"text",childrenField:"children",hasChildrenField:"hasChildren",imageCssClassField:"imageCssClass",imageUrlField:"imageUrl",imageHtmlField:"imageHtml",disabledField:"disabled",width:void 0,border:!1,uiLibrary:"materialdesign",iconsLibrary:"materialicons",autoGenId:1,autoGenFieldName:"autoId_b5497cc5-7ef3-49f5-a7dc-4a932e1aee4a",indentation:24,style:{wrapper:"gj-unselectable",list:"gj-list gj-list-md",item:void 0,active:"gj-list-md-active",leafIcon:void 0,border:"gj-tree-md-border"},icons:{expand:' ',collapse:' '}},bootstrap:{style:{wrapper:"gj-unselectable gj-tree-bootstrap-3",list:"gj-list gj-list-bootstrap list-group",item:"list-group-item",active:"active",border:"gj-tree-bootstrap-border"},iconsLibrary:"glyphicons"},bootstrap4:{style:{wrapper:"gj-unselectable gj-tree-bootstrap-4",list:"gj-list gj-list-bootstrap",item:"list-group-item",active:"active",border:"gj-tree-bootstrap-border"},icons:{expand:' ',collapse:' '}},materialicons:{style:{expander:"gj-tree-material-icons-expander"}},fontawesome:{style:{expander:"gj-tree-font-awesome-expander"},icons:{expand:' ',collapse:' '}},glyphicons:{style:{expander:"gj-tree-glyphicons-expander"},icons:{expand:' ',collapse:' '}}},gj.tree.events={initialized:function(e){e.triggerHandler("initialized")},dataBinding:function(e){e.triggerHandler("dataBinding")},dataBound:function(e){e.triggerHandler("dataBound")},select:function(e,t,r){return e.triggerHandler("select",[t,r])},unselect:function(e,t,r){return e.triggerHandler("unselect",[t,r])},expand:function(e,t,r){return e.triggerHandler("expand",[t,r])},collapse:function(e,t,r){return e.triggerHandler("collapse",[t,r])},enable:function(e,t){return e.triggerHandler("enable",[t])},disable:function(e,t){return e.triggerHandler("disable",[t])},destroying:function(e){return e.triggerHandler("destroying")},nodeDataBound:function(e,t,r,a){return e.triggerHandler("nodeDataBound",[t,r,a])}},gj.tree.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"tree"),gj.tree.methods.initialize.call(this),this.data("autoLoad")&&this.reload(),this},initialize:function(){var e=this.data(),t=$('');this.empty().addClass(e.style.wrapper).append(t),e.width&&this.width(e.width),e.border&&this.addClass(e.style.border),gj.tree.events.initialized(this)},useHtmlDataSource:function(e,t){t.dataSource=[]},render:function(e,t){var r;return t&&("string"==typeof t&&JSON&&(t=JSON.parse(t)),(r=e.data()).records=t,r.primaryKey||gj.tree.methods.genAutoId(r,r.records),gj.tree.methods.loadData(e)),e},filter:function(e){return e.data().dataSource},genAutoId:function(e,t){var r;for(r=0;r ').addClass(c.style.item),$wrapper=$('
'),$expander=$(' ').addClass(c.style.expander),$display=$(''+r[c.textField]+" "),hasChildren=void 0!==r[c.hasChildrenField]&&"true"===r[c.hasChildrenField].toString().toLowerCase(),disabled=void 0!==r[c.disabledField]&&"true"===r[c.disabledField].toString().toLowerCase(),c.indentation&&$wrapper.append(' '),disabled?gj.tree.methods.disableNode(e,n):($expander.on("click",gj.tree.methods.expanderClickHandler(e)),$display.on("click",gj.tree.methods.displayClickHandler(e))),$wrapper.append($expander),$wrapper.append($display),n.append($wrapper),i?t.find("li:eq("+(i-1)+")").before(n):t.append(n),c.imageCssClassField&&r[c.imageCssClassField]?(s=$(' ')).insertBefore($display):c.imageUrlField&&r[c.imageUrlField]?((s=$(' ')).insertBefore($display),(l=$(' ')).attr("width",s.width()).attr("height",s.height()),s.append(l)):c.imageHtmlField&&r[c.imageHtmlField]&&(s=$(''+r[c.imageHtmlField]+" ")).insertBefore($display),r[c.childrenField]&&r[c.childrenField].length||hasChildren){if($expander.empty().append(c.icons.expand),d=$("").addClass(c.style.list).addClass("gj-hidden"),n.append(d),r[c.childrenField]&&r[c.childrenField].length)for(o=0;o[data-role="wrapper"]>[data-role="expander"]'),n=e.data(),d=t.attr("data-id"),s=t.children("ul");if(!1!==gj.tree.events.expand(e,t,d)&&s&&s.length&&(s.show(),o.attr("data-mode","open"),o.empty().append(n.icons.collapse),r))for(a=t.find("ul>li"),i=0;i[data-role="wrapper"]>[data-role="expander"]'),n=e.data(),d=t.attr("data-id"),s=t.children("ul");if(!1!==gj.tree.events.collapse(e,t,d)&&s&&s.length&&(s.hide(),o.attr("data-mode","close"),o.empty().append(n.icons.expand),r))for(a=t.find("ul>li"),i=0;ili");for(t=0;tli");for(t=0;tli");for(t=0;tli"),a=0;ali");for(t=0;tli"),a=0;a[data-role="wrapper"]>[data-role="display"]').text()){i=a;break}if(a.has("ul")&&(i=gj.tree.methods.getNodeByText(a.children("ul"),t)))break}return i},addNode:function(e,t,r,a){var i,o,n=e.data();return r&&r.length?("li"===r[0].tagName.toLowerCase()&&(0===r.children("ul").length&&(r.find('[data-role="expander"]').empty().append(n.icons.collapse),r.append($("").addClass(n.style.list))),r=r.children("ul")),(o=e.getDataById(r.parent().data("id")))[n.childrenField]||(o[n.childrenField]=[]),o[n.childrenField].push(t)):(r=e.children("ul"),e.data("records").push(t)),i=r.parentsUntil('[data-type="tree"]',"ul").length+1,n.primaryKey||gj.tree.methods.genAutoId(n,[t]),gj.tree.methods.appendNode(e,r,t,i,a),e},remove:function(e,t){return gj.tree.methods.removeDataById(e,t.attr("data-id"),e.data("records")),t.remove(),e},removeDataById:function(e,t,r){var a,i=e.data();for(a=0;a[data-role="wrapper"]>[data-role="display"]').html(r[a.textField]),gj.tree.events.nodeDataBound(e,i,t,r),e},getChildren:function(e,t,r){var a,i,o=[];for(i=(r=void 0===r||r)?t.find("ul li"):t.find(">ul>li"),a=0;ali");for(t=0;t[data-role="wrapper"]>[data-role="expander"]'),n=t.find('>[data-role="wrapper"]>[data-role="display"]');r=void 0===r||r;if(t.removeClass("disabled"),o.on("click",gj.tree.methods.expanderClickHandler(e)),n.on("click",gj.tree.methods.displayClickHandler(e)),gj.tree.events.enable(e,t),r)for(i=t.find("ul>li"),a=0;ali");for(t=0;t[data-role="wrapper"]>[data-role="expander"]'),n=t.find('>[data-role="wrapper"]>[data-role="display"]');r=void 0===r||r;if(t.addClass("disabled"),o.off("click"),n.off("click"),gj.tree.events.disable(e,t),r)for(i=t.find("ul>li"),a=0;a [data-role="wrapper"] > [data-role="checkbox"]').length&&(i=e.data(),o=t.find('> [data-role="wrapper"] > [data-role="expander"]'),n=$(' '),d=$(' ').append(n),s=void 0!==a[i.disabledField]&&"true"===a[i.disabledField].toString().toLowerCase(),n=n.checkbox({uiLibrary:i.uiLibrary,iconsLibrary:i.iconsLibrary,change:function(r,i){gj.tree.plugins.checkboxes.events.checkboxChange(e,t,a,n.state())}}),s&&n.prop("disabled",!0),a[i.checkedField]&&n.state("checked"),n.on("click",function(e){var t=n.closest("li"),r=n.state();i.cascadeCheck&&(gj.tree.plugins.checkboxes.private.updateChildrenState(t,r),gj.tree.plugins.checkboxes.private.updateParentState(t,r))}),o.after(d))},updateParentState:function(e,t){var r,a,i,o,n,d;1===(r=e.parent("ul").parent("li")).length&&(a=e.parent("ul").parent("li").find('> [data-role="wrapper"] > [data-role="checkbox"] input[type="checkbox"]'),i=e.siblings().find('> [data-role="wrapper"] > span[data-role="checkbox"] input[type="checkbox"]'),o="checked"===t,n="unchecked"===t,d="indeterminate",$.each(i,function(){var e=$(this).checkbox("state");o&&"checked"!==e&&(o=!1),n&&"unchecked"!==e&&(n=!1)}),o&&!n&&(d="checked"),!o&&n&&(d="unchecked"),a.checkbox("state",d),gj.tree.plugins.checkboxes.private.updateParentState(r,a.checkbox("state")))},updateChildrenState:function(e,t){var r=e.find('ul li [data-role="wrapper"] [data-role="checkbox"] input[type="checkbox"]');r.length>0&&$.each(r,function(){$(this).checkbox("state",t)})},update:function(e,t,r){var a=t.find('[data-role="checkbox"] input[type="checkbox"]').first();$(a).checkbox("state",r),e.data().cascadeCheck&&(gj.tree.plugins.checkboxes.private.updateChildrenState(t,r),gj.tree.plugins.checkboxes.private.updateParentState(t,r))}},public:{getCheckedNodes:function(){var e=[],t=this.find('li [data-role="checkbox"] input[type="checkbox"]');return $.each(t,function(){var t=$(this);"checked"===t.checkbox("state")&&e.push(t.closest("li").data("id"))}),e},checkAll:function(){var e=this.find('li [data-role="checkbox"] input[type="checkbox"]');return $.each(e,function(){$(this).checkbox("state","checked")}),this},uncheckAll:function(){var e=this.find('li [data-role="checkbox"] input[type="checkbox"]');return $.each(e,function(){$(this).checkbox("state","unchecked")}),this},check:function(e){return gj.tree.plugins.checkboxes.private.update(this,e,"checked"),this},uncheck:function(e){return gj.tree.plugins.checkboxes.private.update(this,e,"unchecked"),this}},events:{checkboxChange:function(e,t,r,a){return e.triggerHandler("checkboxChange",[t,r,a])}},configure:function(e){e.data("checkboxes")&&gj.checkbox&&($.extend(!0,e,gj.tree.plugins.checkboxes.public),e.on("nodeDataBound",function(t,r,a,i){gj.tree.plugins.checkboxes.private.nodeDataBound(e,r,a,i)}),e.on("dataBound",function(){gj.tree.plugins.checkboxes.private.dataBound(e)}),e.on("enable",function(e,t){t.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop("disabled",!1)}),e.on("disable",function(e,t){t.find('>[data-role="wrapper"]>[data-role="checkbox"] input[type="checkbox"]').prop("disabled",!0)}))}},gj.tree.plugins.dragAndDrop={config:{base:{dragAndDrop:void 0,style:{dragEl:"gj-tree-drag-el gj-tree-md-drag-el",dropAsChildIcon:"gj-cursor-pointer gj-icon plus",dropAbove:"gj-tree-drop-above",dropBelow:"gj-tree-drop-below"}},bootstrap:{style:{dragEl:"gj-tree-drag-el gj-tree-bootstrap-drag-el",dropAsChildIcon:"glyphicon glyphicon-plus",dropAbove:"drop-above",dropBelow:"drop-below"}},bootstrap4:{style:{dragEl:"gj-tree-drag-el gj-tree-bootstrap-drag-el",dropAsChildIcon:"gj-cursor-pointer gj-icon plus",dropAbove:"drop-above",dropBelow:"drop-below"}}},private:{nodeDataBound:function(e,t){var r=t.children('[data-role="wrapper"]'),a=t.find('>[data-role="wrapper"]>[data-role="display"]');r.length&&a.length&&(a.on("mousedown",gj.tree.plugins.dragAndDrop.private.createNodeMouseDownHandler(e)),a.on("mousemove",gj.tree.plugins.dragAndDrop.private.createNodeMouseMoveHandler(e,t,a)),a.on("mouseup",gj.tree.plugins.dragAndDrop.private.createNodeMouseUpHandler(e)))},createNodeMouseDownHandler:function(e){return function(t){e.data("dragReady",!0)}},createNodeMouseUpHandler:function(e){return function(t){e.data("dragReady",!1)}},createNodeMouseMoveHandler:function(e,t,r){return function(a){if(e.data("dragReady")){var i,o,n,d,s=e.data();e.data("dragReady",!1),i=r.clone().wrap('
').closest("div").wrap(' ').closest("li").wrap('').closest("ul"),$("body").append(i),i.attr("data-role","draggable-clone").addClass("gj-unselectable").addClass(s.style.dragEl),i.find('[data-role="wrapper"]').prepend(' '),i.draggable({drag:gj.tree.plugins.dragAndDrop.private.createDragHandler(e,t,r),stop:gj.tree.plugins.dragAndDrop.private.createDragStopHandler(e,t,r)}),o=r.parent(),n=r.offset().top,n-=parseInt(o.css("border-top-width"))+parseInt(o.css("margin-top"))+parseInt(o.css("padding-top")),d=r.offset().left,d-=parseInt(o.css("border-left-width"))+parseInt(o.css("margin-left"))+parseInt(o.css("padding-left")),d-=i.find('[data-role="indicator"]').outerWidth(!0),i.css({position:"absolute",top:n,left:d,width:r.outerWidth(!0)}),"true"===r.attr("data-droppable")&&r.droppable("destroy"),gj.tree.plugins.dragAndDrop.private.getTargetDisplays(e,t,r).each(function(){var e=$(this);"true"===e.attr("data-droppable")&&e.droppable("destroy"),e.droppable()}),gj.tree.plugins.dragAndDrop.private.getTargetDisplays(e,t).each(function(){var e=$(this);"true"===e.attr("data-droppable")&&e.droppable("destroy"),e.droppable()}),i.trigger("mousedown")}}},getTargetDisplays:function(e,t,r){return e.find('[data-role="display"]').not(r).not(t.find('[data-role="display"]'))},getTargetWrappers:function(e,t){return e.find('[data-role="wrapper"]').not(t.find('[data-role="wrapper"]'))},createDragHandler:function(e,t,r){var a=gj.tree.plugins.dragAndDrop.private.getTargetDisplays(e,t,r),i=gj.tree.plugins.dragAndDrop.private.getTargetWrappers(e,t),o=e.data();return function(e,t,r){var n=$(this),d=!1;a.each(function(){var e;if($(this).droppable("isOver",r))return e=n.find('[data-role="indicator"]'),o.style.dropAsChildIcon?e.addClass(o.style.dropAsChildIcon):e.text("+"),d=!0,!1;n.find('[data-role="indicator"]').removeClass(o.style.dropAsChildIcon).empty()}),i.each(function(){var e,t=$(this);!d&&t.droppable("isOver",r)?(e=t.position().top+t.outerHeight()/2,r.y ").addClass(o.style.list),s.append(r)),!1!==gj.tree.plugins.dragAndDrop.events.nodeDrop(e,t.data("id"),s.data("id"),r.children("li").length+1)&&(r.append(t),d=e.getDataById(t.data("id")),gj.tree.methods.removeDataById(e,t.data("id"),o.records),void 0===(c=e.getDataById(r.parent().data("id")))[o.childrenField]&&(c[o.childrenField]=[]),c[o.childrenField].push(d),gj.tree.plugins.dragAndDrop.private.refresh(e,t,s,l)),g=!0,!1;a.droppable("destroy")}),g||i.each(function(){var r,a,i,c=$(this);if(c.droppable("isOver",n))return s=c.closest("li"),l=t.parent("ul").parent("li"),r=n.y [data-role="wrapper"] > [data-role="expander"]');a.hasChildren&&o.empty().append(i.icons.expand)},createDoneHandler:function(e,t){return function(r){var a,i,o,n=e.data();if("string"==typeof r&&JSON&&(r=JSON.parse(r)),r&&r.length){for(0===(o=t.children("ul")).length&&(o=$("").addClass(n.style.list),t.append(o)),a=0;a[data-role="wrapper"]>[data-role="expander"]')).attr("data-mode","open"),i.empty().append(n.icons.collapse),gj.tree.events.dataBound(e)}}},expand:function(e,t,r){var a,i=e.data(),o={},n=t.find(">ul>li");n&&n.length||"string"==typeof i.dataSource&&(o[i.paramNames.parentId]=r,a={url:i.dataSource,data:o},e.xhr&&e.xhr.abort(),e.xhr=$.ajax(a).done(gj.tree.plugins.lazyLoading.private.createDoneHandler(e,t)).fail(e.createErrorHandler()))}},public:{},events:{},configure:function(e,t,r){r.lazyLoading&&(e.on("nodeDataBound",function(t,r,a,i){gj.tree.plugins.lazyLoading.private.nodeDataBound(e,r,a,i)}),e.on("expand",function(t,r,a){gj.tree.plugins.lazyLoading.private.expand(e,r,a)}))}},gj.checkbox={plugins:{}},gj.checkbox.config={base:{uiLibrary:"materialdesign",iconsLibrary:"materialicons",style:{wrapperCssClass:"gj-checkbox-md",spanCssClass:void 0}},bootstrap:{style:{wrapperCssClass:"gj-checkbox-bootstrap"},iconsLibrary:"glyphicons"},bootstrap4:{style:{wrapperCssClass:"gj-checkbox-bootstrap gj-checkbox-bootstrap-4"},iconsLibrary:"materialicons"},materialicons:{style:{iconsCssClass:"gj-checkbox-material-icons",spanCssClass:"gj-icon"}},glyphicons:{style:{iconsCssClass:"gj-checkbox-glyphicons",spanCssClass:""}},fontawesome:{style:{iconsCssClass:"gj-checkbox-fontawesome",spanCssClass:"fa"}}},gj.checkbox.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"checkbox"),this.attr("data-checkbox","true"),gj.checkbox.methods.initialize(this),this},initialize:function(e){var t,r,a=e.data();a.style.wrapperCssClass&&(t=$(' '),e.attr("id")&&t.attr("for",e.attr("id")),e.wrap(t),r=$(" "),a.style.spanCssClass&&r.addClass(a.style.spanCssClass),e.parent().append(r))},state:function(e,t){return t?("checked"===t?(e.prop("indeterminate",!1),e.prop("checked",!0)):"unchecked"===t?(e.prop("indeterminate",!1),e.prop("checked",!1)):"indeterminate"===t&&(e.prop("checked",!0),e.prop("indeterminate",!0)),gj.checkbox.events.change(e,t),e):t=e.prop("indeterminate")?"indeterminate":e.prop("checked")?"checked":"unchecked"},toggle:function(e){return"checked"==e.state()?e.state("unchecked"):e.state("checked"),e},destroy:function(e){return"true"===e.attr("data-checkbox")&&(e.removeData(),e.removeAttr("data-guid"),e.removeAttr("data-checkbox"),e.off(),e.next("span").remove(),e.unwrap()),e}},gj.checkbox.events={change:function(e,t){return e.triggerHandler("change",[t])}},gj.checkbox.widget=function(e,t){var r=gj.checkbox.methods;return this.toggle=function(){return r.toggle(this)},this.state=function(e){return r.state(this,e)},this.destroy=function(){return r.destroy(this)},$.extend(e,this),"true"!==e.attr("data-checkbox")&&r.init.call(e,t),e},gj.checkbox.widget.prototype=new gj.widget,gj.checkbox.widget.constructor=gj.checkbox.widget,jQuery.fn.checkbox=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.checkbox.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.checkbox.widget(this,e)}},gj.editor={plugins:{},messages:{}},gj.editor.config={base:{height:300,width:void 0,uiLibrary:"materialdesign",iconsLibrary:"materialicons",locale:"en-us",buttons:void 0,style:{wrapper:"gj-editor gj-editor-md",buttonsGroup:"gj-button-md-group",button:"gj-button-md",buttonActive:"active"}},bootstrap:{style:{wrapper:"gj-editor gj-editor-bootstrap",buttonsGroup:"btn-group",button:"btn btn-default gj-cursor-pointer",buttonActive:"active"}},bootstrap4:{style:{wrapper:"gj-editor gj-editor-bootstrap",buttonsGroup:"btn-group",button:"btn btn-outline-secondary gj-cursor-pointer",buttonActive:"active"}},materialicons:{icons:{bold:' ',italic:' ',strikethrough:' ',underline:' ',listBulleted:' ',listNumbered:' ',indentDecrease:' ',indentIncrease:' ',alignLeft:' ',alignCenter:' ',alignRight:' ',alignJustify:' ',undo:' ',redo:' '}},fontawesome:{icons:{bold:' ',italic:' ',strikethrough:' ',underline:' ',listBulleted:' ',listNumbered:' ',indentDecrease:' ',indentIncrease:' ',alignLeft:' ',alignCenter:' ',alignRight:' ',alignJustify:' ',undo:' ',redo:' '}}},gj.editor.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"editor"),this.attr("data-editor","true"),gj.editor.methods.initialize(this),this},initialize:function(e){var t,r,a,i,o,n=this,d=e.data();if(e.hide(),"wrapper"!==e[0].parentElement.attributes.role&&((a=document.createElement("div")).setAttribute("role","wrapper"),e[0].parentNode.insertBefore(a,e[0]),a.appendChild(e[0])),gj.editor.methods.localization(d),$(a).addClass(d.style.wrapper),d.width&&$(a).width(d.width),0===(i=$(a).children('div[role="body"]')).length&&(i=$('
'),$(a).append(i),e[0].innerText&&(i[0].innerHTML=e[0].innerText)),i.attr("contenteditable",!0),i.on("keydown",function(t){var r=event.keyCode||event.charCode;!1===gj.editor.events.changing(e)&&8!==r&&46!==r&&t.preventDefault()}),i.on("mouseup keyup mouseout cut paste",function(t){n.updateToolbar(e,o),gj.editor.events.changed(e),e.html(i.html())}),0===(o=$(a).children('div[role="toolbar"]')).length)for(var s in o=$('
'),i.before(o),d.buttons){for(var l in t=$("
").addClass(d.style.buttonsGroup),d.buttons[s])(r=$(d.buttons[s][l])).on("click",function(){gj.editor.methods.executeCmd(e,i,o,$(this))}),t.append(r);o.append(t)}i.height(d.height-gj.core.height(o[0],!0))},localization:function(e){var t=gj.editor.messages[e.locale];void 0===e.buttons&&(e.buttons=[[''+e.icons.bold+" ",''+e.icons.italic+" ",''+e.icons.strikethrough+" ",''+e.icons.underline+" "],[''+e.icons.listBulleted+" ",''+e.icons.listNumbered+" ",''+e.icons.indentDecrease+" ",''+e.icons.indentIncrease+" "],[''+e.icons.alignLeft+" ",''+e.icons.alignCenter+" ",''+e.icons.alignRight+" ",''+e.icons.alignJustify+" "],[''+e.icons.undo+" ",''+e.icons.redo+" "]])},updateToolbar:function(e,t){var r=e.data();$buttons=t.find("[role]").each(function(){var e=$(this),t=e.attr("role");t&&document.queryCommandEnabled(t)&&"true"===document.queryCommandValue(t)?e.addClass(r.style.buttonActive):e.removeClass(r.style.buttonActive)})},executeCmd:function(e,t,r,a){t.focus(),document.execCommand(a.attr("role"),!1),gj.editor.methods.updateToolbar(e,r)},content:function(e,t){var r=e.parent().children('div[role="body"]');return void 0===t?r.html():r.html(t)},destroy:function(e){var t;return"true"===e.attr("data-editor")&&((t=e.parent()).children('div[role="body"]').remove(),t.children('div[role="toolbar"]').remove(),e.unwrap(),e.removeData(),e.removeAttr("data-guid"),e.removeAttr("data-editor"),e.off(),e.show()),e}},gj.editor.events={changing:function(e){return e.triggerHandler("changing")},changed:function(e){return e.triggerHandler("changed")}},gj.editor.widget=function(e,t){var r=gj.editor.methods;return this.content=function(e){return r.content(this,e)},this.destroy=function(){return r.destroy(this)},$.extend(e,this),"true"!==e.attr("data-editor")&&r.init.call(e,t),e},gj.editor.widget.prototype=new gj.widget,gj.editor.widget.constructor=gj.editor.widget,jQuery.fn.editor=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.editor.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.editor.widget(this,e)}},gj.editor.messages["en-us"]={bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",underline:"Underline",listBulleted:"List Bulleted",listNumbered:"List Numbered",indentDecrease:"Indent Decrease",indentIncrease:"Indent Increase",alignLeft:"Align Left",alignCenter:"Align Center",alignRight:"Align Right",alignJustify:"Align Justify",undo:"Undo",redo:"Redo"},gj.dropdown={plugins:{}},gj.dropdown.config={base:{dataSource:void 0,textField:"text",valueField:"value",selectedField:"selected",width:void 0,maxHeight:"auto",placeholder:void 0,fontSize:void 0,uiLibrary:"materialdesign",iconsLibrary:"materialicons",icons:{dropdown:' ',dropup:' '},style:{wrapper:"gj-dropdown gj-dropdown-md gj-unselectable",list:"gj-list gj-list-md gj-dropdown-list-md",active:"gj-list-md-active"}},bootstrap:{style:{wrapper:"gj-dropdown gj-dropdown-bootstrap gj-dropdown-bootstrap-3 gj-unselectable",presenter:"btn btn-default",list:"gj-list gj-list-bootstrap gj-dropdown-list-bootstrap list-group",item:"list-group-item",active:"active"},iconsLibrary:"glyphicons"},bootstrap4:{style:{wrapper:"gj-dropdown gj-dropdown-bootstrap gj-dropdown-bootstrap-4 gj-unselectable",presenter:"btn btn-outline-secondary",list:"gj-list gj-list-bootstrap gj-dropdown-list-bootstrap list-group",item:"list-group-item",active:"active"}},materialicons:{style:{expander:"gj-dropdown-expander-mi"}},fontawesome:{icons:{dropdown:' ',dropup:' '},style:{expander:"gj-dropdown-expander-fa"}},glyphicons:{icons:{dropdown:' ',dropup:' '},style:{expander:"gj-dropdown-expander-glyphicons"}}},gj.dropdown.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"dropdown"),this.attr("data-dropdown","true"),gj.dropdown.methods.initialize(this),this},getHTMLConfig:function(){var e=gj.widget.prototype.getHTMLConfig.call(this),t=this[0].attributes;return t.placeholder&&(e.placeholder=t.placeholder.value),e},initialize:function(e){var t=e.data(),r=e.parent('div[role="wrapper"]'),a=$(' '),i=$(''+t.icons.dropdown+" ").addClass(t.style.expander),o=$(' ').addClass(t.style.presenter),n=$('').attr("guid",e.attr("data-guid"));0===r.length?(r=$('
').addClass(t.style.wrapper),e.wrap(r)):r.addClass(t.style.wrapper),t.fontSize&&o.css("font-size",t.fontSize),o.on("click",function(t){n.is(":visible")?gj.dropdown.methods.close(e,n):gj.dropdown.methods.open(e,n)}),o.on("blur",function(t){setTimeout(function(){gj.dropdown.methods.close(e,n)},500)}),o.append(a).append(i),e.hide(),e.after(o),$("body").append(n),n.hide(),e.reload()},setListPosition:function(e,t,r){var a,i,o,n,d=e.getBoundingClientRect(),s=window.scrollY||window.pageYOffset||0;window.scrollX||window.pageXOffset;t.style.overflow="",t.style.overflowX="",t.style.height="",gj.core.setChildPosition(e,t),a=gj.core.height(t,!0),n=t.getBoundingClientRect(),i=gj.core.height(e,!0),"auto"===r.maxHeight?d.topwindow.innerHeight&&(o=window.innerHeight-d.top-i-3):d.top-a-3>0?t.style.top=Math.round(d.top+s-a-3)+"px":(t.style.top=s+"px",o=d.top-3):!isNaN(r.maxHeight)&&r.maxHeight'+o+"
")).addClass(a.style.item),t.on("click",function(t){gj.dropdown.methods.select(e,i)}),n.append(t),e.append(''+o+" "),d&&r.push(i)}),0===r.length)e.prepend(' '),e[0].selectedIndex=0,a.placeholder&&(s[0].innerHTML=''+a.placeholder+" ");else for(i=0;i'+r.placeholder+""),e[0].value=""),gj.dropdown.events.change(e),gj.dropdown.methods.close(e,a),e},getRecordByValue:function(e,t){var r,a=e.data(),i=void 0;for(r=0;r0&&(r.children('[role="presenter"]').remove(),r.children('[role="list"]').remove(),e.unwrap()),e.show()),e}},gj.dropdown.events={change:function(e){return e.triggerHandler("change")},dataBound:function(e){return e.triggerHandler("dataBound")}},gj.dropdown.widget=function(e,t){var r=gj.dropdown.methods;return this.value=function(e){return r.value(this,e)},this.enable=function(){return r.enable(this)},this.disable=function(){return r.disable(this)},this.destroy=function(){return r.destroy(this)},$.extend(e,this),"true"!==e.attr("data-dropdown")&&r.init.call(e,t),e},gj.dropdown.widget.prototype=new gj.widget,gj.dropdown.widget.constructor=gj.dropdown.widget,gj.dropdown.widget.prototype.getHTMLConfig=gj.dropdown.methods.getHTMLConfig,jQuery.fn.dropdown=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.dropdown.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.dropdown.widget(this,e)}},gj.datepicker={plugins:{}},gj.datepicker.config={base:{showOtherMonths:!1,selectOtherMonths:!0,width:void 0,minDate:void 0,maxDate:void 0,format:"mm/dd/yyyy",uiLibrary:"materialdesign",iconsLibrary:"materialicons",value:void 0,weekStartDay:0,disableDates:void 0,disableDaysOfWeek:void 0,calendarWeeks:!1,keyboardNavigation:!0,locale:"en-us",icons:{rightIcon:'event ',previousMonth:' ',nextMonth:' '},fontSize:void 0,size:"default",modal:!1,header:!1,footer:!1,showOnFocus:!0,showRightIcon:!0,style:{modal:"gj-modal",wrapper:"gj-datepicker gj-datepicker-md gj-unselectable",input:"gj-textbox-md",calendar:"gj-picker gj-picker-md datepicker gj-unselectable",footer:"",button:"gj-button-md"}},bootstrap:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-picker gj-picker-bootstrap datepicker gj-unselectable",footer:"modal-footer",button:"btn btn-default"},iconsLibrary:"glyphicons",showOtherMonths:!0},bootstrap4:{style:{wrapper:"gj-datepicker gj-datepicker-bootstrap gj-unselectable input-group",input:"form-control",calendar:"gj-picker gj-picker-bootstrap datepicker gj-unselectable",footer:"modal-footer",button:"btn btn-default"},showOtherMonths:!0},fontawesome:{icons:{rightIcon:' ',previousMonth:' ',nextMonth:' '}},glyphicons:{icons:{rightIcon:' ',previousMonth:' ',nextMonth:' '}}},gj.datepicker.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"datepicker"),this.attr("data-datepicker","true"),gj.datepicker.methods.initialize(this,this.data()),this},initialize:function(e,t){var r,a,i=e.parent('div[role="wrapper"]');0===i.length?(i=$('
').addClass(t.style.wrapper),e.wrap(i)):i.addClass(t.style.wrapper),i=e.parent('div[role="wrapper"]'),t.width&&i.css("width",t.width),e.val(t.value).addClass(t.style.input).attr("role","input"),t.fontSize&&e.css("font-size",t.fontSize),"bootstrap"===t.uiLibrary||"bootstrap4"===t.uiLibrary?"small"===t.size?(i.addClass("input-group-sm"),e.addClass("form-control-sm")):"large"===t.size&&(i.addClass("input-group-lg"),e.addClass("form-control-lg")):"small"===t.size?i.addClass("small"):"large"===t.size&&i.addClass("large"),t.showRightIcon&&((a="bootstrap"===t.uiLibrary?$(''+t.icons.rightIcon+" "):"bootstrap4"===t.uiLibrary?$(''+t.icons.rightIcon+" "):$(t.icons.rightIcon)).attr("role","right-icon"),a.on("click",function(r){$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]').is(":visible")?gj.datepicker.methods.close(e):gj.datepicker.methods.open(e,t)}),i.append(a)),t.showOnFocus&&e.on("focus",function(){gj.datepicker.methods.open(e,t)}),r=gj.datepicker.methods.createCalendar(e,t),!0!==t.footer&&(e.on("blur",function(){e.timeout=setTimeout(function(){gj.datepicker.methods.close(e)},500)}),r.mousedown(function(){return clearTimeout(e.timeout),document.activeElement!==e[0]&&e.focus(),!1}),r.on("click",function(){clearTimeout(e.timeout),document.activeElement!==e[0]&&e.focus()})),t.keyboardNavigation&&$(document).on("keydown",gj.datepicker.methods.createKeyDownHandler(e,r,t))},createCalendar:function(e,t){var r,a,i,o,n,d=$('
').addClass(t.style.calendar).attr("guid",e.attr("data-guid"));return t.fontSize&&d.css("font-size",t.fontSize),!(r=gj.core.parseDate(t.value,t.format,t.locale))||isNaN(r.getTime())?r=new Date:e.attr("day",r.getFullYear()+"-"+r.getMonth()+"-"+r.getDate()),d.attr("month",r.getMonth()),d.attr("year",r.getFullYear()),gj.datepicker.methods.renderHeader(e,d,t,r),a=$('
'),d.append(a),t.footer&&(i=$(''),(o=$(''+gj.core.messages[t.locale].cancel+" ")).on("click",function(){e.close()}),i.append(o),(n=$(''+gj.core.messages[t.locale].ok+" ")).on("click",function(){var r,a,i=d.attr("selectedDay");i?(a=i.split("-"),r=new Date(a[0],a[1],a[2],d.attr("hour")||0,d.attr("minute")||0),gj.datepicker.methods.change(e,d,t,r)):e.close()}),i.append(n),d.append(i)),d.hide(),$("body").append(d),t.modal&&(d.wrapAll('
'),gj.core.center(d)),d},renderHeader:function(e,t,r,a){var i,o,n;r.header&&(i=$('
'),(n=$('
').on("click",function(){gj.datepicker.methods.renderDecade(e,t,r),n.addClass("selected"),o.removeClass("selected")})).html(gj.core.formatDate(a,"yyyy",r.locale)),i.append(n),(o=$('
').on("click",function(){gj.datepicker.methods.renderMonth(e,t,r),o.addClass("selected"),n.removeClass("selected")})).html(gj.core.formatDate(a,"ddd, mmm dd",r.locale)),i.append(o),t.append(i))},updateHeader:function(e,t,r){e.find('[role="header"] [role="year"]').removeClass("selected").html(gj.core.formatDate(r,"yyyy",t.locale)),e.find('[role="header"] [role="date"]').addClass("selected").html(gj.core.formatDate(r,"ddd, mmm dd",t.locale)),e.find('[role="header"] [role="hour"]').removeClass("selected").html(gj.core.formatDate(r,"HH",t.locale)),e.find('[role="header"] [role="minute"]').removeClass("selected").html(gj.core.formatDate(r,"MM",t.locale))},createNavigation:function(e,t,r,a){var o,n,d=$(" ");for((n=$('
')).append($(""+a.icons.previousMonth+"
").on("click",gj.datepicker.methods.prev(e,a))),n.append($('
').on("click",gj.datepicker.methods.changePeriod(e,a))),n.append($(""+a.icons.nextMonth+"
").on("click",gj.datepicker.methods.next(e,a))),t.append(n),o=$(' '),a.calendarWeeks&&o.append("
"),i=a.weekStartDay;i"+gj.core.messages[a.locale].weekDaysMin[i]+"
");for(i=0;i"+gj.core.messages[a.locale].weekDaysMin[i]+"
");d.append(o),r.append(d)},renderMonth:function(e,t,r){var a,i,o,n,d,s,l,c,g,p,u,h,f,m,v,b=t.children('[role="body"]'),y=$(""),j=$(" "),w=gj.core.messages[r.locale].titleFormat;for(b.off().empty(),gj.datepicker.methods.createNavigation(e,b,y,r),n=parseInt(t.attr("month"),10),d=parseInt(t.attr("year"),10),t.attr("type","month"),w=w.replace("mmmm",gj.core.messages[r.locale].monthNames[n]).replace("yyyy",d),t.find('div[role="period"]').text(w),s=new Array(31,28,31,30,31,30,31,31,30,31,30,31),d%4==0&&1900!=d&&(s[1]=29),l=s[n],c=(new Date(d,n,1).getDay()+7-r.weekStartDay)%7,a=0,$row=$(" "),u=gj.datepicker.methods.getPrevMonth(n,d),g=1;g<=c;g++)o=s[u.month]-c+g,v=new Date(u.year,u.month,o),r.calendarWeeks&&1===g&&$row.append(''+gj.datepicker.methods.getWeekNumber(v)+"
"),f=$(' '),r.showOtherMonths&&(m=$(""+o+"
"),f.append(m),r.selectOtherMonths&&gj.datepicker.methods.isSelectable(r,v)?(f.addClass("gj-cursor-pointer").attr("day",o).attr("month",u.month).attr("year",u.year),m.on("click",gj.datepicker.methods.dayClickHandler(e,t,r,v)),m.on("mousedown",function(e){e.stopPropagation()})):f.addClass("disabled")),$row.append(f),a++;for(g>1&&j.append($row),p=new Date,g=1;g<=l;g++)v=new Date(d,n,g),0==a&&($row=$(""),r.calendarWeeks&&$row.append(''+gj.datepicker.methods.getWeekNumber(v)+"
")),f=$(' '),d===p.getFullYear()&&n===p.getMonth()&&g===p.getDate()?f.addClass("today"):f.addClass("current-month"),m=$(""+g+"
"),gj.datepicker.methods.isSelectable(r,v)?(f.addClass("gj-cursor-pointer"),m.on("click",gj.datepicker.methods.dayClickHandler(e,t,r,v)),m.on("mousedown",function(e){e.stopPropagation()})):f.addClass("disabled"),f.append(m),$row.append(f),7==++a&&(j.append($row),a=0);for(h=gj.datepicker.methods.getNextMonth(n,d),g=1;0!=a;g++)v=new Date(h.year,h.month,g),f=$(' '),r.showOtherMonths&&(m=$(""+g+"
"),r.selectOtherMonths&&gj.datepicker.methods.isSelectable(r,v)?(f.addClass("gj-cursor-pointer").attr("day",g).attr("month",h.month).attr("year",h.year),m.on("click",gj.datepicker.methods.dayClickHandler(e,t,r,v)),m.on("mousedown",function(e){e.stopPropagation()})):f.addClass("disabled"),f.append(m)),$row.append(f),7==++a&&(j.append($row),a=0);y.append(j),b.append(y),t.attr("selectedDay")&&(i=t.attr("selectedDay").split("-"),v=new Date(i[0],i[1],i[2],t.attr("hour")||0,t.attr("minute")||0),t.find('tbody td[day="'+i[2]+'"][month="'+i[1]+'"]').addClass("selected"),gj.datepicker.methods.updateHeader(t,r,v))},renderYear:function(e,t,r){var a,i,o,n,d=t.find('>[role="body"]>table'),s=d.children("tbody");for(d.children("thead").hide(),a=parseInt(t.attr("year"),10),t.attr("type","year"),t.find('div[role="period"]').text(a),s.empty(),i=0;i<3;i++){for($row=$(" "),o=4*i;o<=4*i+3;o++)(n=$(""+gj.core.messages[r.locale].monthShortNames[o]+"
")).on("click",gj.datepicker.methods.selectMonth(e,t,r,o)),$cell=$(" ").append(n),$row.append($cell);s.append($row)}},renderDecade:function(e,t,r){var a,i,o,n,d,s=t.find('>[role="body"]>table'),l=s.children("tbody");for(s.children("thead").hide(),i=(a=parseInt(t.attr("year"),10))-a%10,t.attr("type","decade"),t.find('div[role="period"]').text(i+" - "+(i+9)),l.empty(),o=i-1;o<=i+10;o+=4){for($row=$(" "),n=o;n<=o+3;n++)(d=$(""+n+"
")).on("click",gj.datepicker.methods.selectYear(e,t,r,n)),$cell=$(" ").append(d),$row.append($cell);l.append($row)}},renderCentury:function(e,t,r){var a,i,o,n,d,s=t.find('>[role="body"]>table'),l=s.children("tbody");for(s.children("thead").hide(),i=(a=parseInt(t.attr("year"),10))-a%100,t.attr("type","century"),t.find('div[role="period"]').text(i+" - "+(i+99)),l.empty(),o=i-10;o "),n=o;n<=o+30;n+=10)(d=$(""+n+"
")).on("click",gj.datepicker.methods.selectDecade(e,t,r,n)),$cell=$(" ").append(d),$row.append($cell);l.append($row)}},getWeekNumber:function(e){var t=new Date(e.valueOf());t.setDate(t.getDate()+6),(t=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()))).setUTCDate(t.getUTCDate()+4-(t.getUTCDay()||7));var r=new Date(Date.UTC(t.getUTCFullYear(),0,1));return Math.ceil(((t-r)/864e5+1)/7)},getMinDate:function(e){var t;return e.minDate&&("string"==typeof e.minDate?t=gj.core.parseDate(e.minDate,e.format,e.locale):"function"==typeof e.minDate?"string"==typeof(t=e.minDate())&&(t=gj.core.parseDate(t,e.format,e.locale)):"function"==typeof e.minDate.getMonth&&(t=e.minDate)),t},getMaxDate:function(e){var t;return e.maxDate&&("string"==typeof e.maxDate?t=gj.core.parseDate(e.maxDate,e.format,e.locale):"function"==typeof e.maxDate?"string"==typeof(t=e.maxDate())&&(t=gj.core.parseDate(t,e.format,e.locale)):"function"==typeof e.maxDate.getMonth&&(t=e.maxDate)),t},isSelectable:function(e,t){var r,a=!0,i=gj.datepicker.methods.getMinDate(e),o=gj.datepicker.methods.getMaxDate(e);if(i&&to&&(a=!1),a){if(e.disableDates)if($.isArray(e.disableDates))for(r=0;r-1&&(a=!1)}return a},getPrevMonth:function(e,t){return date=new Date(t,e,1),date.setMonth(date.getMonth()-1),{month:date.getMonth(),year:date.getFullYear()}},getNextMonth:function(e,t){return date=new Date(t,e,1),date.setMonth(date.getMonth()+1),{month:date.getMonth(),year:date.getFullYear()}},prev:function(e,t){return function(){var r,a,i,o,n,d=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');switch(i=parseInt(d.attr("year"),10),d.attr("type")){case"month":a=parseInt(d.attr("month"),10),r=gj.datepicker.methods.getPrevMonth(a,i),d.attr("month",r.month),d.attr("year",r.year),gj.datepicker.methods.renderMonth(e,d,t);break;case"year":d.attr("year",i-1),gj.datepicker.methods.renderYear(e,d,t);break;case"decade":o=i-i%10,d.attr("year",o-10),gj.datepicker.methods.renderDecade(e,d,t);break;case"century":n=i-i%100,d.attr("year",n-100),gj.datepicker.methods.renderCentury(e,d,t)}}},next:function(e,t){return function(){var r,a,i,o,n,d=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');switch(i=parseInt(d.attr("year"),10),d.attr("type")){case"month":a=parseInt(d.attr("month"),10),r=gj.datepicker.methods.getNextMonth(a,i),d.attr("month",r.month),d.attr("year",r.year),gj.datepicker.methods.renderMonth(e,d,t);break;case"year":d.attr("year",i+1),gj.datepicker.methods.renderYear(e,d,t);break;case"decade":o=i-i%10,d.attr("year",o+10),gj.datepicker.methods.renderDecade(e,d,t);break;case"century":n=i-i%100,d.attr("year",n+100),gj.datepicker.methods.renderCentury(e,d,t)}}},changePeriod:function(e,t){return function(r){var a=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');switch(a.attr("type")){case"month":gj.datepicker.methods.renderYear(e,a,t);break;case"year":gj.datepicker.methods.renderDecade(e,a,t);break;case"decade":gj.datepicker.methods.renderCentury(e,a,t)}}},dayClickHandler:function(e,t,r,a){return function(i){return i&&i.stopPropagation(),gj.datepicker.methods.selectDay(e,t,r,a),!0!==r.footer&&!1!==r.autoClose&&gj.datepicker.methods.change(e,t,r,a),e}},change:function(e,t,r,a){a.getDate();var i=a.getMonth(),o=a.getFullYear(),n=gj.core.formatDate(a,r.format,r.locale);t.attr("month",i),t.attr("year",o),e.val(n),gj.datepicker.events.change(e),"none"!==window.getComputedStyle(t[0]).display&&gj.datepicker.methods.close(e)},selectDay:function(e,t,r,a){var i=a.getDate(),o=a.getMonth(),n=a.getFullYear();t.attr("selectedDay",n+"-"+o+"-"+i),t.find("tbody td").removeClass("selected"),t.find('tbody td[day="'+i+'"][month="'+o+'"]').addClass("selected"),gj.datepicker.methods.updateHeader(t,r,a),gj.datepicker.events.select(e,"day")},selectMonth:function(e,t,r,a){return function(i){t.attr("month",a),gj.datepicker.methods.renderMonth(e,t,r),gj.datepicker.events.select(e,"month")}},selectYear:function(e,t,r,a){return function(i){t.attr("year",a),gj.datepicker.methods.renderYear(e,t,r),gj.datepicker.events.select(e,"year")}},selectDecade:function(e,t,r,a){return function(i){t.attr("year",a),gj.datepicker.methods.renderDecade(e,t,r),gj.datepicker.events.select(e,"decade")}},open:function(e,t){var r,a=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');switch(e.val()?e.value(e.val()):(r=new Date,a.attr("month",r.getMonth()),a.attr("year",r.getFullYear())),a.attr("type")){case"month":gj.datepicker.methods.renderMonth(e,a,t);break;case"year":gj.datepicker.methods.renderYear(e,a,t);break;case"decade":gj.datepicker.methods.renderDecade(e,a,t);break;case"century":gj.datepicker.methods.renderCentury(e,a,t)}a.show(),a.closest('div[role="modal"]').show(),t.modal?gj.core.center(a):(gj.core.setChildPosition(e[0],a[0]),document.activeElement!==e[0]&&e.focus()),clearTimeout(e.timeout),gj.datepicker.events.open(e)},close:function(e){var t=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');t.hide(),t.closest('div[role="modal"]').hide(),gj.datepicker.events.close(e)},createKeyDownHandler:function(e,t,r){return function(a){var i,o,n,d,s,l;a=a||window.event;"none"!==window.getComputedStyle(t[0]).display&&(l=gj.datepicker.methods.getActiveCell(t),"38"==a.keyCode?(d=l.index(),(s=l.closest("tr").prev("tr").find("td:eq("+d+")")).is("[day]")||(gj.datepicker.methods.prev(e,r)(),(s=t.find("tbody tr").last().find("td:eq("+d+")")).is(":empty")&&(s=t.find("tbody tr").last().prev().find("td:eq("+d+")"))),s.is("[day]")&&(s.addClass("focused"),l.removeClass("focused"))):"40"==a.keyCode?(d=l.index(),(s=l.closest("tr").next("tr").find("td:eq("+d+")")).is("[day]")||(gj.datepicker.methods.next(e,r)(),(s=t.find("tbody tr").first().find("td:eq("+d+")")).is("[day]")||(s=t.find("tbody tr:eq(1)").find("td:eq("+d+")"))),s.is("[day]")&&(s.addClass("focused"),l.removeClass("focused"))):"37"==a.keyCode?(0===(s=l.prev("td[day]:not(.disabled)")).length&&(s=l.closest("tr").prev("tr").find("td[day]").last()),0===s.length&&(gj.datepicker.methods.prev(e,r)(),s=t.find("tbody tr").last().find("td[day]").last()),s.length>0&&(s.addClass("focused"),l.removeClass("focused"))):"39"==a.keyCode?(0===(s=l.next("[day]:not(.disabled)")).length&&(s=l.closest("tr").next("tr").find("td[day]").first()),0===s.length&&(gj.datepicker.methods.next(e,r)(),s=t.find("tbody tr").first().find("td[day]").first()),s.length>0&&(s.addClass("focused"),l.removeClass("focused"))):"13"==a.keyCode?(n=parseInt(l.attr("day"),10),i=parseInt(l.attr("month"),10),o=parseInt(l.attr("year"),10),gj.datepicker.methods.dayClickHandler(e,t,r,new Date(o,i,n))()):"27"==a.keyCode&&e.close())}},getActiveCell:function(e){var t=e.find("td[day].focused");return 0===t.length&&0===(t=e.find("td[day].selected")).length&&0===(t=e.find("td[day].today")).length&&(t=e.find("td[day]:not(.disabled)").first()),t},value:function(e,t){var r,a,i=e.data();return void 0===t?e.val():((a=gj.core.parseDate(t,i.format,i.locale))&&a.getTime()?(r=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]'),gj.datepicker.methods.dayClickHandler(e,r,i,a)()):e.val(""),e)},destroy:function(e){var t=e.data(),r=e.parent(),a=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');return t&&(e.off(),a.parent('[role="modal"]').length>0&&a.unwrap(),a.remove(),e.removeData(),e.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datepicker"),e.removeClass(),r.children('[role="right-icon"]').remove(),e.unwrap()),e}},gj.datepicker.events={change:function(e){return e.triggerHandler("change")},select:function(e,t){return e.triggerHandler("select",[t])},open:function(e){return e.triggerHandler("open")},close:function(e){return e.triggerHandler("close")}},gj.datepicker.widget=function(e,t){var r=gj.datepicker.methods;return this.value=function(e){return r.value(this,e)},this.destroy=function(){return r.destroy(this)},this.open=function(){return r.open(this,this.data())},this.close=function(){return r.close(this)},$.extend(e,this),"true"!==e.attr("data-datepicker")&&r.init.call(e,t),e},gj.datepicker.widget.prototype=new gj.widget,gj.datepicker.widget.constructor=gj.datepicker.widget,jQuery.fn.datepicker=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.datepicker.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.datepicker.widget(this,e)}},gj.timepicker={plugins:{}},gj.timepicker.config={base:{width:void 0,modal:!0,header:!0,footer:!0,format:"HH:MM",uiLibrary:"materialdesign",value:void 0,mode:"ampm",locale:"en-us",size:"default",icons:{rightIcon:' '},style:{modal:"gj-modal",wrapper:"gj-timepicker gj-timepicker-md gj-unselectable",input:"gj-textbox-md",clock:"gj-picker gj-picker-md timepicker",footer:"",button:"gj-button-md"}},bootstrap:{style:{wrapper:"gj-timepicker gj-timepicker-bootstrap gj-unselectable input-group",input:"form-control",clock:"gj-picker gj-picker-bootstrap timepicker",footer:"modal-footer",button:"btn btn-default"},iconsLibrary:"glyphicons"},bootstrap4:{style:{wrapper:"gj-timepicker gj-timepicker-bootstrap gj-unselectable input-group",input:"form-control border",clock:"gj-picker gj-picker-bootstrap timepicker",footer:"modal-footer",button:"btn btn-default"}}},gj.timepicker.methods={init:function(e){return gj.picker.widget.prototype.init.call(this,e,"timepicker"),this},initialize:function(){},initMouse:function(e,t,r,a){e.off(),e.on("mousedown",gj.timepicker.methods.mouseDownHandler(t,r)),e.on("mousemove",gj.timepicker.methods.mouseMoveHandler(t,r,a)),e.on("mouseup",gj.timepicker.methods.mouseUpHandler(t,r,a))},createPicker:function(e){var t,r=e.data(),a=$('
').addClass(r.style.clock).attr("guid",e.attr("data-guid")),i=$('
'),o=$('
'),n=$('
'),d=$('
'),s=$('
'),l=$(''+gj.core.messages[r.locale].ok+" "),c=$(''+gj.core.messages[r.locale].cancel+" "),g=$('');return!(t=gj.core.parseDate(r.value,r.format,r.locale))||isNaN(t.getTime())?t=new Date:e.attr("hours",t.getHours()),gj.timepicker.methods.initMouse(s,e,a,r),r.header&&(i.on("click",function(){gj.timepicker.methods.renderHours(e,a,r)}),o.on("click",function(){gj.timepicker.methods.renderMinutes(e,a,r)}),n.append(i).append(":").append(o),"ampm"===r.mode&&(d.append($(''+gj.core.messages[r.locale].am+" ").on("click",function(){var t=gj.timepicker.methods.getHour(a);a.attr("mode","am"),$(this).addClass("selected"),$(this).parent().children('[role="pm"]').removeClass("selected"),t>=12&&a.attr("hour",t-12),r.modal||(clearTimeout(e.timeout),e.focus())})),d.append(" "),d.append($(''+gj.core.messages[r.locale].pm+" ").on("click",function(){var t=gj.timepicker.methods.getHour(a);a.attr("mode","pm"),$(this).addClass("selected"),$(this).parent().children('[role="am"]').removeClass("selected"),t<12&&a.attr("hour",t+12),r.modal||(clearTimeout(e.timeout),e.focus())})),n.append(d)),a.append(n)),a.append(s),r.footer&&(c.on("click",function(){e.close()}),g.append(c),l.on("click",gj.timepicker.methods.setTime(e,a)),g.append(l),a.append(g)),a.hide(),$("body").append(a),r.modal&&(a.wrapAll('
'),gj.core.center(a)),a},getHour:function(e){return parseInt(e.attr("hour"),10)||0},getMinute:function(e){return parseInt(e.attr("minute"),10)||0},setTime:function(e,t){return function(){var r=gj.timepicker.methods.getHour(t),a=gj.timepicker.methods.getMinute(t),i=t.attr("mode"),o=new Date(0,0,0,12===r&&"am"===i?0:r,a),n=e.data(),d=gj.core.formatDate(o,n.format,n.locale);e.value(d),e.close()}},getPointerValue:function(e,t,r){var a,i,o=Math.atan2(128-e,128-t)/Math.PI*180;switch(o<0&&(o=360+o),r){case"ampm":return 0===(a=12-Math.round(12*o/360))?12:a;case"24hr":return i=Math.sqrt(Math.pow(128-e,2)+Math.pow(128-t,2)),0===(a=12-Math.round(12*o/360))&&(a=12),i<96&&(a=12===a?0:a+12),a;case"minutes":return 60===(a=Math.round(60-60*o/360))?0:a}},updateArrow:function(e,t,r,a){var i,o,n=t.mouseX(e),d=t.mouseY(e),s=window.scrollY||window.pageYOffset||0,l=window.scrollX||window.pageXOffset||0;i=e.target.getBoundingClientRect(),"hours"==a.dialMode?(o=gj.timepicker.methods.getPointerValue(n-l-i.left,d-s-i.top,a.mode),r.attr("hour","ampm"===a.mode&&"pm"===r.attr("mode")&&o<12?o+12:o)):"minutes"==a.dialMode&&(o=gj.timepicker.methods.getPointerValue(n-l-i.left,d-s-i.top,"minutes"),r.attr("minute",o)),gj.timepicker.methods.update(t,r,a)},update:function(e,t,r){var a,i,o,n,d,s;a=gj.timepicker.methods.getHour(t),i=gj.timepicker.methods.getMinute(t),o=t.find('[role="arrow"]'),"hours"==r.dialMode&&(0==a||a>12)&&"24hr"===r.mode?o.css("width","calc(50% - 52px)"):o.css("width","calc(50% - 20px)"),"hours"==r.dialMode?o.css("transform","rotate("+(30*a-90).toString()+"deg)"):o.css("transform","rotate("+(6*i-90).toString()+"deg)"),o.show(),n="ampm"===r.mode&&a>12?a-12:0==a?12:a,(s=t.find('[role="body"] span')).removeClass("selected"),s.filter(function(e){return"hours"==r.dialMode?parseInt($(this).text(),10)==n:parseInt($(this).text(),10)==i}).addClass("selected"),r.header&&((d=t.find('[role="header"]')).find('[role="hour"]').text(n),d.find('[role="minute"]').text(gj.core.pad(i)),"ampm"===r.mode&&(a>=12?(d.find('[role="pm"]').addClass("selected"),d.find('[role="am"]').removeClass("selected")):(d.find('[role="am"]').addClass("selected"),d.find('[role="pm"]').removeClass("selected"))))},mouseDownHandler:function(e,t){return function(t){e.mouseMove=!0}},mouseMoveHandler:function(e,t,r){return function(a){e.mouseMove&&gj.timepicker.methods.updateArrow(a,e,t,r)}},mouseUpHandler:function(e,t,r){return function(a){gj.timepicker.methods.updateArrow(a,e,t,r),e.mouseMove=!1,r.modal||(clearTimeout(e.timeout),e.focus()),"hours"==r.dialMode?setTimeout(function(){gj.timepicker.events.select(e,"hour"),gj.timepicker.methods.renderMinutes(e,t,r)},1e3):"minutes"==r.dialMode&&(!0!==r.footer&&!1!==r.autoClose&&gj.timepicker.methods.setTime(e,t)(),gj.timepicker.events.select(e,"minute"))}},renderHours:function(e,t,r){var a,i=t.find('[role="body"]');clearTimeout(e.timeout),i.empty(),(a=$('
')).append(''),a.append('1 '),a.append('2 '),a.append('3 '),a.append('4 '),a.append('5 '),a.append('6 '),a.append('7 '),a.append('8 '),a.append('9 '),a.append('10 '),a.append('11 '),a.append('12 '),"24hr"===r.mode&&(a.append('13 '),a.append('14 '),a.append('15 '),a.append('16 '),a.append('17 '),a.append('18 '),a.append('19 '),a.append('20 '),a.append('21 '),a.append('22 '),a.append('23 '),a.append('00 ')),i.append(a),t.find('[role="header"] [role="hour"]').addClass("selected"),t.find('[role="header"] [role="minute"]').removeClass("selected"),r.dialMode="hours",gj.timepicker.methods.update(e,t,r)},renderMinutes:function(e,t,r){var a=t.find('[role="body"]');clearTimeout(e.timeout),a.empty(),$dial=$('
'),$dial.append(''),$dial.append('5 '),$dial.append('10 '),$dial.append('15 '),$dial.append('20 '),$dial.append('25 '),$dial.append('30 '),$dial.append('35 '),$dial.append('40 '),$dial.append('45 '),$dial.append('50 '),$dial.append('55 '),$dial.append('00 '),a.append($dial),t.find('[role="header"] [role="hour"]').removeClass("selected"),t.find('[role="header"] [role="minute"]').addClass("selected"),r.dialMode="minutes",gj.timepicker.methods.update(e,t,r)},open:function(e){var t,r,a=e.data(),i=$("body").find('[role="picker"][guid="'+e.attr("data-guid")+'"]');return r=(t=e.value()?gj.core.parseDate(e.value(),a.format,a.locale):new Date).getHours(),"ampm"===a.mode&&i.attr("mode",r>12?"pm":"am"),i.attr("hour",r),i.attr("minute",t.getMinutes()),gj.timepicker.methods.renderHours(e,i,a),gj.picker.widget.prototype.open.call(e,"timepicker"),e},value:function(e,t){e.data();return void 0===t?e.val():(e.val(t),gj.timepicker.events.change(e),e)}},gj.timepicker.events={change:function(e){return e.triggerHandler("change")},select:function(e,t){return e.triggerHandler("select",[t])},open:function(e){return e.triggerHandler("open")},close:function(e){return e.triggerHandler("close")}},gj.timepicker.widget=function(e,t){var r=gj.timepicker.methods;return this.mouseMove=!1,this.value=function(e){return r.value(this,e)},this.destroy=function(){return gj.picker.widget.prototype.destroy.call(this,"timepicker")},this.open=function(){return gj.timepicker.methods.open(this)},this.close=function(){return gj.picker.widget.prototype.close.call(this,"timepicker")},$.extend(e,this),"true"!==e.attr("data-timepicker")&&r.init.call(e,t),e},gj.timepicker.widget.prototype=new gj.picker.widget,gj.timepicker.widget.constructor=gj.timepicker.widget,jQuery.fn.timepicker=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.timepicker.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.timepicker.widget(this,e)}},gj.datetimepicker={plugins:{},messages:{"en-us":{}}},gj.datetimepicker.config={base:{datepicker:gj.datepicker.config.base,timepicker:gj.timepicker.config.base,uiLibrary:"materialdesign",value:void 0,format:"HH:MM mm/dd/yyyy",width:void 0,modal:!1,footer:!1,size:"default",locale:"en-us",icons:{},style:{calendar:"gj-picker gj-picker-md datetimepicker gj-unselectable"}},bootstrap:{style:{calendar:"gj-picker gj-picker-bootstrap datetimepicker gj-unselectable"},iconsLibrary:"glyphicons"},bootstrap4:{style:{calendar:"gj-picker gj-picker-bootstrap datetimepicker gj-unselectable"}}},gj.datetimepicker.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"datetimepicker"),this.attr("data-datetimepicker","true"),gj.datetimepicker.methods.initialize(this),this},getConfig:function(e,t){var r=gj.widget.prototype.getConfig.call(this,e,t);return uiLibrary=e.hasOwnProperty("uiLibrary")?e.uiLibrary:r.uiLibrary,gj.datepicker.config[uiLibrary]&&$.extend(!0,r.datepicker,gj.datepicker.config[uiLibrary]),gj.timepicker.config[uiLibrary]&&$.extend(!0,r.timepicker,gj.timepicker.config[uiLibrary]),iconsLibrary=e.hasOwnProperty("iconsLibrary")?e.iconsLibrary:r.iconsLibrary,gj.datepicker.config[iconsLibrary]&&$.extend(!0,r.datepicker,gj.datepicker.config[iconsLibrary]),gj.timepicker.config[iconsLibrary]&&$.extend(!0,r.timepicker,gj.timepicker.config[iconsLibrary]),r},initialize:function(e){var t,r,a,i,o,n,d,s,l=e.data();l.datepicker.uiLibrary=l.uiLibrary,l.datepicker.iconsLibrary=l.iconsLibrary,l.datepicker.width=l.width,l.datepicker.format=l.format,l.datepicker.locale=l.locale,l.datepicker.modal=l.modal,l.datepicker.footer=l.footer,l.datepicker.style.calendar=l.style.calendar,l.datepicker.value=l.value,l.datepicker.size=l.size,l.datepicker.autoClose=!1,gj.datepicker.methods.initialize(e,l.datepicker),e.on("select",function(r,a){var i,o;"day"===a?gj.datetimepicker.methods.createShowHourHandler(e,t,l)():"minute"===a&&t.attr("selectedDay")&&!0!==l.footer&&(selectedDay=t.attr("selectedDay").split("-"),i=new Date(selectedDay[0],selectedDay[1],selectedDay[2],t.attr("hour")||0,t.attr("minute")||0),o=gj.core.formatDate(i,l.format,l.locale),e.val(o),gj.datetimepicker.events.change(e),gj.datetimepicker.methods.close(e))}),e.on("open",function(){var e=t.children('[role="header"]');e.find('[role="calendarMode"]').addClass("selected"),e.find('[role="clockMode"]').removeClass("selected")}),t=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]'),o=l.value?gj.core.parseDate(l.value,l.format,l.locale):new Date,t.attr("hour",o.getHours()),t.attr("minute",o.getMinutes()),l.timepicker.uiLibrary=l.uiLibrary,l.timepicker.iconsLibrary=l.iconsLibrary,l.timepicker.format=l.format,l.timepicker.locale=l.locale,l.timepicker.header=!0,l.timepicker.footer=l.footer,l.timepicker.size=l.size,l.timepicker.mode="24hr",l.timepicker.autoClose=!1,r=$('
'),(a=$('
')).on("click",gj.datetimepicker.methods.createShowDateHandler(e,t,l)),a.html(gj.core.formatDate(new Date,"ddd, mmm dd",l.locale)),r.append(a),n=$('
'),(d=$('event ')).on("click",gj.datetimepicker.methods.createShowDateHandler(e,t,l)),n.append(d),(i=$('
')).append($('
').on("click",gj.datetimepicker.methods.createShowHourHandler(e,t,l)).html(gj.core.formatDate(new Date,"HH",l.locale))),i.append(":"),i.append($('
').on("click",gj.datetimepicker.methods.createShowMinuteHandler(e,t,l)).html(gj.core.formatDate(new Date,"MM",l.locale))),n.append(i),(s=$('clock ')).on("click",gj.datetimepicker.methods.createShowHourHandler(e,t,l)),n.append(s),r.append(n),t.prepend(r)},createShowDateHandler:function(e,t,r){return function(a){var i=t.children('[role="header"]');i.find('[role="calendarMode"]').addClass("selected"),i.find('[role="date"]').addClass("selected"),i.find('[role="clockMode"]').removeClass("selected"),i.find('[role="hour"]').removeClass("selected"),i.find('[role="minute"]').removeClass("selected"),gj.datepicker.methods.renderMonth(e,t,r.datepicker)}},createShowHourHandler:function(e,t,r){return function(){var a=t.children('[role="header"]');a.find('[role="calendarMode"]').removeClass("selected"),a.find('[role="date"]').removeClass("selected"),a.find('[role="clockMode"]').addClass("selected"),a.find('[role="hour"]').addClass("selected"),a.find('[role="minute"]').removeClass("selected"),gj.timepicker.methods.initMouse(t.children('[role="body"]'),e,t,r.timepicker),gj.timepicker.methods.renderHours(e,t,r.timepicker)}},createShowMinuteHandler:function(e,t,r){return function(){var a=t.children('[role="header"]');a.find('[role="calendarMode"]').removeClass("selected"),a.find('[role="date"]').removeClass("selected"),a.find('[role="clockMode"]').addClass("selected"),a.find('[role="hour"]').removeClass("selected"),a.find('[role="minute"]').addClass("selected"),gj.timepicker.methods.initMouse(t.children('[role="body"]'),e,t,r.timepicker),gj.timepicker.methods.renderMinutes(e,t,r.timepicker)}},close:function(e){var t=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');t.hide(),t.closest('div[role="modal"]').hide()},value:function(e,t){var r,a,i,o=e.data();return void 0===t?e.val():((a=gj.core.parseDate(t,o.format,o.locale))?(r=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]'),gj.datepicker.methods.dayClickHandler(e,r,o,a)(),i=a.getHours(),"ampm"===o.mode&&r.attr("mode",i>12?"pm":"am"),r.attr("hour",i),r.attr("minute",a.getMinutes()),e.val(t)):e.val(""),e)},destroy:function(e){var t=e.data(),r=e.parent(),a=$("body").find('[role="calendar"][guid="'+e.attr("data-guid")+'"]');return t&&(e.off(),a.parent('[role="modal"]').length>0&&a.unwrap(),a.remove(),e.removeData(),e.removeAttr("data-type").removeAttr("data-guid").removeAttr("data-datetimepicker"),e.removeClass(),r.children('[role="right-icon"]').remove(),e.unwrap()),e}},gj.datetimepicker.events={change:function(e){return e.triggerHandler("change")}},gj.datetimepicker.widget=function(e,t){var r=gj.datetimepicker.methods;return this.mouseMove=!1,this.value=function(e){return r.value(this,e)},this.open=function(){gj.datepicker.methods.open(this,this.data().datepicker)},this.close=function(){gj.datepicker.methods.close(this)},this.destroy=function(){return r.destroy(this)},$.extend(e,this),"true"!==e.attr("data-datetimepicker")&&r.init.call(e,t),e},gj.datetimepicker.widget.prototype=new gj.widget,gj.datetimepicker.widget.constructor=gj.datetimepicker.widget,gj.datetimepicker.widget.prototype.getConfig=gj.datetimepicker.methods.getConfig,jQuery.fn.datetimepicker=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.datetimepicker.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.datetimepicker.widget(this,e)}},gj.slider={plugins:{},messages:{"en-us":{}}},gj.slider.config={base:{min:0,max:100,width:void 0,uiLibrary:"materialdesign",value:void 0,icons:{},style:{wrapper:"gj-slider gj-slider-md",progress:void 0,track:void 0}},bootstrap:{style:{wrapper:"gj-slider gj-slider-bootstrap gj-slider-bootstrap-3",progress:"progress-bar",track:"progress"}},bootstrap4:{style:{wrapper:"gj-slider gj-slider-bootstrap gj-slider-bootstrap-4",progress:"progress-bar",track:"progress"}}},gj.slider.methods={init:function(e){return gj.widget.prototype.init.call(this,e,"slider"),this.attr("data-slider","true"),gj.slider.methods.initialize(this,this.data()),this},initialize:function(e,t){var r,a,i,o;e[0].style.display="none","wrapper"!==e[0].parentElement.attributes.role?((r=document.createElement("div")).setAttribute("role","wrapper"),e[0].parentNode.insertBefore(r,e[0]),r.appendChild(e[0])):r=e[0].parentElement,t.width&&(r.style.width=t.width+"px"),gj.core.addClasses(r,t.style.wrapper),null==(a=e[0].querySelector('[role="track"]'))&&((a=document.createElement("div")).setAttribute("role","track"),r.appendChild(a)),gj.core.addClasses(a,t.style.track),null==(i=e[0].querySelector('[role="handle"]'))&&((i=document.createElement("div")).setAttribute("role","handle"),r.appendChild(i)),null==(o=e[0].querySelector('[role="progress"]'))&&((o=document.createElement("div")).setAttribute("role","progress"),r.appendChild(o)),gj.core.addClasses(o,t.style.progress),t.value||(t.value=t.min),gj.slider.methods.value(e,t,t.value),gj.documentManager.subscribeForEvent("mouseup",e.data("guid"),gj.slider.methods.createMouseUpHandler(e,i,t)),i.addEventListener("mousedown",gj.slider.methods.createMouseDownHandler(i,t)),gj.documentManager.subscribeForEvent("mousemove",e.data("guid"),gj.slider.methods.createMouseMoveHandler(e,a,i,o,t)),i.addEventListener("click",function(e){e.stopPropagation()}),r.addEventListener("click",gj.slider.methods.createClickHandler(e,a,i,t))},createClickHandler:function(e,t,r,a){return function(i){var o,n,d,s,l;"true"!==r.getAttribute("drag")&&(o=gj.core.position(e[0].parentElement),n=(new gj.widget).mouseX(i)-o.left,d=gj.core.width(r)/2,s=gj.core.width(t)/(a.max-a.min),l=Math.round((n-d)/s)+a.min,gj.slider.methods.value(e,a,l))}},createMouseUpHandler:function(e,t,r){return function(r){"true"===t.getAttribute("drag")&&(t.setAttribute("drag","false"),gj.slider.events.change(e))}},createMouseDownHandler:function(e,t){return function(t){e.setAttribute("drag","true")}},createMouseMoveHandler:function(e,t,r,a,i){return function(a){var o,n,d,s,l,c,g;"true"===r.getAttribute("drag")&&(o=gj.core.position(e[0].parentElement),n=(new gj.widget).mouseX(a)-o.left,d=gj.core.width(t),s=gj.core.width(r)/2,l=d/(i.max-i.min),c=(i.value-i.min)*l,n>=s&&n<=d+s&&(n>c+l/2||nevent '},style:{modal:"gj-modal",wrapper:"gj-colorpicker gj-colorpicker-md gj-unselectable",input:"gj-textbox-md",picker:"gj-picker gj-picker-md colorpicker gj-unselectable",footer:"",button:"gj-button-md"}},bootstrap:{style:{}},bootstrap4:{style:{}}},gj.colorpicker.methods={init:function(e){return gj.picker.widget.prototype.init.call(this,e,"colorpicker"),gj.colorpicker.methods.initialize(this),this},initialize:function(e){},createPicker:function(e,t){var r=$('
').addClass(t.style.picker).attr("guid",e.attr("data-guid"));return r.html("test"),r.hide(),$("body").append(r),r},open:function(e){return e.val()&&e.value(e.val()),gj.picker.widget.prototype.open.call(e,"colorpicker")}},gj.colorpicker.events={change:function(e){return e.triggerHandler("change")},select:function(e){return e.triggerHandler("select")},open:function(e){return e.triggerHandler("open")},close:function(e){return e.triggerHandler("close")}},gj.colorpicker.widget=function(e,t){var r=gj.colorpicker.methods;return this.value=function(e){return r.value(this,e)},this.destroy=function(){return gj.picker.widget.prototype.destroy.call(this,"colorpicker")},this.open=function(){return r.open(this)},this.close=function(){return gj.picker.widget.prototype.close.call(this,"colorpicker")},$.extend(e,this),"true"!==e.attr("data-colorpicker")&&r.init.call(e,t),e},gj.colorpicker.widget.prototype=new gj.picker.widget,gj.colorpicker.widget.constructor=gj.colorpicker.widget,jQuery.fn.colorpicker=function(e){var t;if(this&&this.length){if("object"!=typeof e&&e){if((t=new gj.colorpicker.widget(this,null))[e])return t[e].apply(this,Array.prototype.slice.call(arguments,1));throw"Method "+e+" does not exist."}return new gj.colorpicker.widget(this,e)}};
\ No newline at end of file
diff --git a/cadline/docroot/login-external.php b/cadline/docroot/login-external.php
index de0f4e5e..eb53c993 100644
--- a/cadline/docroot/login-external.php
+++ b/cadline/docroot/login-external.php
@@ -1,93 +1,93 @@
-getQuery(true);
-$query
- ->select('id, password')
- ->from('#__users')
- ->where('username=' . $db->quote($credentials['username']));
-$db->setQuery($query);
-$result = $db->loadObject();
-
-if ($result)
-{
- $match = JUserHelper::verifyPassword($credentials['password'], $result->password, $result->id);
-
- if ($match === true)
- {
- $user = JUser::getInstance($result->id); // Bring this in line with the rest of the system
- $error = $app->login($credentials); //perform the login action
- $logged_user = JFactory::getUser();
- $expire = time()+86400;
-
- $db->setQuery('SELECT * FROM `panorama`.`user` WHERE serial='.$credentials['serial'].';');
- $res = $db->loadObjectList();
-
- $tomb=array(
- 'serial'=>$db->quote($credentials['serial']),
- 'nUserID'=>$db->quote($logged_user->nUserID),
- 'strName'=>$db->quote($logged_user->name),
- 'expire'=>$db->quote(date("Y-m-d H:i:s", $expire)),
- );
-
- if (empty($res)) // ha még egyáltalán nincs benne a széria szám
- {
- $query=$db->getQuery(true);
- $query
- ->insert("`panorama`.`user`")
- ->columns($db->quoteName(array_keys($tomb)))
- ->values(implode(',', $tomb));
- $db->setQuery($query);
- $db->execute();
- $result=$db->insertid();
- }
- else if ((int)$res[0]->nUserID==0) // ha facebook-al már be van jelentkezve
- {
- foreach ($tomb as $k=>$v) $values[]=$db->quoteName($k)."=".$v;
-
- $query=$db->getQuery(true);
- $query
- ->update("`panorama`.`user`")
- ->set($values)
- ->where(array('`id`='.$res[0]->id));
- $db->setQuery($query);
- $result=$db->execute();
- }
-
- setcookie("serial",$credentials['serial'],$expire,"/",".archlinexp.com");
-//print_r($_COOKIE); die();
- $app->redirect('http://panorama.archlinexp.com/auth/'.$credentials['serial']); //redirect logged in user
- }
- else
- {
- $app->redirect('http://panorama.archlinexp.com/auth/'.$credentials['serial'].'/invalid'); //redirect logged in user
- }
-}
-else
-{
- die('Cound not find user in the database'); // Invalid user - Primitive error handling
-}
+getQuery(true);
+$query
+ ->select('id, password')
+ ->from('#__users')
+ ->where('username=' . $db->quote($credentials['username']));
+$db->setQuery($query);
+$result = $db->loadObject();
+
+if ($result)
+{
+ $match = JUserHelper::verifyPassword($credentials['password'], $result->password, $result->id);
+
+ if ($match === true)
+ {
+ $user = JUser::getInstance($result->id); // Bring this in line with the rest of the system
+ $error = $app->login($credentials); //perform the login action
+ $logged_user = JFactory::getUser();
+ $expire = time()+86400;
+
+ $db->setQuery('SELECT * FROM `panorama`.`user` WHERE serial='.$credentials['serial'].';');
+ $res = $db->loadObjectList();
+
+ $tomb=array(
+ 'serial'=>$db->quote($credentials['serial']),
+ 'nUserID'=>$db->quote($logged_user->nUserID),
+ 'strName'=>$db->quote($logged_user->name),
+ 'expire'=>$db->quote(date("Y-m-d H:i:s", $expire)),
+ );
+
+ if (empty($res)) // ha még egyáltalán nincs benne a széria szám
+ {
+ $query=$db->getQuery(true);
+ $query
+ ->insert("`panorama`.`user`")
+ ->columns($db->quoteName(array_keys($tomb)))
+ ->values(implode(',', $tomb));
+ $db->setQuery($query);
+ $db->execute();
+ $result=$db->insertid();
+ }
+ else if ((int)$res[0]->nUserID==0) // ha facebook-al már be van jelentkezve
+ {
+ foreach ($tomb as $k=>$v) $values[]=$db->quoteName($k)."=".$v;
+
+ $query=$db->getQuery(true);
+ $query
+ ->update("`panorama`.`user`")
+ ->set($values)
+ ->where(array('`id`='.$res[0]->id));
+ $db->setQuery($query);
+ $result=$db->execute();
+ }
+
+ setcookie("serial",$credentials['serial'],$expire,"/",".archlinexp.com");
+//print_r($_COOKIE); die();
+ $app->redirect('http://panorama.archlinexp.com/auth/'.$credentials['serial']); //redirect logged in user
+ }
+ else
+ {
+ $app->redirect('http://panorama.archlinexp.com/auth/'.$credentials['serial'].'/invalid'); //redirect logged in user
+ }
+}
+else
+{
+ die('Cound not find user in the database'); // Invalid user - Primitive error handling
+}
?>
\ No newline at end of file
diff --git a/cadline/docroot/tips.php b/cadline/docroot/tips.php
index a6e89259..0b320b78 100644
--- a/cadline/docroot/tips.php
+++ b/cadline/docroot/tips.php
@@ -1,476 +1,476 @@
-array('timeout'=>2)) ) );
-$tomb = json_decode(json_encode(simplexml_load_string($locale)),TRUE);
-$ctrname=$tomb["CountryName"];
-$temp=explode(".", gethostbyaddr($user_IP));
-
-if(!isset($ctrname) || $ctrname=='')
- $ctrname = 'unknown';
-
-if(!isset($user_ssID) || $user_ssID==''){
- $rec=array(
- 'hiba'=>"Tips.php: unknown tips data\n",
- 'datum'=>date('Y-m-d H:i:s',time()));
- crm_database::getInstance()->insert('a_hibak',$rec);
- return; //- ha nincs meg a kodolt stream, akkor semmilyen infor
-}
-
-$str_decoded = base64_decode($user_ssID); //decode the session string
-
-sscanf(substr($str_decoded,0,4),'%04x',$keyDec);
-$encoded = str_split(substr($str_decoded,4),4);
-$decoded = '';
-
-foreach($encoded as $e) {
- sscanf($e,'%04x',$temp);
- if(strlen(substr(sprintf('%x',$temp^$keyDec),2))>0) {
- $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2)));
- $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),0,2)));
- } else {
- $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2)));
- }
-}
-
-$pos = strpos($decoded, '#'); //ba 2018.07.04. atterunk a # separatorra. Ezidaig nem fordulhatott elo benne ilyen jel
-if($pos === false)
- $separator = '_';
-else
- $separator = '#';
-
-$numdata = substr_count($decoded, $separator); //ba most már kapunk adatot az oprendszerrol is
-
-$osdata = '';
-$reactivationCounter = 0;
-if( $numdata >= 11 )
- list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID, $name, $email, $company, $phone, $newsletter, $reactivationCounter) = split($separator, $decoded);
-elseif( $numdata >= 6 )
- list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = split($separator, $decoded);
-else
- list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod) = split($separator, $decoded);
-
-$crackedProgram = strpos($osdata, ".gray.") !== false ? true : false;
-if($crackedProgram){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be)
- /*$crackedProgramDeactivated = false;
- if(crm_hardlock::IsCalledFromMyIP()){
- header('Content-Type: text/xml; charset=utf-8');
- header('Content-Disposition: inline; filename=response.xml');
- print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'>
-
-
- /public/support/tips/en/
-
- '.$validTelepitesikod.'
- true
- 0
- false
-
-
- ';
- $crackedProgramDeactivated = true;
- }*/
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
- $message = "Crack: ".$decoded." || url: ".$actual_link;
- crm_hardlock::AddToDebugTable($message);
-
- return; // A crackelt programokat nem taroljuk
-}
-
-$validPassword = crm_hardlock::IsValidPassword($pwd);
-if($validPassword){
- $verid=crm_hardlock::GetVeridFromPassword($pwd);
- $softwareKey = crm_hardlock::IsSoftwareKey($pwd); // Software kulcs 2019
-
- if(crm_hardlock::IsProgramExpiredByFixDate($pwd)) {
- $message = "Tip error: expired program by IsProgramExpiredByFixDate || password: ".$pwd;
- crm_hardlock::AddToDebugTable($message);
-
- return;
- }
-} else {
- $verid = 0;
- $softwareKey = false;
-
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
- $message = "Tip error: invalid password || password: ".$pwd." || url: ".$actual_link;
- crm_hardlock::AddToDebugTable($message);
-
- return;
-}
-$validTelepitesikod = crm_hardlock::IsValidTimeCode($telepitesikod);
-if($validTelepitesikod || ($validPassword && $softwareKey == false) ) //- hardware kulcseseten az isid a passwordbol generalhato
- $isid=($softwareKey ? crm_hardlock::GetIsidFromTimeCode($telepitesikod) : substr($pwd,0,2).$verid);
-else {
- $telepitesikod = "";
- $isid = "";
-}
-
-if($validPassword == false && substr($decoded,0,2) == "##"){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be)
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
- $message = "Tip error: missing password || url: ".$actual_link;
- crm_hardlock::AddToDebugTable($message);
-}
-if($validPassword && $validTelepitesikod == false && $verid > 35){ //- csak a 2019-es programokat es ujabbakat vizsgalunk, a regbbiekben elofordulhatnak hibas idokodok
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
- $message = "Tip error: invalid timecode ".$decoded." || url: ".$actual_link;
- crm_hardlock::AddToDebugTable($message);
-}
-
-if(isset($npID))
- $compid = crm_hardlock::AddOrUpdateComputer($npID, ''); // $comp_name = base64_decode($comp_name); // Ez meg nem jon be!
-
-$isNamirialAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='2nt' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword;
-$isBimLadderAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='kbl' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword;
-
-/*******************************************************************************
- *NAMIRIAL vagy BIMLADDER automata kulcskiadás és program létrehozás
- ******************************************************************************/
-if ($isNamirialAutoCreate || $isBimLadderAutoCreate) {
- $queryStr = "SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = '".$partnerID."' AND verID =".$verid." LIMIT 1;";
- crm_database::getInstance()->query($queryStr);
- $res=crm_database::getInstance()->fetchAssoc();
-
- $rangeMin = $isNamirialAutoCreate ? 940001 : 920001;
- $rangeMax = $isNamirialAutoCreate ? 949999 : 929999;
- $interval = $isNamirialAutoCreate ? 90 : 30;
- $country_id = $isNamirialAutoCreate ? 39 : 82;
- $topic_id = $isNamirialAutoCreate ? 366 : 368;
- $info = $isNamirialAutoCreate ? 'Namirial nonprofit kulcs aktiválás' : 'BIMLadder nonprofit kulcs aktiválás';
- $contact = $isNamirialAutoCreate ? 8 : 9;
-
- $type=crm_hardlock::GetTypeFromPassword($pwd);
- $ver=crm_hardlock::GetVersion(array('verPassword8and9'=>$verid));
-
- //ba nincs ehhez a gephez meg non-profit program regisztralva
- if (empty($res)) {
- $hlNum=crm_hardlock::GetTheFirstNotUsedHlNumFromInterval($rangeMin,$rangeMax);
- $pass=crm_hardlock::GeneratePassword($hlNum,0,$type,$ver['verCode']);
- $aktKod=crm_hardlock::GenerateTimeCode($pass,$isid,$interval);
-
- // Ha nincs benne a user a CRM-be, akkor hozza adjuk
- $userID=crm_users::addUser(array(
- 'strName'=>$name,
- 'strEMail'=>$email,
- 'strTel'=>$phone,
- 'nCtrID'=>$country_id,
- 'old_db'=>'clusers_eng',
- 'dateInsert'=>$time,
- 'strCompany'=>$company
- ), $newsletter);
-
- //ba regisztraljuk hozza a non-profit programot
- crm_hardlock::AddNonprofit(array(
- 'isid'=>$isid,
- 'verid'=>$verid,
- 'hlID'=>$hlNum,
- 'nUserID'=>$userID,
- 'add_datetime'=>date('Y-m-d H:i:s',$time),
- 'expire_datetime'=>date('Y-m-d H:i:s', strtotime('+90 day', $time)),
- 'activation_datetime'=>date('Y-m-d H:i:s',$time),
- 'old_db'=>'clusers_eng',
- 'partnerID'=>$partnerID,
- 'enabled'=>'Y',
- 'computer_id'=>$compid
- ));
-
- //Namirial vagy BIMLADDER non-profit kod aktivalas beszurasa crm -> u_history tablaba
- crm_users::AddUserHistory(array(
- 'nUserID'=>$userID,
- 'nTopicID'=>$topic_id,
- 'dateEvent'=>date('Y-m-d H:i:s',$time),
- 'strPlace'=>'',
- 'strInfo'=>$info,
- 'nManagerID'=>36,
- 'insertDate'=>date('Y-m-d H:i:s',$time)
- ));
-
- crm_hardlock::AddHardlock(array(
- 'hlNum'=>$hlNum,
- 'hlCtrID'=>$country_id,
- 'hlLan'=>0,
- 'hlStat'=>1,
- 'hlDateIssue'=>date('Y-m-d',$time),
- 'hlManID'=>36,
- 'hlTime'=>date('Y-m-d H:i:s',$time),
- 'hlUser'=>$userID,
- 'hlDealer'=>62103,
- 'bUjithato'=>1,
- 'old_db'=>'clusers_eng'
- ));
-
- crm_hardlock::AddProgram(array(
- 'prTypeID'=>$type,
- 'prVerID'=>$ver['verID'],
- 'prLan'=>0,
- 'prPass'=>trim($pass),
- 'prSellDate'=>date('Y-m-d',$time),
- 'prActDate'=>date('Y-m-d',$time+$interval*86400), // 90 vagy 30 nap
- 'prFizetve'=>date('Y-m-d',$time+$interval*86400),
- 'prActCode'=>trim($aktKod),
- 'prTime'=>date('Y-m-d H:i:s',$time),
- 'prLastMod'=>date('Y-m-d H:i:s',$time),
- 'prContact'=>$contact, // Non-profit
- 'prHlNum'=>$hlNum, // 99xxxx
- 'prManID'=>36, // web
- 'prStat'=>0,
- 'prHiType'=>1 // 1 Rendelés | 2 Tipus Valtas | 3 Frissites | 4 Auto Friss.
- ));
-
- $pwd = $pass; //ba 2018.07.02. mostantol az uj jelszava a usernek a most generalt, 94-es lesz, nem pedig a 93-as!
- } else {
- //ba ehhez a gephez mar volt non-profit regisztracio, keressuk ki a sorozatszamot neki
- $hlNum = $res[0]['hlID'];
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hlNum}' limit 1");
- $programQuery=crm_database::getInstance()->fetchAssoc();
- $pwd = $programQuery[0]['prPass'];
- }
-} //- if ($isNamirialAutoCreate || $isBimLadderAutoCreate) vege
-
-$hlNum = crm_hardlock::GetHlnumFromPassword($pwd);
-
-//insert stats to the userstats table
-$stats = array(
- 'usLang' => $user_lang_db,
- 'usDate' => time(),
- 'usPwd' => $pwd,
- 'usVer'=>$verid,
- 'usCompID' => $compID,
- 'usCtrID' => $ctrID,
- 'usBuild' => $build,
- 'usCtrName' => $ctrname,
- 'usIP' => $user_IP,
- 'usOSData' => $osdata,
- 'usISID' => $isid,
- 'usInditasokSzama' => 1
-);
-
-crm_database::getInstance()->query("SELECT hlLan, hlCtrID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'");
-$hardlock = crm_database::getInstance()->fetchAssoc();
-
-$isLanProgram = empty($hardlock) == false && $hardlock[0]['hlLan'] > 0;
-
-// A szarmazasi orszag beallitasa
-if($softwareKey) {
- $liveKey = crm_hardlock::IsLiveKey($pwd); // Live kulcs 2019
- if(empty($hardlock) == false && ($liveKey || in_array(substr($pwd,0,2), array('99','98','95'))) ) { // Azok a programok, amik regisztrálódnak a CRM-ben 2019
- $hl=$hardlock[0];
- if(isset($hl['hlCtrID']))
- $stats['usHlCtrID'] = $hl['hlCtrID'];
- }
-} else {
- $stats['usHlCtrID'] = substr($pwd,0,2);
-}
-
-$trialProgram = crm_hardlock::IsTrialKey($pwd);
-$trialSpecialEditionProgram = $trialProgram ? crm_hardlock::IsSpecialEditionTrial($pwd) : false;
-
-// Kereskedelmi valtozatok lekezelese (a statisztika miatt bekerulnek a Namirial es a BIMLadder programok is)
-if($verid>29 && ($trialProgram == false || $trialSpecialEditionProgram)) {
- if($trialSpecialEditionProgram == false) {
- $query = "SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."'";
- if($softwareKey && $isLanProgram) //- szoftveres lan kulcsnal mindig telepitesenkent egyedi az aktivalo kod
- $query .= " AND prActCode LIKE '%-".$isid."-%'";
- $query .= ";";
-
- crm_database::getInstance()->query($query);
- $prgrm=crm_database::getInstance()->fetchAssoc();
-
- if(empty($prgrm) && $softwareKey && $isLanProgram) { //- a lan-os valtozatnal na nem volt telepitve lehet, hogy nem volt talalat
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."' and (prActCode = '' or prActCode is null) LIMIT 1;");
- $prgrm=crm_database::getInstance()->fetchAssoc();
- }
- }
-
- if($softwareKey) { //- a telepitesi datum frissitese
- if($validTelepitesikod) {
- //- telepitesi datum tarolasanak elokeszitese
- $telepitesota_eltelt_napok_szama = crm_hardlock::GetDayFromTimeCode($telepitesikod);
- $date = new DateTime(date("Y-m-d"));
- $date->modify('-'.$telepitesota_eltelt_napok_szama.' day');
- $installDate = $date->format('Y-m-d');
- } else
- $installDate = time();
- } else {
- if(empty($prgrm)) {
- $installDate = time();
- //- todo ez gigantikus hiba, jelezni kell, ha ilyen elofordul
- } else
- $installDate = $prgrm[0]['prSellDate'];
- }
-
- $stats['usTelepitesiDatum'] = $installDate;
-
- if(empty($prgrm) == false)
- $jelenlegi_aktivalokod = $prgrm[0]['prActCode'];
- else
- $jelenlegi_aktivalokod = '';
-
- // A userstats2013 tablaba megkeresi az utolso bejegyzest és amennyiben valtozatlan, updateli az inditasok szamat, különben uj bejegyzést hoz letre
- if($trialSpecialEditionProgram == false) {
- //- idokod generalasa
- $aktivalokod = crm_hardlock::GetOrGenerateTimeCode($pwd,$isid,$telepitesikod);
- $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $aktivalokod, $user_IP, $installDate, $stats);
-
- // Nonprofit regisztracio beirasa a user-hez
- crm_database::getInstance()->query("SELECT hlStat,hlUser FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'");
- $res=crm_database::getInstance()->fetchAssoc();
- $kulcs=$res[0];
-
- if (in_array((int)substr($pwd,0,3),array(995,996,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989)) && (int)$kulcs['hlUser']>0) { // nonprofitos program első indítása
- // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA
- /*crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE kulcs='".$hlNum."';");
- $tmp=crm_database::getInstance()->fetchAssoc();
- $darab=(int)$tmp[0]['darab'];*/
-
- crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`u_history` WHERE `nUserID`=".(int)$kulcs['hlUser']." AND nTopicID IN (314,315);");
- $tmp=crm_database::getInstance()->fetchAssoc();
- $esem=(int)$tmp[0]['darab'];
-
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`users` WHERE nUserID='".(int)$kulcs['hlUser']."';");
- $usr=crm_database::getInstance()->fetchAssoc();
- $usr=$usr[0];
-
- if (!empty($usr) && (/*$darab==0 ||*/ $esem==0)) {
- crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",array(
- 'nUserID'=>(int)$kulcs['hlUser'],
- 'nTopicID'=>($usr['old_db']=='clusers' ? 314 : 315),
- 'dateEvent'=>date('Y-m-d'),
- 'strPlace'=>'web',
- 'strInfo'=>($usr['old_db']=='clusers' ? 'Non-profit kód regisztráció' : 'Non-profit code registration').': '.$hlNum,
- 'nManagerID'=>36,
- 'insertDate'=>date('Y-m-d H:i:s')
- ));
- }
- }
- } else
- $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $jelenlegi_aktivalokod, $user_IP, $installDate, $stats);
-
- $virtualization = ($kulcs['hlStat']=='2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak
-
- $valasz = ($aktivalokod!="") ? $aktivalokod : "(( nem kapott valaszt ))";
-
-
- // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA
- /*crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE leiras LIKE 'programinditas -pw: ".$pwd."%' ORDER BY datum desc LIMIT 1;");
- $res=crm_database::getInstance()->fetchAssoc();
-
- if(empty($res) == false)
- crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_aktivalas_infok` SET leiras='programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz."', datum='". time()."' WHERE id=".$res[0]['id']." LIMIT 1");
- else
- crm_hardlock::_Hibajelento("tips",substr($pwd,0,6),"programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz,(isset($arrGCData)?$arrGCData:array()),(isset($usstatid)?$usstatid:NULL));*/
-}
-
-// Tavoli logolasi parameterek beallitasa
-$logfilter=0;
-if ($validPassword && $crackedProgram == false && $trialProgram == false) {
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
- $res=crm_database::getInstance()->fetchAssoc();
- $logfilter=$res[0]['prLogFilter'];
-}
-
-// Ha a verid >= 36, akkor beinsertalja a hardlockot és a computer id-t a hardlock_computers tablaba, ha meg nincs benne
-if($softwareKey && $crackedProgram == false && $trialProgram == false)
- crm_hardlock::AddHardlockComputer($hlNum, $compid, $verid);
-
-// Kulcsok tesztelese
-if($softwareKey && $crackedProgram == false && $trialProgram == false) {
- $valasz = crm_hardlock::sCheckPassword($pwd);
-
- if(empty($valasz) == false) {
- $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
- $message = "Checked Password || Serial: ".$pwd." || Valasz: ".$valasz." || url: ".$actual_link;
- crm_hardlock::AddToDebugTable($message);
- }
-}
-
-// Modul es reaktivalo kodok kiiratasa
-if($crackedProgram == false && $trialProgram == false) {
-
- // Modul kodok osszegyujtese
- crm_database::getInstance()->query("SELECT prID FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
- $programs = crm_database::getInstance()->fetchAssoc();
-
- $moduleList = "";
- if(empty($programs) == false) {
- $prID = $programs[0]['prID'];
- crm_database::getInstance()->query("SELECT mdCode FROM `".CRMADATBAZIS."`.`p_modules` WHERE `mdPrID`='".$prID."'");
- $modules = crm_database::getInstance()->fetchAssoc();
-
- foreach ($modules as $module) {
- if(empty($moduleList) == false)
- $moduleList .= ";";
-
- $moduleList .= $module['mdCode'];
- }
- }
-
- // Reaktivalokodok kuldese
- if($virtualization == "true" && $reactivationCounter > 0) {
- $reactivationCounter--;
- $modulIsid = substr($pwd, 0,2).$verid;
-
- if($reactivationCounter > 4) // 5-nel tobb nem lehet
- $reactivationCounter = 4;
-
- for($i=0; $i<=$reactivationCounter; $i++) {
- $modulID = 35+$i;
- $reactivationCode = crm_hardlock::GenerateTimeCode($pwd, $modulIsid, $modulID);
-
- if(empty($moduleList) == false)
- $moduleList .= ";";
-
- $moduleList .= $reactivationCode;
- }
- }
-}
-
-if(crm_hardlock::IsCalledFromMyIP() && $softwareKey) {
- $utst = time();
- (int)$convertedDay = crm_hardlock::ConvertDay(date('w'));
- $tid = (int)($utst / $convertedDay);
-
- crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='".$pwd."' AND isid='".$isid."' AND aktiv = 1");
- $p_serial_isid=crm_database::getInstance()->fetchAssoc();
-
- if(empty($p_serial_isid))
- $regenr = crm_hardlock::No($utst, 39);
- else
- $regenr = crm_hardlock::Yes($utst, 39);
-}
-
-header('Content-Type: text/xml; charset=utf-8');
-header('Content-Disposition: inline; filename=response.xml');
-print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'>
-
-
- /public/support/tips/en/
-
- '.((isset($aktivalokod) && $aktivalokod) ? ''.$aktivalokod.' ' : '').'
- '.((isset($virtualization) && $virtualization) ? ''.$virtualization.' ' : '').'
- '.((isset($usstatid) && (int)$usstatid>0) ? ''.(int)$usstatid.' ' : '').'
- '.$logfilter.'
- '.((empty($moduleList) == false) ? ''.$moduleList.' ' : '').'
- '.($hlNum=='360006' ? 'true' : 'false').'
- '.((isset($regenr) && (int)$regenr>0) ? ''.(int)$regenr.' ' : '').'
- '.((isset($tid) && (int)$tid>0) ? ''.(int)$tid.' ' : '').'
- ';
+array('timeout'=>2)) ) );
+$tomb = json_decode(json_encode(simplexml_load_string($locale)),TRUE);
+$ctrname=$tomb["CountryName"];
+$temp=explode(".", gethostbyaddr($user_IP));
+
+if(!isset($ctrname) || $ctrname=='')
+ $ctrname = 'unknown';
+
+if(!isset($user_ssID) || $user_ssID==''){
+ $rec=array(
+ 'hiba'=>"Tips.php: unknown tips data\n",
+ 'datum'=>date('Y-m-d H:i:s',time()));
+ crm_database::getInstance()->insert('a_hibak',$rec);
+ return; //- ha nincs meg a kodolt stream, akkor semmilyen infor
+}
+
+$str_decoded = base64_decode($user_ssID); //decode the session string
+
+sscanf(substr($str_decoded,0,4),'%04x',$keyDec);
+$encoded = str_split(substr($str_decoded,4),4);
+$decoded = '';
+
+foreach($encoded as $e) {
+ sscanf($e,'%04x',$temp);
+ if(strlen(substr(sprintf('%x',$temp^$keyDec),2))>0) {
+ $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2)));
+ $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),0,2)));
+ } else {
+ $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2)));
+ }
+}
+
+$pos = strpos($decoded, '#'); //ba 2018.07.04. atterunk a # separatorra. Ezidaig nem fordulhatott elo benne ilyen jel
+if($pos === false)
+ $separator = '_';
+else
+ $separator = '#';
+
+$numdata = substr_count($decoded, $separator); //ba most már kapunk adatot az oprendszerrol is
+
+$osdata = '';
+$reactivationCounter = 0;
+if( $numdata >= 11 )
+ list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID, $name, $email, $company, $phone, $newsletter, $reactivationCounter) = split($separator, $decoded);
+elseif( $numdata >= 6 )
+ list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = split($separator, $decoded);
+else
+ list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod) = split($separator, $decoded);
+
+$crackedProgram = strpos($osdata, ".gray.") !== false ? true : false;
+if($crackedProgram){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be)
+ /*$crackedProgramDeactivated = false;
+ if(crm_hardlock::IsCalledFromMyIP()){
+ header('Content-Type: text/xml; charset=utf-8');
+ header('Content-Disposition: inline; filename=response.xml');
+ print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'>
+
+
+ /public/support/tips/en/
+
+ '.$validTelepitesikod.'
+ true
+ 0
+ false
+
+
+ ';
+ $crackedProgramDeactivated = true;
+ }*/
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ $message = "Crack: ".$decoded." || url: ".$actual_link;
+ crm_hardlock::AddToDebugTable($message);
+
+ return; // A crackelt programokat nem taroljuk
+}
+
+$validPassword = crm_hardlock::IsValidPassword($pwd);
+if($validPassword){
+ $verid=crm_hardlock::GetVeridFromPassword($pwd);
+ $softwareKey = crm_hardlock::IsSoftwareKey($pwd); // Software kulcs 2019
+
+ if(crm_hardlock::IsProgramExpiredByFixDate($pwd)) {
+ $message = "Tip error: expired program by IsProgramExpiredByFixDate || password: ".$pwd;
+ crm_hardlock::AddToDebugTable($message);
+
+ return;
+ }
+} else {
+ $verid = 0;
+ $softwareKey = false;
+
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ $message = "Tip error: invalid password || password: ".$pwd." || url: ".$actual_link;
+ crm_hardlock::AddToDebugTable($message);
+
+ return;
+}
+$validTelepitesikod = crm_hardlock::IsValidTimeCode($telepitesikod);
+if($validTelepitesikod || ($validPassword && $softwareKey == false) ) //- hardware kulcseseten az isid a passwordbol generalhato
+ $isid=($softwareKey ? crm_hardlock::GetIsidFromTimeCode($telepitesikod) : substr($pwd,0,2).$verid);
+else {
+ $telepitesikod = "";
+ $isid = "";
+}
+
+if($validPassword == false && substr($decoded,0,2) == "##"){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be)
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ $message = "Tip error: missing password || url: ".$actual_link;
+ crm_hardlock::AddToDebugTable($message);
+}
+if($validPassword && $validTelepitesikod == false && $verid > 35){ //- csak a 2019-es programokat es ujabbakat vizsgalunk, a regbbiekben elofordulhatnak hibas idokodok
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ $message = "Tip error: invalid timecode ".$decoded." || url: ".$actual_link;
+ crm_hardlock::AddToDebugTable($message);
+}
+
+if(isset($npID))
+ $compid = crm_hardlock::AddOrUpdateComputer($npID, ''); // $comp_name = base64_decode($comp_name); // Ez meg nem jon be!
+
+$isNamirialAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='2nt' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword;
+$isBimLadderAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='kbl' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword;
+
+/*******************************************************************************
+ *NAMIRIAL vagy BIMLADDER automata kulcskiadás és program létrehozás
+ ******************************************************************************/
+if ($isNamirialAutoCreate || $isBimLadderAutoCreate) {
+ $queryStr = "SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = '".$partnerID."' AND verID =".$verid." LIMIT 1;";
+ crm_database::getInstance()->query($queryStr);
+ $res=crm_database::getInstance()->fetchAssoc();
+
+ $rangeMin = $isNamirialAutoCreate ? 940001 : 920001;
+ $rangeMax = $isNamirialAutoCreate ? 949999 : 929999;
+ $interval = $isNamirialAutoCreate ? 90 : 30;
+ $country_id = $isNamirialAutoCreate ? 39 : 82;
+ $topic_id = $isNamirialAutoCreate ? 366 : 368;
+ $info = $isNamirialAutoCreate ? 'Namirial nonprofit kulcs aktiválás' : 'BIMLadder nonprofit kulcs aktiválás';
+ $contact = $isNamirialAutoCreate ? 8 : 9;
+
+ $type=crm_hardlock::GetTypeFromPassword($pwd);
+ $ver=crm_hardlock::GetVersion(array('verPassword8and9'=>$verid));
+
+ //ba nincs ehhez a gephez meg non-profit program regisztralva
+ if (empty($res)) {
+ $hlNum=crm_hardlock::GetTheFirstNotUsedHlNumFromInterval($rangeMin,$rangeMax);
+ $pass=crm_hardlock::GeneratePassword($hlNum,0,$type,$ver['verCode']);
+ $aktKod=crm_hardlock::GenerateTimeCode($pass,$isid,$interval);
+
+ // Ha nincs benne a user a CRM-be, akkor hozza adjuk
+ $userID=crm_users::addUser(array(
+ 'strName'=>$name,
+ 'strEMail'=>$email,
+ 'strTel'=>$phone,
+ 'nCtrID'=>$country_id,
+ 'old_db'=>'clusers_eng',
+ 'dateInsert'=>$time,
+ 'strCompany'=>$company
+ ), $newsletter);
+
+ //ba regisztraljuk hozza a non-profit programot
+ crm_hardlock::AddNonprofit(array(
+ 'isid'=>$isid,
+ 'verid'=>$verid,
+ 'hlID'=>$hlNum,
+ 'nUserID'=>$userID,
+ 'add_datetime'=>date('Y-m-d H:i:s',$time),
+ 'expire_datetime'=>date('Y-m-d H:i:s', strtotime('+90 day', $time)),
+ 'activation_datetime'=>date('Y-m-d H:i:s',$time),
+ 'old_db'=>'clusers_eng',
+ 'partnerID'=>$partnerID,
+ 'enabled'=>'Y',
+ 'computer_id'=>$compid
+ ));
+
+ //Namirial vagy BIMLADDER non-profit kod aktivalas beszurasa crm -> u_history tablaba
+ crm_users::AddUserHistory(array(
+ 'nUserID'=>$userID,
+ 'nTopicID'=>$topic_id,
+ 'dateEvent'=>date('Y-m-d H:i:s',$time),
+ 'strPlace'=>'',
+ 'strInfo'=>$info,
+ 'nManagerID'=>36,
+ 'insertDate'=>date('Y-m-d H:i:s',$time)
+ ));
+
+ crm_hardlock::AddHardlock(array(
+ 'hlNum'=>$hlNum,
+ 'hlCtrID'=>$country_id,
+ 'hlLan'=>0,
+ 'hlStat'=>1,
+ 'hlDateIssue'=>date('Y-m-d',$time),
+ 'hlManID'=>36,
+ 'hlTime'=>date('Y-m-d H:i:s',$time),
+ 'hlUser'=>$userID,
+ 'hlDealer'=>62103,
+ 'bUjithato'=>1,
+ 'old_db'=>'clusers_eng'
+ ));
+
+ crm_hardlock::AddProgram(array(
+ 'prTypeID'=>$type,
+ 'prVerID'=>$ver['verID'],
+ 'prLan'=>0,
+ 'prPass'=>trim($pass),
+ 'prSellDate'=>date('Y-m-d',$time),
+ 'prActDate'=>date('Y-m-d',$time+$interval*86400), // 90 vagy 30 nap
+ 'prFizetve'=>date('Y-m-d',$time+$interval*86400),
+ 'prActCode'=>trim($aktKod),
+ 'prTime'=>date('Y-m-d H:i:s',$time),
+ 'prLastMod'=>date('Y-m-d H:i:s',$time),
+ 'prContact'=>$contact, // Non-profit
+ 'prHlNum'=>$hlNum, // 99xxxx
+ 'prManID'=>36, // web
+ 'prStat'=>0,
+ 'prHiType'=>1 // 1 Rendelés | 2 Tipus Valtas | 3 Frissites | 4 Auto Friss.
+ ));
+
+ $pwd = $pass; //ba 2018.07.02. mostantol az uj jelszava a usernek a most generalt, 94-es lesz, nem pedig a 93-as!
+ } else {
+ //ba ehhez a gephez mar volt non-profit regisztracio, keressuk ki a sorozatszamot neki
+ $hlNum = $res[0]['hlID'];
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hlNum}' limit 1");
+ $programQuery=crm_database::getInstance()->fetchAssoc();
+ $pwd = $programQuery[0]['prPass'];
+ }
+} //- if ($isNamirialAutoCreate || $isBimLadderAutoCreate) vege
+
+$hlNum = crm_hardlock::GetHlnumFromPassword($pwd);
+
+//insert stats to the userstats table
+$stats = array(
+ 'usLang' => $user_lang_db,
+ 'usDate' => time(),
+ 'usPwd' => $pwd,
+ 'usVer'=>$verid,
+ 'usCompID' => $compID,
+ 'usCtrID' => $ctrID,
+ 'usBuild' => $build,
+ 'usCtrName' => $ctrname,
+ 'usIP' => $user_IP,
+ 'usOSData' => $osdata,
+ 'usISID' => $isid,
+ 'usInditasokSzama' => 1
+);
+
+crm_database::getInstance()->query("SELECT hlLan, hlCtrID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'");
+$hardlock = crm_database::getInstance()->fetchAssoc();
+
+$isLanProgram = empty($hardlock) == false && $hardlock[0]['hlLan'] > 0;
+
+// A szarmazasi orszag beallitasa
+if($softwareKey) {
+ $liveKey = crm_hardlock::IsLiveKey($pwd); // Live kulcs 2019
+ if(empty($hardlock) == false && ($liveKey || in_array(substr($pwd,0,2), array('99','98','95'))) ) { // Azok a programok, amik regisztrálódnak a CRM-ben 2019
+ $hl=$hardlock[0];
+ if(isset($hl['hlCtrID']))
+ $stats['usHlCtrID'] = $hl['hlCtrID'];
+ }
+} else {
+ $stats['usHlCtrID'] = substr($pwd,0,2);
+}
+
+$trialProgram = crm_hardlock::IsTrialKey($pwd);
+$trialSpecialEditionProgram = $trialProgram ? crm_hardlock::IsSpecialEditionTrial($pwd) : false;
+
+// Kereskedelmi valtozatok lekezelese (a statisztika miatt bekerulnek a Namirial es a BIMLadder programok is)
+if($verid>29 && ($trialProgram == false || $trialSpecialEditionProgram)) {
+ if($trialSpecialEditionProgram == false) {
+ $query = "SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."'";
+ if($softwareKey && $isLanProgram) //- szoftveres lan kulcsnal mindig telepitesenkent egyedi az aktivalo kod
+ $query .= " AND prActCode LIKE '%-".$isid."-%'";
+ $query .= ";";
+
+ crm_database::getInstance()->query($query);
+ $prgrm=crm_database::getInstance()->fetchAssoc();
+
+ if(empty($prgrm) && $softwareKey && $isLanProgram) { //- a lan-os valtozatnal na nem volt telepitve lehet, hogy nem volt talalat
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."' and (prActCode = '' or prActCode is null) LIMIT 1;");
+ $prgrm=crm_database::getInstance()->fetchAssoc();
+ }
+ }
+
+ if($softwareKey) { //- a telepitesi datum frissitese
+ if($validTelepitesikod) {
+ //- telepitesi datum tarolasanak elokeszitese
+ $telepitesota_eltelt_napok_szama = crm_hardlock::GetDayFromTimeCode($telepitesikod);
+ $date = new DateTime(date("Y-m-d"));
+ $date->modify('-'.$telepitesota_eltelt_napok_szama.' day');
+ $installDate = $date->format('Y-m-d');
+ } else
+ $installDate = time();
+ } else {
+ if(empty($prgrm)) {
+ $installDate = time();
+ //- todo ez gigantikus hiba, jelezni kell, ha ilyen elofordul
+ } else
+ $installDate = $prgrm[0]['prSellDate'];
+ }
+
+ $stats['usTelepitesiDatum'] = $installDate;
+
+ if(empty($prgrm) == false)
+ $jelenlegi_aktivalokod = $prgrm[0]['prActCode'];
+ else
+ $jelenlegi_aktivalokod = '';
+
+ // A userstats2013 tablaba megkeresi az utolso bejegyzest és amennyiben valtozatlan, updateli az inditasok szamat, különben uj bejegyzést hoz letre
+ if($trialSpecialEditionProgram == false) {
+ //- idokod generalasa
+ $aktivalokod = crm_hardlock::GetOrGenerateTimeCode($pwd,$isid,$telepitesikod);
+ $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $aktivalokod, $user_IP, $installDate, $stats);
+
+ // Nonprofit regisztracio beirasa a user-hez
+ crm_database::getInstance()->query("SELECT hlStat,hlUser FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $kulcs=$res[0];
+
+ if (in_array((int)substr($pwd,0,3),array(995,996,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989)) && (int)$kulcs['hlUser']>0) { // nonprofitos program első indítása
+ // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA
+ /*crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE kulcs='".$hlNum."';");
+ $tmp=crm_database::getInstance()->fetchAssoc();
+ $darab=(int)$tmp[0]['darab'];*/
+
+ crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`u_history` WHERE `nUserID`=".(int)$kulcs['hlUser']." AND nTopicID IN (314,315);");
+ $tmp=crm_database::getInstance()->fetchAssoc();
+ $esem=(int)$tmp[0]['darab'];
+
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`users` WHERE nUserID='".(int)$kulcs['hlUser']."';");
+ $usr=crm_database::getInstance()->fetchAssoc();
+ $usr=$usr[0];
+
+ if (!empty($usr) && (/*$darab==0 ||*/ $esem==0)) {
+ crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",array(
+ 'nUserID'=>(int)$kulcs['hlUser'],
+ 'nTopicID'=>($usr['old_db']=='clusers' ? 314 : 315),
+ 'dateEvent'=>date('Y-m-d'),
+ 'strPlace'=>'web',
+ 'strInfo'=>($usr['old_db']=='clusers' ? 'Non-profit kód regisztráció' : 'Non-profit code registration').': '.$hlNum,
+ 'nManagerID'=>36,
+ 'insertDate'=>date('Y-m-d H:i:s')
+ ));
+ }
+ }
+ } else
+ $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $jelenlegi_aktivalokod, $user_IP, $installDate, $stats);
+
+ $virtualization = ($kulcs['hlStat']=='2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak
+
+ $valasz = ($aktivalokod!="") ? $aktivalokod : "(( nem kapott valaszt ))";
+
+
+ // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA
+ /*crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE leiras LIKE 'programinditas -pw: ".$pwd."%' ORDER BY datum desc LIMIT 1;");
+ $res=crm_database::getInstance()->fetchAssoc();
+
+ if(empty($res) == false)
+ crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_aktivalas_infok` SET leiras='programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz."', datum='". time()."' WHERE id=".$res[0]['id']." LIMIT 1");
+ else
+ crm_hardlock::_Hibajelento("tips",substr($pwd,0,6),"programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz,(isset($arrGCData)?$arrGCData:array()),(isset($usstatid)?$usstatid:NULL));*/
+}
+
+// Tavoli logolasi parameterek beallitasa
+$logfilter=0;
+if ($validPassword && $crackedProgram == false && $trialProgram == false) {
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
+ $res=crm_database::getInstance()->fetchAssoc();
+ $logfilter=$res[0]['prLogFilter'];
+}
+
+// Ha a verid >= 36, akkor beinsertalja a hardlockot és a computer id-t a hardlock_computers tablaba, ha meg nincs benne
+if($softwareKey && $crackedProgram == false && $trialProgram == false)
+ crm_hardlock::AddHardlockComputer($hlNum, $compid, $verid);
+
+// Kulcsok tesztelese
+if($softwareKey && $crackedProgram == false && $trialProgram == false) {
+ $valasz = crm_hardlock::sCheckPassword($pwd);
+
+ if(empty($valasz) == false) {
+ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ $message = "Checked Password || Serial: ".$pwd." || Valasz: ".$valasz." || url: ".$actual_link;
+ crm_hardlock::AddToDebugTable($message);
+ }
+}
+
+// Modul es reaktivalo kodok kiiratasa
+if($crackedProgram == false && $trialProgram == false) {
+
+ // Modul kodok osszegyujtese
+ crm_database::getInstance()->query("SELECT prID FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
+ $programs = crm_database::getInstance()->fetchAssoc();
+
+ $moduleList = "";
+ if(empty($programs) == false) {
+ $prID = $programs[0]['prID'];
+ crm_database::getInstance()->query("SELECT mdCode FROM `".CRMADATBAZIS."`.`p_modules` WHERE `mdPrID`='".$prID."'");
+ $modules = crm_database::getInstance()->fetchAssoc();
+
+ foreach ($modules as $module) {
+ if(empty($moduleList) == false)
+ $moduleList .= ";";
+
+ $moduleList .= $module['mdCode'];
+ }
+ }
+
+ // Reaktivalokodok kuldese
+ if($virtualization == "true" && $reactivationCounter > 0) {
+ $reactivationCounter--;
+ $modulIsid = substr($pwd, 0,2).$verid;
+
+ if($reactivationCounter > 4) // 5-nel tobb nem lehet
+ $reactivationCounter = 4;
+
+ for($i=0; $i<=$reactivationCounter; $i++) {
+ $modulID = 35+$i;
+ $reactivationCode = crm_hardlock::GenerateTimeCode($pwd, $modulIsid, $modulID);
+
+ if(empty($moduleList) == false)
+ $moduleList .= ";";
+
+ $moduleList .= $reactivationCode;
+ }
+ }
+}
+
+if(crm_hardlock::IsCalledFromMyIP() && $softwareKey) {
+ $utst = time();
+ (int)$convertedDay = crm_hardlock::ConvertDay(date('w'));
+ $tid = (int)($utst / $convertedDay);
+
+ crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='".$pwd."' AND isid='".$isid."' AND aktiv = 1");
+ $p_serial_isid=crm_database::getInstance()->fetchAssoc();
+
+ if(empty($p_serial_isid))
+ $regenr = crm_hardlock::No($utst, 39);
+ else
+ $regenr = crm_hardlock::Yes($utst, 39);
+}
+
+header('Content-Type: text/xml; charset=utf-8');
+header('Content-Disposition: inline; filename=response.xml');
+print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'>
+
+
+ /public/support/tips/en/
+
+ '.((isset($aktivalokod) && $aktivalokod) ? ''.$aktivalokod.' ' : '').'
+ '.((isset($virtualization) && $virtualization) ? ''.$virtualization.' ' : '').'
+ '.((isset($usstatid) && (int)$usstatid>0) ? ''.(int)$usstatid.' ' : '').'
+ '.$logfilter.'
+ '.((empty($moduleList) == false) ? ''.$moduleList.' ' : '').'
+ '.($hlNum=='360006' ? 'true' : 'false').'
+ '.((isset($regenr) && (int)$regenr>0) ? ''.(int)$regenr.' ' : '').'
+ '.((isset($tid) && (int)$tid>0) ? ''.(int)$tid.' ' : '').'
+ ';
?>
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_applications/assets/css/images/index.html b/cadline/modules/modules/mod_al_applications/assets/css/images/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/assets/css/images/index.html
+++ b/cadline/modules/modules/mod_al_applications/assets/css/images/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_applications/assets/css/index.html b/cadline/modules/modules/mod_al_applications/assets/css/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/assets/css/index.html
+++ b/cadline/modules/modules/mod_al_applications/assets/css/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_applications/assets/css/style.css b/cadline/modules/modules/mod_al_applications/assets/css/style.css
index fab965fe..2542e469 100644
--- a/cadline/modules/modules/mod_al_applications/assets/css/style.css
+++ b/cadline/modules/modules/mod_al_applications/assets/css/style.css
@@ -1,10 +1,10 @@
-.past { background-color:#e6a8a8; opacity: 0.7; }
-.present { background-color:#ffffff; border:2px solid #155215; }
-.future { background-color:#71bf73; opacity: 0.9; }
-.mb25 { margin-bottom:25px; }
-.cimke { font-size: 90% !important;font-weight:bold !important; }
-
-#alapplicationsContainer .controlls {margin-top:15px;}
-#alapplicationsContainer a, #alapplicationsContainer a:hover {font-weight:bold;}
-#alapplicationsContainer .past a, #alapplicationsContainer .future a {color:#003060;}
+.past { background-color:#e6a8a8; opacity: 0.7; }
+.present { background-color:#ffffff; border:2px solid #155215; }
+.future { background-color:#71bf73; opacity: 0.9; }
+.mb25 { margin-bottom:25px; }
+.cimke { font-size: 90% !important;font-weight:bold !important; }
+
+#alapplicationsContainer .controlls {margin-top:15px;}
+#alapplicationsContainer a, #alapplicationsContainer a:hover {font-weight:bold;}
+#alapplicationsContainer .past a, #alapplicationsContainer .future a {color:#003060;}
#alapplicationsContainer .past a:hover, #alapplicationsContainer .future a:hover {color:#ffffff;}
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_applications/assets/index.html b/cadline/modules/modules/mod_al_applications/assets/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/assets/index.html
+++ b/cadline/modules/modules/mod_al_applications/assets/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_applications/assets/js/index.html b/cadline/modules/modules/mod_al_applications/assets/js/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/assets/js/index.html
+++ b/cadline/modules/modules/mod_al_applications/assets/js/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_applications/index.html b/cadline/modules/modules/mod_al_applications/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/index.html
+++ b/cadline/modules/modules/mod_al_applications/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_applications/mod_al_applications.php b/cadline/modules/modules/mod_al_applications/mod_al_applications.php
index f19255a2..c86f9119 100644
--- a/cadline/modules/modules/mod_al_applications/mod_al_applications.php
+++ b/cadline/modules/modules/mod_al_applications/mod_al_applications.php
@@ -1,32 +1,32 @@
-addStyleSheet("/modules/mod_al_applications/assets/css/style.css");
-$doc->addScript("/modules/mod_al_applications/assets/js/script.js");
-
-$_POST['course_id'] = isset($_POST['course_id']) ? $_POST['course_id'] : 0;
-
-if (isset($_POST) && (int)$_POST['course_id'] > 0) {
- $app = JFactory::getApplication();
- $input = $app->input;
- $course_id = $input->get('course_id', '', 'int');
-
- $application = ModAlapplicationsHelper::getPublishedApplication($course_id);
- if ($application) {
- ModAlapplicationsHelper::unPublishApplication($course_id);
- JFactory::getApplication()->enqueueMessage(JText::_(MOD_ALAPPLICATIONS_UNPUBLISHED) . ": " . $application[0]->title, 'message');
- }
-}
-
-$applications = ModAlapplicationsHelper::getOtherApplications();
-$level = array(
- 1 => JText::_('MOD_ALAPPLICATIONS_PRELIMINARY'),
- 2 => JText::_('MOD_ALAPPLICATIONS_INTERMEDIATE'),
- 3 => JText::_('MOD_ALAPPLICATIONS_TUTOR_EXAM'),
- 4 => JText::_('MOD_ALAPPLICATIONS_ADVANCED')
-);
-
-require JModuleHelper::getLayoutPath('mod_al_applications', $params->get('layout', 'default'));
+addStyleSheet("/modules/mod_al_applications/assets/css/style.css");
+$doc->addScript("/modules/mod_al_applications/assets/js/script.js");
+
+$_POST['course_id'] = isset($_POST['course_id']) ? $_POST['course_id'] : 0;
+
+if (isset($_POST) && (int)$_POST['course_id'] > 0) {
+ $app = JFactory::getApplication();
+ $input = $app->input;
+ $course_id = $input->get('course_id', '', 'int');
+
+ $application = ModAlapplicationsHelper::getPublishedApplication($course_id);
+ if ($application) {
+ ModAlapplicationsHelper::unPublishApplication($course_id);
+ JFactory::getApplication()->enqueueMessage(JText::_(MOD_ALAPPLICATIONS_UNPUBLISHED) . ": " . $application[0]->title, 'message');
+ }
+}
+
+$applications = ModAlapplicationsHelper::getOtherApplications();
+$level = array(
+ 1 => JText::_('MOD_ALAPPLICATIONS_PRELIMINARY'),
+ 2 => JText::_('MOD_ALAPPLICATIONS_INTERMEDIATE'),
+ 3 => JText::_('MOD_ALAPPLICATIONS_TUTOR_EXAM'),
+ 4 => JText::_('MOD_ALAPPLICATIONS_ADVANCED')
+);
+
+require JModuleHelper::getLayoutPath('mod_al_applications', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_al_applications/mod_al_applications.xml b/cadline/modules/modules/mod_al_applications/mod_al_applications.xml
index 2e182d4e..ee0b5463 100644
--- a/cadline/modules/modules/mod_al_applications/mod_al_applications.xml
+++ b/cadline/modules/modules/mod_al_applications/mod_al_applications.xml
@@ -1,49 +1,49 @@
-
-
-
- MOD_ARCHLINE_APPLICATIONS_MODULE
- Nov 2017
- Zsolt Fekete
- mcleod78@gmail.com
- https://www.facbook.com/mcleod78
- Copyright © 2017 - All rights reserved.
- GNU General Public License v2.0
- 0.0.1
- MOD_ARCHLINE_APPLICATIONS_MODULE_DESCRIPTION
-
- mod_al_applications.php
- mod_al_applications.xml
- helper.php
- index.html
- language
- tmpl
- assets
-
-
-
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_al_applications.sys.ini
- en-GB/en-GB.mod_al_applications.ini
- hu-HU/hu-HU.mod_al_applications.sys.ini
- hu-HU/hu-HU.mod_al_applications.ini
-
+
+
+
+ MOD_ARCHLINE_APPLICATIONS_MODULE
+ Nov 2017
+ Zsolt Fekete
+ mcleod78@gmail.com
+ https://www.facbook.com/mcleod78
+ Copyright © 2017 - All rights reserved.
+ GNU General Public License v2.0
+ 0.0.1
+ MOD_ARCHLINE_APPLICATIONS_MODULE_DESCRIPTION
+
+ mod_al_applications.php
+ mod_al_applications.xml
+ helper.php
+ index.html
+ language
+ tmpl
+ assets
+
+
+
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_al_applications.sys.ini
+ en-GB/en-GB.mod_al_applications.ini
+ hu-HU/hu-HU.mod_al_applications.sys.ini
+ hu-HU/hu-HU.mod_al_applications.ini
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_applications/tmpl/default.php b/cadline/modules/modules/mod_al_applications/tmpl/default.php
index 70713677..8842ac91 100644
--- a/cadline/modules/modules/mod_al_applications/tmpl/default.php
+++ b/cadline/modules/modules/mod_al_applications/tmpl/default.php
@@ -1,104 +1,104 @@
-id, false);
-?>
-
-id == 0) : ?>
-
- = JText::_('MOD_ALAPPLICATIONS_MUST_LOGIN') ?>
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Workshop Bejelentkezés')) ?>
-
-
-
-
-
-
- $ws) : ?>
- level == 3 && !in_array(18, $groups)) continue; ?>
- 0 && $tanfolyam[$k - 1]->level != $tanfolyam[$k]->level)) : ?>
-
- 0) : ?>
-
-
-
-
-
-
-
-
-
= $ws->title ?>
-
-
-
-
= JText::_('MOD_ALAPPLICATIONS_SIGNED') ?>
-
= JText::_('MOD_ALAPPLICATIONS_CHANGE') ?>
-
-
-
-
- id, $ws->id); ?>
-
-
-
-
- session_date < date('Y-m-d')) $class = "danger";
- if ($wsapp->session_date <= date('Y-m-d') && $application->finish_date >= date('Y-m-d')) $class = "info";
- if ($wsapp->session_date > date('Y-m-d')) $class = "success"; ?>
- = $wsapp->session_date ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+id, false);
+?>
+
+id == 0) : ?>
+
+ = JText::_('MOD_ALAPPLICATIONS_MUST_LOGIN') ?>
+ = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Workshop Bejelentkezés')) ?>
+
+
+
+
+
+
+ $ws) : ?>
+ level == 3 && !in_array(18, $groups)) continue; ?>
+ 0 && $tanfolyam[$k - 1]->level != $tanfolyam[$k]->level)) : ?>
+
+ 0) : ?>
+
+
+
+
+
+
+
+
+
= $ws->title ?>
+
+
+
+
= JText::_('MOD_ALAPPLICATIONS_SIGNED') ?>
+
= JText::_('MOD_ALAPPLICATIONS_CHANGE') ?>
+
+
+
+
+ id, $ws->id); ?>
+
+
+
+
+ session_date < date('Y-m-d')) $class = "danger";
+ if ($wsapp->session_date <= date('Y-m-d') && $application->finish_date >= date('Y-m-d')) $class = "info";
+ if ($wsapp->session_date > date('Y-m-d')) $class = "success"; ?>
+ = $wsapp->session_date ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_applications/tmpl/index.html b/cadline/modules/modules/mod_al_applications/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_applications/tmpl/index.html
+++ b/cadline/modules/modules/mod_al_applications/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_login/index.html b/cadline/modules/modules/mod_al_login/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_login/index.html
+++ b/cadline/modules/modules/mod_al_login/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_login/mod_al_login.xml b/cadline/modules/modules/mod_al_login/mod_al_login.xml
index 27cf6bb7..41366bee 100644
--- a/cadline/modules/modules/mod_al_login/mod_al_login.xml
+++ b/cadline/modules/modules/mod_al_login/mod_al_login.xml
@@ -1,21 +1,21 @@
-
-
- AL Login
- Nagy Máté
- 1.0.0
- Login into ARCHLine
-
- mod_al_login.xml
- mod_al_login.php
- index.html
- helper.php
- tmpl/default.php
- tmpl/index.html
-
-
- en-GB.mod_al_login.ini
- en-GB.mod_al_login.sys.ini
-
-
-
+
+
+ AL Login
+ Nagy Máté
+ 1.0.0
+ Login into ARCHLine
+
+ mod_al_login.xml
+ mod_al_login.php
+ index.html
+ helper.php
+ tmpl/default.php
+ tmpl/index.html
+
+
+ en-GB.mod_al_login.ini
+ en-GB.mod_al_login.sys.ini
+
+
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_login/tmpl/index.html b/cadline/modules/modules/mod_al_login/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_login/tmpl/index.html
+++ b/cadline/modules/modules/mod_al_login/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_newsletter/helper.php b/cadline/modules/modules/mod_al_newsletter/helper.php
index b97c0706..043ae9f6 100644
--- a/cadline/modules/modules/mod_al_newsletter/helper.php
+++ b/cadline/modules/modules/mod_al_newsletter/helper.php
@@ -1,87 +1,87 @@
-getQuery(true);
-
- $query->select(array('e.*'));
- $query->from($db->quoteName('cl_hlusers.u_emails', 'e'));
- $query->where($db->quoteName('e.email') . ' = ' . $db->quote($email));
-
- // Reset the query using our newly populated query object.
- $db->setQuery($query);
-
- // Load the results as a list of stdClass objects (see later for more options on retrieving data).
- $existingUser = $db->loadObject();
-
- if (!empty($existingUser)) {
- if ($existingUser->newsletter == 1)
- return true;
-
- $db->getQuery(true);
- $query = "UPDATE cl_hlusers.u_emails SET newsletter = 1 WHERE u_emails_id = '{$existingUser->u_emails_id}'";
- $db->setQuery($query);
- $db->execute();
-
- return true;
- }
-
- $old_db = (JFactory::getLanguage()->getTag() == 'hu-HU' ? "clusers" : "clusers_eng");
- $ctrID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 36 : 0);
-
- if ($phone != '') {
- $phone = str_replace('-', '', $phone);
- $phone = str_replace(' ', '', $phone);
- $phone = str_replace('+', '', $phone);
- $phone = str_replace('/', '', $phone);
- $phone = str_replace('.', '', $phone);
- $phone = str_replace(' ', '', $phone);
- }
-
- $user = new stdClass();
- $user->strName = $name;
- $user->strEMail = $email;
- $user->nUserType = 0;
- $user->nUserStatus = 0;
- $user->nUserProf = 0;
- $user->old_db = $old_db;
- $user->nSchoolID = 0;
- $user->nCtrID = $ctrID;
- $user->strTel = $phone;
- $user->nCtrID = $cntr;
- $user->nUserProf = $prof;
-
- JFactory::getDbo()->insertObject('cl_hlusers.users', $user);
-
- $nUserID = $db->insertid();
-
- $history = new stdClass();
- $history->nUserID = $nUserID;
- $history->nTopicID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 38 : 150);
- $history->dateEvent = date('Y-m-d');
- $history->insertDate = date('Y-m-d H:i:s');
- $history->strPlace = 'web';
- $history->nManagerID = 36;
-
- JFactory::getDbo()->insertObject('cl_hlusers.u_history', $history);
-
- $emails = new stdClass();
- $emails->email = $email;
- $emails->nUserID = $nUserID;
- $emails->default = 1;
- $emails->active = 1;
- $emails->deleted = 0;
- $emails->newsletter = 1;
-
- JFactory::getDbo()->insertObject('cl_hlusers.u_emails', $emails);
-
- return true;
- }
-}
+getQuery(true);
+
+ $query->select(array('e.*'));
+ $query->from($db->quoteName('cl_hlusers.u_emails', 'e'));
+ $query->where($db->quoteName('e.email') . ' = ' . $db->quote($email));
+
+ // Reset the query using our newly populated query object.
+ $db->setQuery($query);
+
+ // Load the results as a list of stdClass objects (see later for more options on retrieving data).
+ $existingUser = $db->loadObject();
+
+ if (!empty($existingUser)) {
+ if ($existingUser->newsletter == 1)
+ return true;
+
+ $db->getQuery(true);
+ $query = "UPDATE cl_hlusers.u_emails SET newsletter = 1 WHERE u_emails_id = '{$existingUser->u_emails_id}'";
+ $db->setQuery($query);
+ $db->execute();
+
+ return true;
+ }
+
+ $old_db = (JFactory::getLanguage()->getTag() == 'hu-HU' ? "clusers" : "clusers_eng");
+ $ctrID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 36 : 0);
+
+ if ($phone != '') {
+ $phone = str_replace('-', '', $phone);
+ $phone = str_replace(' ', '', $phone);
+ $phone = str_replace('+', '', $phone);
+ $phone = str_replace('/', '', $phone);
+ $phone = str_replace('.', '', $phone);
+ $phone = str_replace(' ', '', $phone);
+ }
+
+ $user = new stdClass();
+ $user->strName = $name;
+ $user->strEMail = $email;
+ $user->nUserType = 0;
+ $user->nUserStatus = 0;
+ $user->nUserProf = 0;
+ $user->old_db = $old_db;
+ $user->nSchoolID = 0;
+ $user->nCtrID = $ctrID;
+ $user->strTel = $phone;
+ $user->nCtrID = $cntr;
+ $user->nUserProf = $prof;
+
+ JFactory::getDbo()->insertObject('cl_hlusers.users', $user);
+
+ $nUserID = $db->insertid();
+
+ $history = new stdClass();
+ $history->nUserID = $nUserID;
+ $history->nTopicID = (JFactory::getLanguage()->getTag() == 'hu-HU' ? 38 : 150);
+ $history->dateEvent = date('Y-m-d');
+ $history->insertDate = date('Y-m-d H:i:s');
+ $history->strPlace = 'web';
+ $history->nManagerID = 36;
+
+ JFactory::getDbo()->insertObject('cl_hlusers.u_history', $history);
+
+ $emails = new stdClass();
+ $emails->email = $email;
+ $emails->nUserID = $nUserID;
+ $emails->default = 1;
+ $emails->active = 1;
+ $emails->deleted = 0;
+ $emails->newsletter = 1;
+
+ JFactory::getDbo()->insertObject('cl_hlusers.u_emails', $emails);
+
+ return true;
+ }
+}
diff --git a/cadline/modules/modules/mod_al_newsletter/index.html b/cadline/modules/modules/mod_al_newsletter/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_newsletter/index.html
+++ b/cadline/modules/modules/mod_al_newsletter/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini b/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini
index eb757046..038fe514 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini
@@ -1,10 +1,10 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Jetzt unseren wöchentlichen Newsletter abonnieren!"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Werden Sie Mitglied in unserer Community und erhalten Sie die neuesten Tutorials, Angebote und Nachrichten direkt per E-Mail."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="E-mail Adresse"
-MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Abonnieren"
-MOD_AL_NEWSLETTER_DONE="Danke für Ihr Abonnement"
-MOD_AL_NEWSLETTER_PHONE="Telefonnummer"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Jetzt unseren wöchentlichen Newsletter abonnieren!"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Werden Sie Mitglied in unserer Community und erhalten Sie die neuesten Tutorials, Angebote und Nachrichten direkt per E-Mail."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="E-mail Adresse"
+MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Abonnieren"
+MOD_AL_NEWSLETTER_DONE="Danke für Ihr Abonnement"
+MOD_AL_NEWSLETTER_PHONE="Telefonnummer"
MOD_AL_NEWSLETTER_PHONE_DESC="Telefonnummer"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini b/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini
index 0ed85c5d..051293b0 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini b/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini
index fe9db881..b8248492 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini
@@ -1,8 +1,8 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Subscribe to our weekly newsletter!"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Join our community to get the latest tutorials, offers and news delivered directly in your inbox."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
-MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Subscribe to our weekly newsletter!"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Join our community to get the latest tutorials, offers and news delivered directly in your inbox."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
+MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
MOD_AL_NEWSLETTER_DONE="Thank you for subscribing"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini b/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini
index 0ed85c5d..051293b0 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini b/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini
index dbc04238..dc473544 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini
@@ -1,10 +1,10 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozz fel heti hírlevelünkre!"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Csatlakozz az ARCHLine.XP közösségéhez, értesülj elsők között oktatóvideóinkról, akcióinkről és híreinkről! "
-MOD_AL_NEWSLETTER_NAME="Név"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Név"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Email"
-MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozom"
-MOD_AL_NEWSLETTER_DONE="Köszönjük, hogy feliratkozott hírlevelünkre"
-MOD_AL_NEWSLETTER_PHONE="Telefonszám"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozz fel heti hírlevelünkre!"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Csatlakozz az ARCHLine.XP közösségéhez, értesülj elsők között oktatóvideóinkról, akcióinkről és híreinkről! "
+MOD_AL_NEWSLETTER_NAME="Név"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Név"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Email"
+MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozom"
+MOD_AL_NEWSLETTER_DONE="Köszönjük, hogy feliratkozott hírlevelünkre"
+MOD_AL_NEWSLETTER_PHONE="Telefonszám"
MOD_AL_NEWSLETTER_PHONE_DESC="Telefonszám"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini b/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini
index 243ea56c..e0437556 100644
--- a/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini
+++ b/cadline/modules/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
-MOD_AL_NEWSLETTER_NAME="Név"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
+MOD_AL_NEWSLETTER_NAME="Név"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozás"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.php b/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.php
index 80d5253a..b3a819d0 100644
--- a/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.php
+++ b/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.php
@@ -1,72 +1,72 @@
-format('c');
- $ip = $_SERVER['REMOTE_ADDR'];
- $browser = $_SERVER['HTTP_USER_AGENT'];
-
- if (isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
- $api_url = 'https://www.google.com/recaptcha/api/siteverify';
- $resq_data = array(
- 'secret' => '6Le1o70lAAAAAE125nVz9KQYBX1h2-o5kmlx4tJw',
- 'response' => $_POST['g-recaptcha-response'],
- 'remoteip' => $_SERVER['REMOTE_ADDR']
- );
-
- $curlConfig = array(
- CURLOPT_URL => $api_url,
- CURLOPT_POST => true,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_POSTFIELDS => $resq_data
- );
-
- $ch = curl_init();
- curl_setopt_array($ch, $curlConfig);
- $response = curl_exec($ch);
- curl_close($ch);
-
- $responseData = json_decode($response);
-
- if (!$responseData->success) {
- $log = "{$date} capchaID: 'web-registration-v3' verdict: 'FAILURE' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
- error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
-
- $app->enqueueMessage('Captcha failed', 'error');
- }
-
- $log = "{$date} capchaID: 'web-registration-v3' verdict: 'SUCCESS' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
- error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
-
- $input = $app->input;
-
- $name = $input->get('name', '', 'string');
- $email = $input->get('email', '', 'string');
- $phone = $input->get('phone', '', 'string');
- $cntr = $input->get('cntr', '', 'int');
- $prof = $input->get('prof', '', 'int');
-
- $user = ModAlNewsletterHelper::insertUser($name, $email, $phone, $cntr, $prof);
-
- unset($_POST['subscribe-newsletter-btn']);
- unset($_POST['name']);
- unset($_POST['email']);
-
- if ($user) {
- $app->enqueueMessage(JText::_('MOD_AL_NEWSLETTER_DONE'));
- }
- } else {
- $log = "{$date} capchaID: 'web-registration-v3' verdict: 'FAILURE' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
- error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
- }
- }
-}
-
-if ($_GET['Itemid'] != 744 && $_GET['Itemid'] != 745)
- require JModuleHelper::getLayoutPath('mod_al_newsletter', $params->get('layout', 'default'));
+format('c');
+ $ip = $_SERVER['REMOTE_ADDR'];
+ $browser = $_SERVER['HTTP_USER_AGENT'];
+
+ if (isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
+ $api_url = 'https://www.google.com/recaptcha/api/siteverify';
+ $resq_data = array(
+ 'secret' => '6Le1o70lAAAAAE125nVz9KQYBX1h2-o5kmlx4tJw',
+ 'response' => $_POST['g-recaptcha-response'],
+ 'remoteip' => $_SERVER['REMOTE_ADDR']
+ );
+
+ $curlConfig = array(
+ CURLOPT_URL => $api_url,
+ CURLOPT_POST => true,
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_POSTFIELDS => $resq_data
+ );
+
+ $ch = curl_init();
+ curl_setopt_array($ch, $curlConfig);
+ $response = curl_exec($ch);
+ curl_close($ch);
+
+ $responseData = json_decode($response);
+
+ if (!$responseData->success) {
+ $log = "{$date} capchaID: 'web-registration-v3' verdict: 'FAILURE' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
+ error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
+
+ $app->enqueueMessage('Captcha failed', 'error');
+ }
+
+ $log = "{$date} capchaID: 'web-registration-v3' verdict: 'SUCCESS' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
+ error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
+
+ $input = $app->input;
+
+ $name = $input->get('name', '', 'string');
+ $email = $input->get('email', '', 'string');
+ $phone = $input->get('phone', '', 'string');
+ $cntr = $input->get('cntr', '', 'int');
+ $prof = $input->get('prof', '', 'int');
+
+ $user = ModAlNewsletterHelper::insertUser($name, $email, $phone, $cntr, $prof);
+
+ unset($_POST['subscribe-newsletter-btn']);
+ unset($_POST['name']);
+ unset($_POST['email']);
+
+ if ($user) {
+ $app->enqueueMessage(JText::_('MOD_AL_NEWSLETTER_DONE'));
+ }
+ } else {
+ $log = "{$date} capchaID: 'web-registration-v3' verdict: 'FAILURE' IP: '{$ip}' Browser: '{$browser}'" . PHP_EOL;
+ error_log($log, 3, $_SERVER['DOCUMENT_ROOT'] . '/logs/captchaErrorLog.log');
+ }
+ }
+}
+
+if ($_GET['Itemid'] != 744 && $_GET['Itemid'] != 745)
+ require JModuleHelper::getLayoutPath('mod_al_newsletter', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.xml b/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.xml
index 9ab947f6..0208d67a 100644
--- a/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.xml
+++ b/cadline/modules/modules/mod_al_newsletter/mod_al_newsletter.xml
@@ -1,44 +1,44 @@
-
-
- mod_al_newsletter
- August 2022
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Create a newsletter subscription popup modal
-
- mod_al_newsletter.php
- mod_al_newsletter.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_al_newsletter.sys.ini
- en-GB/en-GB.mod_al_newsletter.ini
- hu-HU/hu-HU.mod_al_newsletter.sys.ini
- hu-HU/hu-HU.mod_al_newsletter.ini
- de-DE/de-DE.mod_al_newsletter.sys.ini
- de-DE/de-DE.mod_al_newsletter.ini
-
-
+
+
+ mod_al_newsletter
+ August 2022
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Create a newsletter subscription popup modal
+
+ mod_al_newsletter.php
+ mod_al_newsletter.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_al_newsletter.sys.ini
+ en-GB/en-GB.mod_al_newsletter.ini
+ hu-HU/hu-HU.mod_al_newsletter.sys.ini
+ hu-HU/hu-HU.mod_al_newsletter.ini
+ de-DE/de-DE.mod_al_newsletter.sys.ini
+ de-DE/de-DE.mod_al_newsletter.ini
+
+
diff --git a/cadline/modules/modules/mod_al_newsletter/tmpl/index.html b/cadline/modules/modules/mod_al_newsletter/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_newsletter/tmpl/index.html
+++ b/cadline/modules/modules/mod_al_newsletter/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_upload/helper.php b/cadline/modules/modules/mod_al_upload/helper.php
index d1800978..4a99c443 100644
--- a/cadline/modules/modules/mod_al_upload/helper.php
+++ b/cadline/modules/modules/mod_al_upload/helper.php
@@ -1,12 +1,12 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.ini b/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.ini
index 80071a21..4ab545c8 100644
--- a/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.ini
+++ b/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.ini
@@ -1,4 +1,4 @@
-MOD_AL_UPLOAD_SUCCESS="Thank you for participating in the poll, your vote was valid.
-Best regards, CadLine Kft."
-MOD_AL_UPLOAD_VOTE="Vote"
+MOD_AL_UPLOAD_SUCCESS="Thank you for participating in the poll, your vote was valid.
+Best regards, CadLine Kft."
+MOD_AL_UPLOAD_VOTE="Vote"
MOD_AL_UPLOAD_VOTE_2="I vote"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.sys.ini b/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.sys.ini
index 0ed85c5d..051293b0 100644
--- a/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.sys.ini
+++ b/cadline/modules/modules/mod_al_upload/language/en-GB/en-GB.mod_al_upload.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.ini b/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.ini
index 109436c7..e62f87f8 100644
--- a/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.ini
+++ b/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.ini
@@ -1,4 +1,4 @@
-MOD_AL_UPLOAD_SUCCESS="Köszönjük, hogy részt vettél a szavazáson, leadott szavazatod érvényes volt.
-Üdvözlettel, CadLine Kft."
-MOD_AL_UPLOAD_VOTE="Szavazat"
+MOD_AL_UPLOAD_SUCCESS="Köszönjük, hogy részt vettél a szavazáson, leadott szavazatod érvényes volt.
+Üdvözlettel, CadLine Kft."
+MOD_AL_UPLOAD_VOTE="Szavazat"
MOD_AL_UPLOAD_VOTE_2="Szavazok"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.sys.ini b/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.sys.ini
index 243ea56c..e0437556 100644
--- a/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.sys.ini
+++ b/cadline/modules/modules/mod_al_upload/language/hu-HU/hu-HU.mod_al_upload.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
-MOD_AL_NEWSLETTER_NAME="Név"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
+MOD_AL_NEWSLETTER_NAME="Név"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozás"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_upload/mod_al_upload.php b/cadline/modules/modules/mod_al_upload/mod_al_upload.php
index b1529337..529652d7 100644
--- a/cadline/modules/modules/mod_al_upload/mod_al_upload.php
+++ b/cadline/modules/modules/mod_al_upload/mod_al_upload.php
@@ -1,156 +1,156 @@
- 0) {
- $user = JFactory::getUser();
- $app = JFactory::getApplication();
- $errorMsg = '';
- $successMsg = '';
- $needEmail = false;
- $dir = 'userupload/az_ev_legjobb_vizsgamunkaja_2025/' . $user->id;
- $needSuccessEmail = false;
- $needDoc = false;
- $docFiles = '';
- $imgFiles = '';
- $imgError = false;
-
- $target_dir = $_SERVER['DOCUMENT_ROOT'] . '/public/' . $dir;
-
- if (!file_exists($target_dir)) {
- mkdir($target_dir, 0777, true);
- }
-
- $files = scandir($target_dir);
-
- $pngImages = glob($target_dir . "/*.png");
- $jpgImages = glob($target_dir . "/*.jpg");
- $jpegImages = glob($target_dir . "/*.jpeg");
- $images = array_merge($pngImages, $jpgImages, $jpegImages);
-
- if (count($images) >= 4) {
- $app->enqueueMessage('A feltöltött képek száma meghaladja a megengedett limitet.', 'error');
- $imgError = true;
- }
-
- if ($imgError == false) {
- for ($i = 0; $i <= count($_FILES['fileToUpload']['tmp_name']); $i++) {
- $file = $_FILES['fileToUpload']['tmp_name'][$i];
-
- if ($file == '')
- continue;
-
- if (ModAlUploadHelper::isImage($file)) {
- $data = getimagesize($file);
- $width = $data[0];
- $height = $data[1];
-
- if ($width < 1920 || $height < 1080) {
- $errorMsg .= '- A kép mérete nem haladja meg az 1920x1080-as méretet: ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
- $imgFiles .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
-
- continue;
- } else {
- $successMsg .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
- }
- } else {
- $docFiles .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
- $needDoc = true;
- }
-
- $target_file = $target_dir . '/' . basename($user->id . '_' . $_FILES["fileToUpload"]["name"][$i]);
- $path_parts = pathinfo($target_file);
-
- $j = 1;
- while (file_exists($target_file)) {
- $target_file = $target_dir . '/' . $path_parts['filename'] . '_' . $j . '.' . $path_parts['extension'];
- $j++;
- }
-
- move_uploaded_file($file, $target_file);
-
- $needSuccessEmail = true;
- }
-
- if ($errorMsg != '') {
- $app->enqueueMessage('Az alábbi képek nem lettek feltöltve: ' . $errorMsg, 'error');
- }
-
- if ($needSuccessEmail) {
- $userMessage = 'Kedves ' . $user->name . '!
-
- Köszönjük, hogy feltöltötte pályázati anyagát a rendszerünkbe. A feltöltés sikeresen megtörtént.';
-
- $userSuccess = '';
- if ($successMsg != '') {
- $userSuccess .= $successMsg;
- }
-
- if ($docFiles != '') {
- $userSuccess .= $docFiles;
- }
-
- if ($userSuccess != '') {
- $userMessage .= ' Az alábbi fájlokat rendszerünk rögzítette: ' . $userSuccess;
- }
-
- if ($imgFiles != '') {
- $userMessage .= ' Az alábbi fájlokat nem találtuk a feltöltésben: ' . $imgFiles;
- }
-
- $userMessage .= '
- Kérjük, amennyiben valamelyik dokumentum hiányzik, pótolhatja a megadott határidőig: 2025. október 10. déli 12:00 óra.
-
- Amennyiben minden szükséges fájl feltöltésre került, a pályázati anyag teljesnek tekinthető, és a későbbiekben már nincs lehetőség módosításra vagy cserére.
-
- Üdvözlettel,
- CadLine Kft.
- ';
-
- if ($userSuccess != '') {
- $mail = new PHPMailer();
-
- $mail->isSMTP();
-
- $mail->CharSet = 'UTF-8';
- $mail->Host = $mailconfig['Host'];
- $mail->Port = $mailconfig['Port'];
- $mail->SMTPAuth = true;
-
- $mail->Username = $mailconfig['Username'];
- $mail->Password = $mailconfig['Password'];
-
- $mail->FromName = 'www.archline.hu';
- $mail->From = 'marketing@cadline.hu';
- $mail->AddAddress($user->email);
- $mail->AddCC('marketing@cadline.hu');
-
- $mail->IsHTML(true);
-
- $mail->Subject = 'Sikeres pályázati anyag feltöltés – visszaigazolás';
- $mail->Body = $userMessage;
-
- $mail->Send();
- }
- }
-
- $msg = '';
-
- if ($successMsg != '') {
- $msg .= 'Az alábbi képek sikeresen fel lettek töltve: ' . $successMsg . ' ';
- }
-
- if ($needDoc) {
- $msg .= 'A dokumentumok sikeresen fel lettek töltve';
- }
-
- if ($successMsg != '' || $needDoc) {
- $app->enqueueMessage($msg, 'success');
- }
- }
-}
-
-require JModuleHelper::getLayoutPath('mod_al_upload', $params->get('layout', 'default'));
+ 0) {
+ $user = JFactory::getUser();
+ $app = JFactory::getApplication();
+ $errorMsg = '';
+ $successMsg = '';
+ $needEmail = false;
+ $dir = 'userupload/az_ev_legjobb_vizsgamunkaja_2025/' . $user->id;
+ $needSuccessEmail = false;
+ $needDoc = false;
+ $docFiles = '';
+ $imgFiles = '';
+ $imgError = false;
+
+ $target_dir = $_SERVER['DOCUMENT_ROOT'] . '/public/' . $dir;
+
+ if (!file_exists($target_dir)) {
+ mkdir($target_dir, 0777, true);
+ }
+
+ $files = scandir($target_dir);
+
+ $pngImages = glob($target_dir . "/*.png");
+ $jpgImages = glob($target_dir . "/*.jpg");
+ $jpegImages = glob($target_dir . "/*.jpeg");
+ $images = array_merge($pngImages, $jpgImages, $jpegImages);
+
+ if (count($images) >= 4) {
+ $app->enqueueMessage('A feltöltött képek száma meghaladja a megengedett limitet.', 'error');
+ $imgError = true;
+ }
+
+ if ($imgError == false) {
+ for ($i = 0; $i <= count($_FILES['fileToUpload']['tmp_name']); $i++) {
+ $file = $_FILES['fileToUpload']['tmp_name'][$i];
+
+ if ($file == '')
+ continue;
+
+ if (ModAlUploadHelper::isImage($file)) {
+ $data = getimagesize($file);
+ $width = $data[0];
+ $height = $data[1];
+
+ if ($width < 1920 || $height < 1080) {
+ $errorMsg .= '- A kép mérete nem haladja meg az 1920x1080-as méretet: ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
+ $imgFiles .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
+
+ continue;
+ } else {
+ $successMsg .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
+ }
+ } else {
+ $docFiles .= '- ' . basename($_FILES["fileToUpload"]["name"][$i]) . ' ';
+ $needDoc = true;
+ }
+
+ $target_file = $target_dir . '/' . basename($user->id . '_' . $_FILES["fileToUpload"]["name"][$i]);
+ $path_parts = pathinfo($target_file);
+
+ $j = 1;
+ while (file_exists($target_file)) {
+ $target_file = $target_dir . '/' . $path_parts['filename'] . '_' . $j . '.' . $path_parts['extension'];
+ $j++;
+ }
+
+ move_uploaded_file($file, $target_file);
+
+ $needSuccessEmail = true;
+ }
+
+ if ($errorMsg != '') {
+ $app->enqueueMessage('Az alábbi képek nem lettek feltöltve: ' . $errorMsg, 'error');
+ }
+
+ if ($needSuccessEmail) {
+ $userMessage = 'Kedves ' . $user->name . '!
+
+ Köszönjük, hogy feltöltötte pályázati anyagát a rendszerünkbe. A feltöltés sikeresen megtörtént.';
+
+ $userSuccess = '';
+ if ($successMsg != '') {
+ $userSuccess .= $successMsg;
+ }
+
+ if ($docFiles != '') {
+ $userSuccess .= $docFiles;
+ }
+
+ if ($userSuccess != '') {
+ $userMessage .= ' Az alábbi fájlokat rendszerünk rögzítette: ' . $userSuccess;
+ }
+
+ if ($imgFiles != '') {
+ $userMessage .= ' Az alábbi fájlokat nem találtuk a feltöltésben: ' . $imgFiles;
+ }
+
+ $userMessage .= '
+ Kérjük, amennyiben valamelyik dokumentum hiányzik, pótolhatja a megadott határidőig: 2025. október 10. déli 12:00 óra.
+
+ Amennyiben minden szükséges fájl feltöltésre került, a pályázati anyag teljesnek tekinthető, és a későbbiekben már nincs lehetőség módosításra vagy cserére.
+
+ Üdvözlettel,
+ CadLine Kft.
+ ';
+
+ if ($userSuccess != '') {
+ $mail = new PHPMailer();
+
+ $mail->isSMTP();
+
+ $mail->CharSet = 'UTF-8';
+ $mail->Host = $mailconfig['Host'];
+ $mail->Port = $mailconfig['Port'];
+ $mail->SMTPAuth = true;
+
+ $mail->Username = $mailconfig['Username'];
+ $mail->Password = $mailconfig['Password'];
+
+ $mail->FromName = 'www.archline.hu';
+ $mail->From = 'marketing@cadline.hu';
+ $mail->AddAddress($user->email);
+ $mail->AddCC('marketing@cadline.hu');
+
+ $mail->IsHTML(true);
+
+ $mail->Subject = 'Sikeres pályázati anyag feltöltés – visszaigazolás';
+ $mail->Body = $userMessage;
+
+ $mail->Send();
+ }
+ }
+
+ $msg = '';
+
+ if ($successMsg != '') {
+ $msg .= 'Az alábbi képek sikeresen fel lettek töltve: ' . $successMsg . ' ';
+ }
+
+ if ($needDoc) {
+ $msg .= 'A dokumentumok sikeresen fel lettek töltve';
+ }
+
+ if ($successMsg != '' || $needDoc) {
+ $app->enqueueMessage($msg, 'success');
+ }
+ }
+}
+
+require JModuleHelper::getLayoutPath('mod_al_upload', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_al_upload/mod_al_upload.xml b/cadline/modules/modules/mod_al_upload/mod_al_upload.xml
index 0af766a0..055bd100 100644
--- a/cadline/modules/modules/mod_al_upload/mod_al_upload.xml
+++ b/cadline/modules/modules/mod_al_upload/mod_al_upload.xml
@@ -1,42 +1,42 @@
-
-
- mod_al_upload
- August 2022
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Create a file uploader modul
-
- mod_al_upload.php
- mod_al_upload.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_al_upload.sys.ini
- en-GB/en-GB.mod_al_upload.ini
- hu-HU/hu-HU.mod_al_upload.sys.ini
- hu-HU/hu-HU.mod_al_upload.ini
-
-
+
+
+ mod_al_upload
+ August 2022
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Create a file uploader modul
+
+ mod_al_upload.php
+ mod_al_upload.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_al_upload.sys.ini
+ en-GB/en-GB.mod_al_upload.ini
+ hu-HU/hu-HU.mod_al_upload.sys.ini
+ hu-HU/hu-HU.mod_al_upload.ini
+
+
diff --git a/cadline/modules/modules/mod_al_upload/tmpl/default.php b/cadline/modules/modules/mod_al_upload/tmpl/default.php
index a12c4b57..70bf7581 100644
--- a/cadline/modules/modules/mod_al_upload/tmpl/default.php
+++ b/cadline/modules/modules/mod_al_upload/tmpl/default.php
@@ -1,141 +1,141 @@
-
-
-
-
-
-
-
-
-
-
1. Bemutatkozás elérhetőséggel WORD formátumban:
-
- 3–4 mondat + név, e-mail, telefonszám
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2. PDF formátumú már elbírált vizsgamunka:
-
-
-
-
-
- Nagy fájlméret lehetséges – kérjük, figyelj a feltöltésre!
- Sikertelen feltöltés esetén küldd el a fájlt WeTransferen keresztül a marketing@cadline.hu címre.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
3. Render képek:
-
- 1920x1080 px méretben, maximum 3 db (opcionális, de a szakmai és közönségdíj elbírálásához javasolt)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
4. Profilkép
-
-
- Minimum full HD felbontás (1920 x 1080px) vagy 3Mb-nál nagyobb fájlméretű JPG, JPEG, PNG.
-
-
-
-
-
-
-
-
-
-
- Fájlok feltöltése
-
-
-
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_upload/tmpl/index.html b/cadline/modules/modules/mod_al_upload/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_upload/tmpl/index.html
+++ b/cadline/modules/modules/mod_al_upload/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_vote/index.html b/cadline/modules/modules/mod_al_vote/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_vote/index.html
+++ b/cadline/modules/modules/mod_al_vote/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini b/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini
index 12acdcb1..76e800cd 100644
--- a/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini
+++ b/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini
@@ -1,4 +1,4 @@
-MOD_AL_VOTE_SUCCESS="Thank you for participating in the poll, your vote was valid.
-Best regards, CadLine Kft."
-MOD_AL_VOTE_VOTE="Vote"
+MOD_AL_VOTE_SUCCESS="Thank you for participating in the poll, your vote was valid.
+Best regards, CadLine Kft."
+MOD_AL_VOTE_VOTE="Vote"
MOD_AL_VOTE_VOTE_2="I vote"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini b/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini
index 0ed85c5d..051293b0 100644
--- a/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini
+++ b/cadline/modules/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
-MOD_AL_NEWSLETTER_NAME="Name"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="GET OUR NEWSLETTER"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Want the latest and greatest from our blog straight to your inbox? Chucks us your details and get a sweet weekly email."
+MOD_AL_NEWSLETTER_NAME="Name"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="Your name"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Your email address"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Subscribe"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini b/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini
index 618676a3..8bebc791 100644
--- a/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini
+++ b/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini
@@ -1,4 +1,4 @@
-MOD_AL_VOTE_SUCCESS="Köszönjük, hogy részt vettél a szavazáson, leadott szavazatod érvényes volt.
-Üdvözlettel, CadLine Kft."
-MOD_AL_VOTE_VOTE="Szavazat"
+MOD_AL_VOTE_SUCCESS="Köszönjük, hogy részt vettél a szavazáson, leadott szavazatod érvényes volt.
+Üdvözlettel, CadLine Kft."
+MOD_AL_VOTE_VOTE="Szavazat"
MOD_AL_VOTE_VOTE_2="Szavazok"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini b/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini
index 243ea56c..e0437556 100644
--- a/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini
+++ b/cadline/modules/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini
@@ -1,7 +1,7 @@
-MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
-MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
-MOD_AL_NEWSLETTER_NAME="Név"
-MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
-MOD_AL_NEWSLETTER_EMAIL="Email"
-MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
+MOD_AL_NEWSLETTER_SUBSCRIBE_HEADER="Iratkozzon fel hírlevelünkre"
+MOD_AL_NEWSLETTER_SUBSCRIBE_TEXT="Szeretné a legújabb és legjobb híreket blogunkról egyenesen a postaládájába? Elküldi nekünk az adatait, és kap egy kedves heti e-mailt."
+MOD_AL_NEWSLETTER_NAME="Név"
+MOD_AL_NEWSLETTER_NAME_PLACEHOLDER="A neve"
+MOD_AL_NEWSLETTER_EMAIL="Email"
+MOD_AL_NEWSLETTER_EMAIL_PLACEHOLDER="Az email címe"
MOD_AL_NEWSLETTER_SUBSCRIBE_BTN="Feliratkozás"
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_al_vote/mod_al_vote.php b/cadline/modules/modules/mod_al_vote/mod_al_vote.php
index 0ce72cf7..d6065fd6 100644
--- a/cadline/modules/modules/mod_al_vote/mod_al_vote.php
+++ b/cadline/modules/modules/mod_al_vote/mod_al_vote.php
@@ -1,24 +1,24 @@
-input;
- $pictureID = $input->get('picture_id', '', 'int');
-
- if ($albumInfo['endDate'] >= date('Y-m-d H:i:s')) {
- $vote = ModAlVoteHelper::votePicture($pictureID, $albumInfo['albumID'], $user->id, $user->nUserID, $albumInfo['strInfo']);
-
- if ($vote)
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_AL_VOTE_SUCCESS'), 'message');
- }
-}
-
-$album = ModAlVoteHelper::getItem($albumInfo['albumID']);
-
-require JModuleHelper::getLayoutPath('mod_al_vote', $params->get('layout', 'default'));
+input;
+ $pictureID = $input->get('picture_id', '', 'int');
+
+ if ($albumInfo['endDate'] >= date('Y-m-d H:i:s')) {
+ $vote = ModAlVoteHelper::votePicture($pictureID, $albumInfo['albumID'], $user->id, $user->nUserID, $albumInfo['strInfo']);
+
+ if ($vote)
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_AL_VOTE_SUCCESS'), 'message');
+ }
+}
+
+$album = ModAlVoteHelper::getItem($albumInfo['albumID']);
+
+require JModuleHelper::getLayoutPath('mod_al_vote', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_al_vote/mod_al_vote.xml b/cadline/modules/modules/mod_al_vote/mod_al_vote.xml
index 4c2d3d5b..51c3b843 100644
--- a/cadline/modules/modules/mod_al_vote/mod_al_vote.xml
+++ b/cadline/modules/modules/mod_al_vote/mod_al_vote.xml
@@ -1,42 +1,42 @@
-
-
- mod_al_vote
- August 2022
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Create a picture vote modul
-
- mod_al_vote.php
- mod_al_vote.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_al_vote.sys.ini
- en-GB/en-GB.mod_al_vote.ini
- hu-HU/hu-HU.mod_al_vote.sys.ini
- hu-HU/hu-HU.mod_al_vote.ini
-
-
+
+
+ mod_al_vote
+ August 2022
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Create a picture vote modul
+
+ mod_al_vote.php
+ mod_al_vote.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_al_vote.sys.ini
+ en-GB/en-GB.mod_al_vote.ini
+ hu-HU/hu-HU.mod_al_vote.sys.ini
+ hu-HU/hu-HU.mod_al_vote.ini
+
+
diff --git a/cadline/modules/modules/mod_al_vote/tmpl/index.html b/cadline/modules/modules/mod_al_vote/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_al_vote/tmpl/index.html
+++ b/cadline/modules/modules/mod_al_vote/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/assets/css/images/index.html b/cadline/modules/modules/mod_alusers/assets/css/images/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/assets/css/images/index.html
+++ b/cadline/modules/modules/mod_alusers/assets/css/images/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/assets/css/index.html b/cadline/modules/modules/mod_alusers/assets/css/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/assets/css/index.html
+++ b/cadline/modules/modules/mod_alusers/assets/css/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/assets/css/newstyle.css b/cadline/modules/modules/mod_alusers/assets/css/newstyle.css
index 02eec319..9f6cbab8 100644
--- a/cadline/modules/modules/mod_alusers/assets/css/newstyle.css
+++ b/cadline/modules/modules/mod_alusers/assets/css/newstyle.css
@@ -1,6 +1,6 @@
-.alusers .aktiv {color: #1E90FF;}
-.alusers .inaktiv {color: #FF0000;}
-.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;}
-.alusers dd {display:inline-block;vertical-align:top;}
-.btn-info, .btn-success, .btn-primary {background-color: #1E90FF !important; border-color: #1E90FF !important;}
+.alusers .aktiv {color: #1E90FF;}
+.alusers .inaktiv {color: #FF0000;}
+.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;}
+.alusers dd {display:inline-block;vertical-align:top;}
+.btn-info, .btn-success, .btn-primary {background-color: #1E90FF !important; border-color: #1E90FF !important;}
.btn-info:hover, .btn-success:hover, .btn-primary:hover {background-color: #6495ED !important; border-color: #6495ED !important;}
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alusers/assets/css/style.css b/cadline/modules/modules/mod_alusers/assets/css/style.css
index 97e125ac..9fc35249 100644
--- a/cadline/modules/modules/mod_alusers/assets/css/style.css
+++ b/cadline/modules/modules/mod_alusers/assets/css/style.css
@@ -1,4 +1,4 @@
-.alusers .aktiv {color: #009900;}
-.alusers .inaktiv {color: #FF0000;}
-.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;}
+.alusers .aktiv {color: #009900;}
+.alusers .inaktiv {color: #FF0000;}
+.alusers dt {display:inline-block;margin-right:20px;min-width:150px;vertical-align:top;}
.alusers dd {display:inline-block;vertical-align:top;}
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alusers/assets/index.html b/cadline/modules/modules/mod_alusers/assets/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/assets/index.html
+++ b/cadline/modules/modules/mod_alusers/assets/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/assets/js/index.html b/cadline/modules/modules/mod_alusers/assets/js/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/assets/js/index.html
+++ b/cadline/modules/modules/mod_alusers/assets/js/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/index.html b/cadline/modules/modules/mod_alusers/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/index.html
+++ b/cadline/modules/modules/mod_alusers/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alusers/mod_alusers.php b/cadline/modules/modules/mod_alusers/mod_alusers.php
index 4621a801..85b63a6e 100644
--- a/cadline/modules/modules/mod_alusers/mod_alusers.php
+++ b/cadline/modules/modules/mod_alusers/mod_alusers.php
@@ -1,178 +1,178 @@
-addStyleSheet("/modules/mod_alusers/assets/css/newstyle.css");
-$doc->addScript("/modules/mod_alusers/assets/js/script.js");
-
-$path = JFactory::getURI()->getPath();
-$arr = explode('/', $path);
-$alias = end($arr);
-
-$user = JFactory::getUser();
-$profile = JUserHelper::getProfile($user->id);
-$lang = JFactory::getLanguage()->getTag();
-$crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID);
-$policy = ModAlusersHelper::getPrivacyPolicy((int)$user->nUserID);
-$isStudent = ModAlusersHelper::isStudent((int)$user->nUserID);
-$groups = $user->get('groups');
-$input = $app->input;
-if (in_array(2, $groups)) $pdf = ModAlusersHelper::getUserPDF((int)$user->nUserID);
-
-if ((int)$user->nUserID > 0) {
- $value = $app->input->cookie->get('alSessionID', null); // Get the cookie
- if ($value == null) // If there's no cookie value, manually set it
- {
- $app->input->cookie->set('alSessionID', md5((int)$user->nUserID), (time() + 30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie
- $app->input->cookie->set('alUserName', $user->name, (time() + 30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie
- }
-}
-
-// ha még új a user, és nincs benne a crm rendszerben, akkor megpróbál egy user szinkronizációt
-if ($user->nUserID === NULL) {
- file_get_contents("http://www.archline.hu/maintenance/sync_user.php");
- $res = ModAlusersHelper::getIdFromEmail($user->username);
- if ((int)$res > 0) $user->nUserID = $res;
-}
-
-// hírlevél beállítások mentése
-if (isset($_POST) && !empty($_POST) && isset($_POST['nl'])) {
- if ((int)$_POST['del_email'] == 0 && trim($_POST['new_email']) == '') ModAlusersHelper::saveNewsletters($user->nUserID, $_POST['newsletter']);
- ModAlusersHelper::newEmail($user->nUserID, $_POST['new_email']);
- ModAlusersHelper::delEmail($user->nUserID, (int)$_POST['del_email']);
- $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
- $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_NEWSLETTER_SETTINGS_SUCCESS'), 'message');
-}
-
-// személyes adatok mentése
-if (isset($_POST) && !empty($_POST) && isset($_POST['ps'])) {
- ModAlusersHelper::savePersonalSettings($user->nUserID, $_POST);
- $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
- $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PERSONAL_DATA_SUCCESS'), 'message');
-}
-
-// személyes adatok és hírlevél beállítások mentése
-if (isset($_POST) && !empty($_POST) && isset($_POST['psSettings']) && in_array(2, $groups)) {
- if ((int)$_POST['del_email'] == 0 && trim($_POST['new_email']) == '') ModAlusersHelper::saveNewsletters($user->nUserID, $_POST['newsletter']);
- ModAlusersHelper::newEmail($user->nUserID, $_POST['new_email']);
- ModAlusersHelper::delEmail($user->nUserID, (int)$_POST['del_email']);
- ModAlusersHelper::savePersonalSettings($user->nUserID, $_POST);
- $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
- $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PERSONAL_DATA_SUCCESS'), 'message');
-}
-
-// számlázási adatok mentése
-if (isset($_POST) && !empty($_POST) && isset($_POST['invoiceSettings']) && in_array(2, $groups)) {
- ModAlusersHelper::saveInvoiceSettings($user->nUserID, $app->input->post);
- $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
- $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_INVOICE_DATA_SUCCESS'), 'message');
-}
-
-// új jelszó mentése
-if (isset($_POST) && !empty($_POST) && isset($_POST['pw'])) {
- $pass1 = trim(addslashes($_POST['password1']));
- $pass2 = trim(addslashes($_POST['password2']));
-
- if ($pass1 != $pass2) {
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR'), 'error');
- } elseif (strlen($pass1) < 6 || strlen($pass1) > 32) {
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR2'), 'error');
- } else {
- ModAlusersHelper::savePassword($user->id, $pass1);
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_SUCCESS'), 'message');
- }
-}
-
-if (isset($_POST) && !empty($_POST) && isset($_POST['privacy_policy_value'])) {
- $db = JFactory::getDbo();
- $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE privacy_policy = 1 AND nUserID = '" . $user->nUserID . "';");
- $result = $db->loadObjectList();
-
- if (empty($result)) {
- $db->setQuery("UPDATE cl_hlusers.users SET privacy_policy = 1, privacy_date = '" . date('Y-m-d') . "', nUserStatus = 7 WHERE nUserID = " . $user->nUserID . " LIMIT 1;");
- $db->execute();
-
- $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_history` WHERE nTopicID = 102 AND nUserID = '" . $user->nUserID . "' ORDER BY nEventID DESC;");
- $result2 = $db->loadObjectList();
- $newStrInfo = $result2[0]->strInfo;
- $newStrInfo = " Elfogadta: Igen Dátum: " . date('Y-m-d');
-
- $db->setQuery("UPDATE cl_hlusers.u_history SET strInfo = '" . $newStrInfo . "' WHERE nEventID = " . $result2[0]->nEventID . " LIMIT 1;");
- $db->execute();
- }
-
- if (isset($_POST['al_xp']))
- header("Location: https://www.archline.hu/index.php?option=com_phocadownload&view=category&download=6779&id=6");
- /*if (isset($_POST['al_live']))
- header("Location: https://www.archline.hu/index.php?option=com_phocadownload&view=category&download=355&id=21");*/
- exit();
-}
-
-$newsletterEmails = ModAlusersHelper::getNewsletterEmails($user->nUserID);
-
-$ids[] = $user->nUserID;
-$emails = ModAlusersHelper::getEmails($user->email);
-if ($emails && count($emails) > 0) {
- foreach ($emails as $tmp) {
- $ids[] = $tmp->nUserID;
- }
-}
-
-if (!empty($ids))
- $kulcsok = ModAlusersHelper::getAllKeyData($ids);
-
-if ($alias == 'aikreditek' || $alias == 'aicredits') {
- $creditHistory = ModAlusersHelper::getCredits($user->nUserID);
- $remainingCredits = ModAlusersHelper::getRemainingCredits($user->nUserID);
- $dateFormat = $alias == 'aikreditek' ? 'Y.m.d.' : 'd.m.Y';
-}
-
-if ($alias == 'licenszek' || $alias == 'licenses') {
- $supportArray = array();
- $userData = ModAlusersHelper::getUserData($user->nUserID);
-
- if (isset($_POST) && !empty($_POST) && isset($_POST['privacyPolicyBtn'])) {
- $programData = ModAlusersHelper::getProgramData($_POST['prID']);
- if ($programData->maintenance_valid == 1) {
- if ($_POST['maintenance_privacy_policy_value'] != '1') {
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_MAINTENANCE_PRIVACY_POLICY_ERROR'), 'error');
- } else {
- ModAlusersHelper::sendMaintenanceEmail($user->nUserID, $userData->strName, $userData->email, $_POST['prID']);
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_MAINTENANCE_SUCCESS'), 'success');
- }
- }
- }
-
- $currentVer = ModAlusersHelper::getCurrentVersion();
- $latestVerID = ModAlusersHelper::getLatestVersion($user->nUserID, $ids);
- $latestPrograms = ModAlusersHelper::getLatestPrograms($user->nUserID, $latestVerID, $ids);
- $olderPrograms = ModAlusersHelper::getOlderPrograms($user->nUserID, $latestVerID, $ids);
- $liveVerID = 23;
- $latestLive = array();
-
- $latestArray = array();
-
- $updateLink = $lang == 'hu-HU' ? '/vasarlas/frissites-karbantartas' : '/buy/upgrade';
-}
-
-if (!$kulcsok && !$user->guest) {
- $ids[] = $user->nUserID;
- if (!empty($ids) && $user->nUserID > 0) $kulcsok = ModAlusersHelper::getAllKeyData($ids);
-}
-
-require JModuleHelper::getLayoutPath('mod_alusers', $params->get('layout', 'default'));
+addStyleSheet("/modules/mod_alusers/assets/css/newstyle.css");
+$doc->addScript("/modules/mod_alusers/assets/js/script.js");
+
+$path = JFactory::getURI()->getPath();
+$arr = explode('/', $path);
+$alias = end($arr);
+
+$user = JFactory::getUser();
+$profile = JUserHelper::getProfile($user->id);
+$lang = JFactory::getLanguage()->getTag();
+$crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID);
+$policy = ModAlusersHelper::getPrivacyPolicy((int)$user->nUserID);
+$isStudent = ModAlusersHelper::isStudent((int)$user->nUserID);
+$groups = $user->get('groups');
+$input = $app->input;
+if (in_array(2, $groups)) $pdf = ModAlusersHelper::getUserPDF((int)$user->nUserID);
+
+if ((int)$user->nUserID > 0) {
+ $value = $app->input->cookie->get('alSessionID', null); // Get the cookie
+ if ($value == null) // If there's no cookie value, manually set it
+ {
+ $app->input->cookie->set('alSessionID', md5((int)$user->nUserID), (time() + 30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie
+ $app->input->cookie->set('alUserName', $user->name, (time() + 30), $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection()); // Set the cookie
+ }
+}
+
+// ha még új a user, és nincs benne a crm rendszerben, akkor megpróbál egy user szinkronizációt
+if ($user->nUserID === NULL) {
+ file_get_contents("http://www.archline.hu/maintenance/sync_user.php");
+ $res = ModAlusersHelper::getIdFromEmail($user->username);
+ if ((int)$res > 0) $user->nUserID = $res;
+}
+
+// hírlevél beállítások mentése
+if (isset($_POST) && !empty($_POST) && isset($_POST['nl'])) {
+ if ((int)$_POST['del_email'] == 0 && trim($_POST['new_email']) == '') ModAlusersHelper::saveNewsletters($user->nUserID, $_POST['newsletter']);
+ ModAlusersHelper::newEmail($user->nUserID, $_POST['new_email']);
+ ModAlusersHelper::delEmail($user->nUserID, (int)$_POST['del_email']);
+ $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
+ $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_NEWSLETTER_SETTINGS_SUCCESS'), 'message');
+}
+
+// személyes adatok mentése
+if (isset($_POST) && !empty($_POST) && isset($_POST['ps'])) {
+ ModAlusersHelper::savePersonalSettings($user->nUserID, $_POST);
+ $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
+ $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PERSONAL_DATA_SUCCESS'), 'message');
+}
+
+// személyes adatok és hírlevél beállítások mentése
+if (isset($_POST) && !empty($_POST) && isset($_POST['psSettings']) && in_array(2, $groups)) {
+ if ((int)$_POST['del_email'] == 0 && trim($_POST['new_email']) == '') ModAlusersHelper::saveNewsletters($user->nUserID, $_POST['newsletter']);
+ ModAlusersHelper::newEmail($user->nUserID, $_POST['new_email']);
+ ModAlusersHelper::delEmail($user->nUserID, (int)$_POST['del_email']);
+ ModAlusersHelper::savePersonalSettings($user->nUserID, $_POST);
+ $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
+ $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PERSONAL_DATA_SUCCESS'), 'message');
+}
+
+// számlázási adatok mentése
+if (isset($_POST) && !empty($_POST) && isset($_POST['invoiceSettings']) && in_array(2, $groups)) {
+ ModAlusersHelper::saveInvoiceSettings($user->nUserID, $app->input->post);
+ $user = JFactory::getUser(); // újra beolvassa az adatbázisból a rekordot mentés után
+ $crmUser = ModAlusersHelper::getUserFromCRM((int)$user->nUserID); // újra beolvassa az adatbázisból a rekordot mentés után
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_INVOICE_DATA_SUCCESS'), 'message');
+}
+
+// új jelszó mentése
+if (isset($_POST) && !empty($_POST) && isset($_POST['pw'])) {
+ $pass1 = trim(addslashes($_POST['password1']));
+ $pass2 = trim(addslashes($_POST['password2']));
+
+ if ($pass1 != $pass2) {
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR'), 'error');
+ } elseif (strlen($pass1) < 6 || strlen($pass1) > 32) {
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_ERROR2'), 'error');
+ } else {
+ ModAlusersHelper::savePassword($user->id, $pass1);
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_PASSWORD_CHANGE_SUCCESS'), 'message');
+ }
+}
+
+if (isset($_POST) && !empty($_POST) && isset($_POST['privacy_policy_value'])) {
+ $db = JFactory::getDbo();
+ $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE privacy_policy = 1 AND nUserID = '" . $user->nUserID . "';");
+ $result = $db->loadObjectList();
+
+ if (empty($result)) {
+ $db->setQuery("UPDATE cl_hlusers.users SET privacy_policy = 1, privacy_date = '" . date('Y-m-d') . "', nUserStatus = 7 WHERE nUserID = " . $user->nUserID . " LIMIT 1;");
+ $db->execute();
+
+ $db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_history` WHERE nTopicID = 102 AND nUserID = '" . $user->nUserID . "' ORDER BY nEventID DESC;");
+ $result2 = $db->loadObjectList();
+ $newStrInfo = $result2[0]->strInfo;
+ $newStrInfo = " Elfogadta: Igen Dátum: " . date('Y-m-d');
+
+ $db->setQuery("UPDATE cl_hlusers.u_history SET strInfo = '" . $newStrInfo . "' WHERE nEventID = " . $result2[0]->nEventID . " LIMIT 1;");
+ $db->execute();
+ }
+
+ if (isset($_POST['al_xp']))
+ header("Location: https://www.archline.hu/index.php?option=com_phocadownload&view=category&download=6779&id=6");
+ /*if (isset($_POST['al_live']))
+ header("Location: https://www.archline.hu/index.php?option=com_phocadownload&view=category&download=355&id=21");*/
+ exit();
+}
+
+$newsletterEmails = ModAlusersHelper::getNewsletterEmails($user->nUserID);
+
+$ids[] = $user->nUserID;
+$emails = ModAlusersHelper::getEmails($user->email);
+if ($emails && count($emails) > 0) {
+ foreach ($emails as $tmp) {
+ $ids[] = $tmp->nUserID;
+ }
+}
+
+if (!empty($ids))
+ $kulcsok = ModAlusersHelper::getAllKeyData($ids);
+
+if ($alias == 'aikreditek' || $alias == 'aicredits') {
+ $creditHistory = ModAlusersHelper::getCredits($user->nUserID);
+ $remainingCredits = ModAlusersHelper::getRemainingCredits($user->nUserID);
+ $dateFormat = $alias == 'aikreditek' ? 'Y.m.d.' : 'd.m.Y';
+}
+
+if ($alias == 'licenszek' || $alias == 'licenses') {
+ $supportArray = array();
+ $userData = ModAlusersHelper::getUserData($user->nUserID);
+
+ if (isset($_POST) && !empty($_POST) && isset($_POST['privacyPolicyBtn'])) {
+ $programData = ModAlusersHelper::getProgramData($_POST['prID']);
+ if ($programData->maintenance_valid == 1) {
+ if ($_POST['maintenance_privacy_policy_value'] != '1') {
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_MAINTENANCE_PRIVACY_POLICY_ERROR'), 'error');
+ } else {
+ ModAlusersHelper::sendMaintenanceEmail($user->nUserID, $userData->strName, $userData->email, $_POST['prID']);
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_ARCHLINE_MAINTENANCE_SUCCESS'), 'success');
+ }
+ }
+ }
+
+ $currentVer = ModAlusersHelper::getCurrentVersion();
+ $latestVerID = ModAlusersHelper::getLatestVersion($user->nUserID, $ids);
+ $latestPrograms = ModAlusersHelper::getLatestPrograms($user->nUserID, $latestVerID, $ids);
+ $olderPrograms = ModAlusersHelper::getOlderPrograms($user->nUserID, $latestVerID, $ids);
+ $liveVerID = 23;
+ $latestLive = array();
+
+ $latestArray = array();
+
+ $updateLink = $lang == 'hu-HU' ? '/vasarlas/frissites-karbantartas' : '/buy/upgrade';
+}
+
+if (!$kulcsok && !$user->guest) {
+ $ids[] = $user->nUserID;
+ if (!empty($ids) && $user->nUserID > 0) $kulcsok = ModAlusersHelper::getAllKeyData($ids);
+}
+
+require JModuleHelper::getLayoutPath('mod_alusers', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_alusers/mod_alusers.xml b/cadline/modules/modules/mod_alusers/mod_alusers.xml
index 411eb45a..e6ec60f4 100644
--- a/cadline/modules/modules/mod_alusers/mod_alusers.xml
+++ b/cadline/modules/modules/mod_alusers/mod_alusers.xml
@@ -1,151 +1,151 @@
-
-
- MOD_ARCHLINE_USERS
- Apr 2017
- Zsolt Fekete
- zsolt.fekete@cadline.hu
- https://www.facbook.com/mcleod78
- Copyright © 2017 - All rights reserved.
- GNU General Public License v2.0
- 0.0.1
- MOD__P___ARCHLINE_USERS___P_
-
- mod_alusers.php
- mod_alusers.xml
- index.html
- language
- tmpl
+
+
+ MOD_ARCHLINE_USERS
+ Apr 2017
+ Zsolt Fekete
+ zsolt.fekete@cadline.hu
+ https://www.facbook.com/mcleod78
+ Copyright © 2017 - All rights reserved.
+ GNU General Public License v2.0
+ 0.0.1
+ MOD__P___ARCHLINE_USERS___P_
+
+ mod_alusers.php
+ mod_alusers.xml
+ index.html
+ language
+ tmpl
assets
-
-
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+
en-GB/en-GB.mod_alusers.sys.ini
en-GB/en-GB.mod_alusers.ini
hu-HU/hu-HU.mod_alusers.sys.ini
hu-HU/hu-HU.mod_alusers.ini
-
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alusers/tmpl/index.html b/cadline/modules/modules/mod_alusers/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alusers/tmpl/index.html
+++ b/cadline/modules/modules/mod_alusers/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/assets/ajax/alworkshops.class.php b/cadline/modules/modules/mod_alworkshops/assets/ajax/alworkshops.class.php
index ee3449dc..8ed0576c 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/ajax/alworkshops.class.php
+++ b/cadline/modules/modules/mod_alworkshops/assets/ajax/alworkshops.class.php
@@ -1,502 +1,502 @@
- 'hu-HU', 'eng' => 'en-GB');
- protected $arrWebinarTopic = array('hun' => _WEBINAR_HUNGARIAN_, 'eng' => _WEBINAR_ENGLISH_);
-
- public function procEvent()
- {
- $message = array();
- $this->transid = md5(_TIME_);
-
- // $nUserID=0;
-
- if ($this->auth() == FALSE) die();
-
- // nyelvi file betöltése
- $this->lang = (isset($_POST['lang']) && in_array(trim(strtolower($_GET['lang'])), $this->arrLang) ? trim(strtolower($_GET['lang'])) : $this->getLang());
- $this->_LANG = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . "/language/" . $this->arrLC[$this->lang] . "/" . $this->arrLC[$this->lang] . "." . $this->component . ".ini");
-
- // kurzus lekérdezése
- MySqlHelper::getInstance()->query("SELECT s.`level`,s.`tanfsor`,s.`id` as switch_id,c.* FROM `alworkshops_courses` c LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias WHERE c.`published`='Y' AND c.`id`=" . (int)$_POST['course_id'] . " LIMIT 1;");
- $course = MySqlHelper::getInstance()->fetchAssoc();
- $course = $course[0];
-
- // switch lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM `alworkshops_switch` WHERE id=" . $course['switch_id'] . " LIMIT 1;");
- $switch = MySqlHelper::getInstance()->fetchAssoc();
- $switch = $switch[0];
-
- // user lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM `jml_users` WHERE id=" . (int)$_POST['user_id'] . " LIMIT 1;");
- $user = MySqlHelper::getInstance()->fetchAssoc();
- $user = $user[0];
-
- if ($switch['level'] == 4 && $switch['vizsga'] == 'Y') {
- $query = "SELECT * FROM tcexam.tce_users WHERE user_email = ?";
- Database::getInstance()->query($query, array('s', trim($user['email'])));
- $res4 = Database::getInstance()->fetchNext();
-
- $query = "DELETE FROM tcexam.tce_usrgroups WHERE usrgrp_user_id = ?";
- Database::getInstance()->query($query, array('i', $res4['user_id']));
-
- $tceGroup = array(
- 'usrgrp_user_id' => $res4['user_id'],
- 'usrgrp_group_id' => 3
- );
- Database::getInstance()->insert("tcexam.tce_usrgroups", $tceGroup, 'ii');
- }
-
- // ha tanfolyamot vásárolt, akkor a további fizetos workshop foglalások ingyenesek
- $currentLease = crm_users::GetValidLease($user['nUserID'], (int)$switch['level']);
- if ($switch['workshop'] == 'Y' && $currentLease && $course['price'] > 0 && $course['start_date'] >= $currentLease['validFrom'] && $course['start_date'] <= $currentLease['validThrough'] && (int)$course['tanfsor'] > 0) {
- $course['price'] = 0;
- $course['vat'] = 0;
- }
-
- // application adatok összeállítása
- $app = array(
- 'course_id' => (int)$_POST['course_id'],
- 'user_id' => (int)$_POST['user_id'],
- 'attendees' => (int)$_POST['attendees'],
- 'price_per_attendee' => $course['price'],
- 'price_total' => $course['price'] * (int)$_POST['attendees'],
- 'price_vat' => $course['vat'],
- 'gepet_kerek' => (isset($_POST['gepet_kerek']) ? 'Y' : 'N'),
- 'berletem_van' => (isset($_POST['berletem_van']) ? 'Y' : 'N'),
- 'date' => date('Y-m-d H:i:s', _TIME_),
- 'published' => 'Y',
- );
-
- $this->c = $course;
-
- /**********************************************
- * WEBINAIR SIGNUP
- **********************************************/
-
- if (($switch['esemeny'] == 'Y' || $switch['webinair'] == 'Y') && isset($_POST['usr']) && isset($_POST['email'])) {
- // if ($switch['alias']!='archline-klub' && $switch['alias']!='oktatoi-nap' )
- if ($switch['login'] == 'N') {
- if (trim($_POST['usr']) == '') {
- print $this->_LANG['MOD_ARCHLINE_NAME_MISSING'];
- exit();
- }
- if (trim($_POST['email']) == '') {
- print $this->_LANG['MOD_ARCHLINE_EMAIL_MISSING'];
- exit();
- }
- if (!filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)) {
- print $this->_LANG['MOD_ARCHLINE_EMAIL_INVALID'];
- exit();
- }
- $_POST['country'] = 0;
- if ((int)$_POST['prof'] == 0) {
- print $this->_LANG['MOD_ARCHLINE_PROF_MISSING'];
- exit();
- }
- }
- if ($course['capacity'] < (int)$_POST['applications'] + (int)$_POST['attendees']) {
- print "";
- exit();
- }
-
- $nUserID = crm_users::AddUser(
- array(
- 'strName' => trim(addslashes(ucwords($_POST['usr']))),
- 'strEMail' => trim(addslashes($_POST['email'])),
- 'strTel' => trim(addslashes($_POST['phone'])),
- 'nUserProf' => (int)$_POST['prof'],
- 'nCtrID' => (int)$_POST['country']
- ),
- 1,
- 'sssii'
- );
-
- if ((int)$nUserID > 0) {
- MySqlHelper::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $course['id'] . " AND `email`='" . trim(addslashes($_POST['email'])) . "' AND `published`='Y';");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
- if (!$exist) {
- if ($switch['esemeny'] == 'Y' && $switch['alias'] == 'archline-klub') $nTopicID = _ARCHLINE_KLUB_;
- if ($switch['esemeny'] == 'Y' && $switch['alias'] != 'archline-klub') $nTopicID = _EVENT_REGISTRATION_;
- if ($switch['webinair'] == 'Y') $nTopicID = $this->arrWebinarTopic[$this->lang];
-
- if ($switch['esemeny'] == 'Y' && (in_array($switch['alias'], $this->customCourses))) {
- $nTopicID = $_SERVER['SERVER_NAME'] == 'www.archlinexp.com' ? 333 : 123;
- $info = date('Y.m.d.') . ': ' . str_replace("-", ".", $course['start_date']) . ' - ' . str_replace("-", ".", $course['finish_date']);
- }
-
- if ($switch['webinair'] == 'Y') {
- MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`users` WHERE `nUserID`=" . $nUserID . ";");
- $usr = MySqlHelper::getInstance()->fetchAssoc();
-
- $nTopicID = $usr[0]['old_db'] == 'clusers' ? 336 : 333;
-
- //$info = $course['id'] == 1108 ? 'Online középfokú tanfolyam' : 'Online alapfokú tanfolyam';
-
- if ($course['id'] == 1114) {
- $info = 'Online felsőfokú tanfolyam';
- }
- }
-
- if (is_null($course['course_info']) == false && $course['course_info'] != '')
- $info = $course['course_info'];
-
- crm_users::AddUserHistory(
- array(
- 'nUserID' => $nUserID,
- 'nTopicID' => $nTopicID,
- 'dateEvent' => $course['start_date'],
- 'strPlace' => $course['title'],
- 'strInfo' => $info
- )
- );
- } else {
- //print $this->_LANG['MOD_ARCHLINE_EVENT_ALREADY_EXIST']; exit();
- $already = $this->_LANG['MOD_ARCHLINE_EVENT_ALREADY_EXIST'];
- print "";
- exit();
- }
-
- // application rekord mentés
- $app['user_id'] = $_POST['hidden_id'];
- $app['name'] = trim(addslashes(ucwords($_POST['usr'])));
- $app['email'] = trim(addslashes($_POST['email']));
- MySqlHelper::getInstance()->insert('alworkshops_application', $app);
- $newID = MySqlHelper::getInstance()->getInsertedId();
-
- // level kuldes
- $this->sendEmail($app['course_id'], 0, $newID, $nUserID);
- $success = $this->_LANG['MOD_ARCHLINE_SUCCESS'];
- print "";
- //print $this->_LANG['MOD_ARCHLINE_SUCCESS'];
- }
- }
- /**********************************************
- * WORKSHOP SIGNUP
- **********************************************/
- else if (($switch['kurzus'] == 'Y' || $switch['workshop'] == 'Y' || $switch['vizsga'] == 'Y') && (int)$_POST['user_id'] > 0 && !isset($_POST['usr']) && !isset($_POST['email'])) {
- MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_application WHERE published='Y' AND user_id=" . $app['user_id'] . " AND course_id=" . $app['course_id'] . " LIMIT 1;");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
-
- // hibaüzenetek
- if (!($switch['kurzus'] === 'Y' && $switch['level'] == 2) && count($exist)) {
- $message[] = $this->_LANG['MOD_ARCHLINE_ALREADY_EXIST'];
- }
-
- if ($switch['alias'] != 'tanulocsoportok') {
- if (!($switch['kurzus'] === 'Y' && $switch['level'] == 2) && $course['capacity'] < (int)$_POST['applications'] + (int)$_POST['attendees']) {
- $message[] = $this->_LANG['MOD_ARCHLINE_NOT_ENOUGHT_CAPACITY'];
- }
- } else {
- crm_database::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $app['course_id'] . " AND published = 'Y';");
- $exist = crm_database::getInstance()->fetchAssoc();
-
- $capacity = $course['capacity'] - count($exist);
-
- if ($capacity <= 0) $message[] = $this->_LANG['MOD_ARCHLINE_NOT_ENOUGHT_CAPACITY'];
- }
- if (count($message)) {
- foreach ($message as $mess) {
- print $mess . " ";
- }
- exit();
- }
-
- // átjelentkezési lehetőség ellenőrzése
- MySqlHelper::getInstance()->query("SELECT a.id AS application_id,a.course_id,s.id AS switch_id,a.user_id,a.published,a.transaction_id,a.price_total,a.pay_id,c.title,c.alias,c.start_date,c.start_time,c.finish_date,c.finish_time
- FROM `alworkshops_application` a
- LEFT OUTER JOIN `alworkshops_courses` c ON a.course_id=c.id
- LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
- WHERE user_id=" . $app['user_id'] . " AND s.id=" . $course['switch_id'] . " AND `start_date`>'" . date('Y-m-d', _TIME_ - (_RESIGN_DAYS_ * 86400)) . "'
- ORDER BY a.id DESC
- LIMIT 1;");
- $this->passthrough = MySqlHelper::getInstance()->fetchAssoc();
- if (count($this->passthrough)) // átjelentkezés meglévő application rekordra
- {
- $this->transid = $this->passthrough[0]['transaction_id'];
- $newID = $this->passthrough[0]['application_id'];
- MySqlHelper::getInstance()->update('alworkshops_application', $app, array('id' => $newID));
-
- // alapfoku tanfolyam kezdo datumanak atallitasa a crm-ben
- if ($switch['kurzus'] == 'Y' && (int)$switch['level'] == 1) {
- $topic = _COURSE_PRICE_PRELIMINARY_;
- $info = '';
- if ($switch['alias'] == 'tanulocsoportok') {
- $topic = 380;
- $info = $switch['title'];
- }
- MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE nUserID=" . $user['nUserID'] . " AND nTopicID=" . $topic . " AND applicationID=" . $newID . " ORDER BY insertDate DESC LIMIT 1;");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
- if (count($exist)) {
- if ($info == '') $info = $exist[0]['strInfo'];
- $uHistory['nTopicID'] = $topic;
- $uHistory['dateEvent'] = $course['start_date'];
- $uHistory['strInfo'] = $info;
- MySqlHelper::getInstance()->update(CRMADATBAZIS . ".u_history", $uHistory, array('nEventID' => $exist[0]['nEventID']));
- }
- }
-
- // kozepfoku workshop kezdo datumanak atallitasa a crm-ben
- if ($switch['workshop'] == 'Y' && (int)$switch['level'] == 2) {
- MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE nUserID=" . $user['nUserID'] . " AND nTopicID=" . _WORKSHOP_PRICE_ . " AND applicationID=" . $newID . " ORDER BY insertDate DESC LIMIT 1;");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
- if (count($exist)) {
- crm_users::UpdateUserHistory(
- array(
- 'dateEvent' => $course['start_date']
- ),
- $exist[0]['nEventID'],
- 's'
- );
- }
- }
- } else // új application rekord mentés
- {
- $app['transaction_id'] = $this->transid;
- MySqlHelper::getInstance()->insert('alworkshops_application', $app);
- $newID = MySqlHelper::getInstance()->getInsertedId();
- }
-
- if ($switch['kurzus'] == 'Y') {
- $strPlace = 'Tanfolyam';
- $nTopicID = _WORKSHOP_APPLICATION_;
- }
- if ($switch['workshop'] == 'Y') {
- $strPlace = 'Workshop';
- $nTopicID = _WORKSHOP_APPLICATION_;
- }
- if ($switch['vizsga'] == 'Y') {
- $strPlace = 'Vizsga';
- $nTopicID = _EXAM_APPLICATION_;
- }
- if ($switch['alias'] == 'tanulocsoportok') {
- $strPlace = $switch['title'];
- $nTopicID = 379;
- }
- $datumok = array();
-
- if ($switch['kurzus'] == 'Y') {
- // sessionok lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM `alworkshops_sessions` WHERE `published`='Y' AND `courseid`=" . (int)$_POST['course_id'] . ";");
- $sessions = MySqlHelper::getInstance()->fetchAssoc();
- foreach ($sessions as $sess) {
- $datumok[] = array('datum' => $sess['session_date'], 'hely' => $sess['description']);
- }
- } else {
- $datumok[] = array('datum' => $course['start_date'], 'hely' => $course['title']);
- }
-
- $info = (trim($app['berletem_van']) == 'Y' ? ' Tanfolyam ,' : '') . (trim($app['gepet_kerek']) == 'Y' ? ' Gépet kér ,' : '');
- $place = $strPlace . ' - ' . $datum['hely'];
-
- if ($switch['alias'] == 'tanulocsoportok') {
- if ($switch['level'] == 1) $info = 'Alapfok';
- else $info = 'Középfok';
-
- $place = $strPlace;
- $info .= ' ' . $course['start_date'] . ' - ' . $course['finish_date'];
- }
-
- foreach ($datumok as $datum) {
- $u_history = array(
- 'nUserID' => $user['nUserID'],
- 'nTopicID' => $nTopicID,
- 'dateEvent' => $datum['datum'],
- 'strPlace' => $strPlace . ' - ' . $datum['hely'],
- 'strInfo' => $info,
- 'nManagerID' => _MANAGER_,
- 'applicationID' => $newID,
- );
-
- MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE applicationID=" . $newID . " AND strPlace LIKE '%" . trim($datum['hely']) . "%' LIMIT 1;");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
- if (empty($exist)) {
- crm_users::AddUserHistory($u_history);
- } else {
- crm_users::UpdateUserHistory($u_history, $exist[0]['nEventID'], 'iisssii');
- }
- }
-
- // user status átállítás
- crm_users::SetUserStatus($user['nUserID'], 5);
-
- // level kuldes, CSAK HA INGYENES - a fizetos foglalasokrol a sync_fizetes.php kuldi ki a levelet
- if ($course['price'] == 0 || ($course['price'] > 0 && count($this->passthrough))) {
- $this->sendEmail($app['course_id'], $app['user_id'], $newID, $user['nUserID']);
- }
-
- if (count($this->passthrough)) {
- print ($switch['kurzus'] === 'Y' && $switch['level'] == 2 ? $this->_LANG['MOD_ARCHLINE_SUCCESS_TITLE'] : $this->_LANG['MOD_ARCHLINE_PASSTHROUGH_SUCCESS']) . ".";
- } else {
- print($course['price'] == 0 ? $this->_LANG['MOD_ARCHLINE_SUCCESS'] : $this->_LANG['MOD_ARCHLINE_SUCCESS_TITLE'] . '. ' . $this->_LANG['MOD_ARCHLINE_SUCCESS_TEXT']);
- }
- }
- }
-
- public function sendEmail($courseid = 0, $userid = 0, $applicationID = 0, $nUserID = 0)
- {
- if ($courseid == 0 || $applicationID == 0) return (FALSE);
-
- if (!isset($mailconfig)) require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
-
- // application rekord lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_application WHERE published='Y' AND id=" . $applicationID . " LIMIT 1;");
- $app = MySqlHelper::getInstance()->fetchAssoc();
- $app = $app[0];
-
- // course rekord lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_courses WHERE published='Y' AND id=" . $courseid . " LIMIT 1;");
- $course = MySqlHelper::getInstance()->fetchAssoc();
- $course = $course[0];
-
- // switch rekord lekérdezése
- MySqlHelper::getInstance()->query("SELECT * FROM `alworkshops_switch` WHERE alias='" . $course['alias'] . "' LIMIT 1;");
- $switch = MySqlHelper::getInstance()->fetchAssoc();
- $switch = $switch[0];
-
- // user név és email cím lekérdezése
- MySqlHelper::getInstance()->query($userid == 0 && (int)$nUserID > 0 ?
- "SELECT `strName` AS `name`,`strEmail` AS `email`, `strTel` AS `strTel` FROM `cl_hlusers`.`users` WHERE nUserID=" . (int)$nUserID . " LIMIT 1;" :
- "SELECT `name`,`email` FROM `jml_users` WHERE id=" . (int)$userid . " LIMIT 1;");
- $user = MySqlHelper::getInstance()->fetchAssoc();
- $user = $user[0];
-
- if (is_array($course) && count($course) && is_array($user) && count($user)) {
-
- MySqlHelper::getInstance()->query("SELECT * FROM " . ($this->getLang() == 'hun' ? 'jml' : 'eng') . "_content WHERE id=" . (int)$course['email_template'] . " LIMIT 1;");
- $tmpl = MySqlHelper::getInstance()->fetchAssoc();
- $tmpl = $tmpl[0];
-
- $mit = array('{NAME}', '{TITLE}', '{START_DATE}', '{START_TIME}', '{FINISH_DATE}', '{FINISH_TIME}', '{LOCATION}', '{ATTENDEES}', '{PRICE}', '{PRICE_TOTAL}', '{VAT}');
- $mire = array(
- $user['name'],
- $course['title'],
- ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? date("Y-m-d", _TIME_) : $course['start_date']),
- ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? "" : $course['start_time']),
- ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? date("Y-m-d", _TIME_ + (_LEASE_VALID_DAYS_ * 86400)) : $course['finish_date']),
- ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? "" : $course['finish_time']),
- $course['location'],
- $app['attendees'],
- $course['price'],
- $app['price_total'],
- $course['vat']
- );
- $msg = str_replace($mit, $mire, $tmpl['introtext'] . $tmpl['fulltext']);
-
- if ($switch['esemeny'] == 'Y' && (in_array($switch['alias'], $this->customCourses))) {
- $tel = substr($user['strTel'], 0, 1) == ';' ? substr($user['strTel'], 1) : $user['strTel'];
- $msg = str_replace('{EMAIL}', $user['email'], $msg);
- $msg = str_replace('{PHONE}', $tel, $msg);
- }
-
- $mail = new PHPMailer;
- $mail->CharSet = 'UTF-8';
- $mail->isSMTP();
- $mail->Host = $mailconfig['Host'];
- $mail->SMTPAuth = true;
- $mail->Username = $mailconfig['Username'];
- $mail->Password = $mailconfig['Password'];
- $mail->SMTPSecure = $mailconfig['SMTPSecure'];
- $mail->Port = $mailconfig['Port'];
- $mail->isHTML(TRUE);
- $mail->setFrom($mailconfig['from_hu']);
- $mail->addAddress($user['email']);
- //$mail->addBCC('zsolt.fekete@cadline.hu');
- $mail->addBCC('info@cadline.hu');
-
- if ($switch['esemeny'] == 'Y' && ($switch['alias'] == 'belter' || $switch['alias'] == 'd5-render' || $switch['alias'] == 'd5-render-alap' || $switch['alias'] == 'd5-render-3-0-ujdonsagok' || $switch['alias'] == 'interior' || $switch['alias'] == 'kulter' || $switch['alias'] == 'photoshop' || $switch['alias'] == 'd5-render-halado')) {
- $mail->addCC('info@krisztinaharosi.it');
- }
-
- if ($switch['esemeny'] == 'Y' && ($switch['alias'] == 'aranyi-klaudia-kiviteli-terv-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-kezdo-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-halado-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-teto-es-lepcso-szerkesztes-tanfolyam')) {
- $mail->addCC('info@akdesign.hu');
- }
-
- if ($switch['esemeny'] == 'Y' && $switch['alias'] == 'ferenczi-eva-tanfolyam') {
- $mail->addCC('eva@studiotrendinterior.com');
- }
-
- $mail->Subject = $tmpl['title'];
- $mail->msgHTML($msg);
- $mail->AltBody = strip_tags($msg);
- $mail->send();
- unset($mail);
-
- return ($user['email']);
- }
- }
-
- public function auth()
- {
- MySqlHelper::getInstance()->query("
- (SELECT * FROM jml_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1)
- UNION
- (SELECT * FROM eng_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1);");
- $sess = MySqlHelper::getInstance()->fetchAssoc();
- return (count($sess) ? TRUE : FALSE);
- }
-
- public function getLang()
- {
- if (!isset($this->lang)) {
- $this->lang = (strpos($_SERVER['HTTP_HOST'], ".com") ? "eng" : "hun");
- }
- return $this->lang;
- }
-} // end of class
-
-$controller = new Controller();
-$controller->run();
-?>
-
-";
+ exit();
+ }
+
+ $nUserID = crm_users::AddUser(
+ array(
+ 'strName' => trim(addslashes(ucwords($_POST['usr']))),
+ 'strEMail' => trim(addslashes($_POST['email'])),
+ 'strTel' => trim(addslashes($_POST['phone'])),
+ 'nUserProf' => (int)$_POST['prof'],
+ 'nCtrID' => (int)$_POST['country']
+ ),
+ 1,
+ 'sssii'
+ );
+
+ if ((int)$nUserID > 0) {
+ MySqlHelper::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $course['id'] . " AND `email`='" . trim(addslashes($_POST['email'])) . "' AND `published`='Y';");
+ $exist = MySqlHelper::getInstance()->fetchAssoc();
+ if (!$exist) {
+ if ($switch['esemeny'] == 'Y' && $switch['alias'] == 'archline-klub') $nTopicID = _ARCHLINE_KLUB_;
+ if ($switch['esemeny'] == 'Y' && $switch['alias'] != 'archline-klub') $nTopicID = _EVENT_REGISTRATION_;
+ if ($switch['webinair'] == 'Y') $nTopicID = $this->arrWebinarTopic[$this->lang];
+
+ if ($switch['esemeny'] == 'Y' && (in_array($switch['alias'], $this->customCourses))) {
+ $nTopicID = $_SERVER['SERVER_NAME'] == 'www.archlinexp.com' ? 333 : 123;
+ $info = date('Y.m.d.') . ': ' . str_replace("-", ".", $course['start_date']) . ' - ' . str_replace("-", ".", $course['finish_date']);
+ }
+
+ if ($switch['webinair'] == 'Y') {
+ MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`users` WHERE `nUserID`=" . $nUserID . ";");
+ $usr = MySqlHelper::getInstance()->fetchAssoc();
+
+ $nTopicID = $usr[0]['old_db'] == 'clusers' ? 336 : 333;
+
+ //$info = $course['id'] == 1108 ? 'Online középfokú tanfolyam' : 'Online alapfokú tanfolyam';
+
+ if ($course['id'] == 1114) {
+ $info = 'Online felsőfokú tanfolyam';
+ }
+ }
+
+ if (is_null($course['course_info']) == false && $course['course_info'] != '')
+ $info = $course['course_info'];
+
+ crm_users::AddUserHistory(
+ array(
+ 'nUserID' => $nUserID,
+ 'nTopicID' => $nTopicID,
+ 'dateEvent' => $course['start_date'],
+ 'strPlace' => $course['title'],
+ 'strInfo' => $info
+ )
+ );
+ } else {
+ //print $this->_LANG['MOD_ARCHLINE_EVENT_ALREADY_EXIST']; exit();
+ $already = $this->_LANG['MOD_ARCHLINE_EVENT_ALREADY_EXIST'];
+ print "";
+ exit();
+ }
+
+ // application rekord mentés
+ $app['user_id'] = $_POST['hidden_id'];
+ $app['name'] = trim(addslashes(ucwords($_POST['usr'])));
+ $app['email'] = trim(addslashes($_POST['email']));
+ MySqlHelper::getInstance()->insert('alworkshops_application', $app);
+ $newID = MySqlHelper::getInstance()->getInsertedId();
+
+ // level kuldes
+ $this->sendEmail($app['course_id'], 0, $newID, $nUserID);
+ $success = $this->_LANG['MOD_ARCHLINE_SUCCESS'];
+ print "";
+ //print $this->_LANG['MOD_ARCHLINE_SUCCESS'];
+ }
+ }
+ /**********************************************
+ * WORKSHOP SIGNUP
+ **********************************************/
+ else if (($switch['kurzus'] == 'Y' || $switch['workshop'] == 'Y' || $switch['vizsga'] == 'Y') && (int)$_POST['user_id'] > 0 && !isset($_POST['usr']) && !isset($_POST['email'])) {
+ MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_application WHERE published='Y' AND user_id=" . $app['user_id'] . " AND course_id=" . $app['course_id'] . " LIMIT 1;");
+ $exist = MySqlHelper::getInstance()->fetchAssoc();
+
+ // hibaüzenetek
+ if (!($switch['kurzus'] === 'Y' && $switch['level'] == 2) && count($exist)) {
+ $message[] = $this->_LANG['MOD_ARCHLINE_ALREADY_EXIST'];
+ }
+
+ if ($switch['alias'] != 'tanulocsoportok') {
+ if (!($switch['kurzus'] === 'Y' && $switch['level'] == 2) && $course['capacity'] < (int)$_POST['applications'] + (int)$_POST['attendees']) {
+ $message[] = $this->_LANG['MOD_ARCHLINE_NOT_ENOUGHT_CAPACITY'];
+ }
+ } else {
+ crm_database::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $app['course_id'] . " AND published = 'Y';");
+ $exist = crm_database::getInstance()->fetchAssoc();
+
+ $capacity = $course['capacity'] - count($exist);
+
+ if ($capacity <= 0) $message[] = $this->_LANG['MOD_ARCHLINE_NOT_ENOUGHT_CAPACITY'];
+ }
+ if (count($message)) {
+ foreach ($message as $mess) {
+ print $mess . " ";
+ }
+ exit();
+ }
+
+ // átjelentkezési lehetőség ellenőrzése
+ MySqlHelper::getInstance()->query("SELECT a.id AS application_id,a.course_id,s.id AS switch_id,a.user_id,a.published,a.transaction_id,a.price_total,a.pay_id,c.title,c.alias,c.start_date,c.start_time,c.finish_date,c.finish_time
+ FROM `alworkshops_application` a
+ LEFT OUTER JOIN `alworkshops_courses` c ON a.course_id=c.id
+ LEFT OUTER JOIN `alworkshops_switch` s ON c.alias=s.alias
+ WHERE user_id=" . $app['user_id'] . " AND s.id=" . $course['switch_id'] . " AND `start_date`>'" . date('Y-m-d', _TIME_ - (_RESIGN_DAYS_ * 86400)) . "'
+ ORDER BY a.id DESC
+ LIMIT 1;");
+ $this->passthrough = MySqlHelper::getInstance()->fetchAssoc();
+ if (count($this->passthrough)) // átjelentkezés meglévő application rekordra
+ {
+ $this->transid = $this->passthrough[0]['transaction_id'];
+ $newID = $this->passthrough[0]['application_id'];
+ MySqlHelper::getInstance()->update('alworkshops_application', $app, array('id' => $newID));
+
+ // alapfoku tanfolyam kezdo datumanak atallitasa a crm-ben
+ if ($switch['kurzus'] == 'Y' && (int)$switch['level'] == 1) {
+ $topic = _COURSE_PRICE_PRELIMINARY_;
+ $info = '';
+ if ($switch['alias'] == 'tanulocsoportok') {
+ $topic = 380;
+ $info = $switch['title'];
+ }
+ MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE nUserID=" . $user['nUserID'] . " AND nTopicID=" . $topic . " AND applicationID=" . $newID . " ORDER BY insertDate DESC LIMIT 1;");
+ $exist = MySqlHelper::getInstance()->fetchAssoc();
+ if (count($exist)) {
+ if ($info == '') $info = $exist[0]['strInfo'];
+ $uHistory['nTopicID'] = $topic;
+ $uHistory['dateEvent'] = $course['start_date'];
+ $uHistory['strInfo'] = $info;
+ MySqlHelper::getInstance()->update(CRMADATBAZIS . ".u_history", $uHistory, array('nEventID' => $exist[0]['nEventID']));
+ }
+ }
+
+ // kozepfoku workshop kezdo datumanak atallitasa a crm-ben
+ if ($switch['workshop'] == 'Y' && (int)$switch['level'] == 2) {
+ MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE nUserID=" . $user['nUserID'] . " AND nTopicID=" . _WORKSHOP_PRICE_ . " AND applicationID=" . $newID . " ORDER BY insertDate DESC LIMIT 1;");
+ $exist = MySqlHelper::getInstance()->fetchAssoc();
+ if (count($exist)) {
+ crm_users::UpdateUserHistory(
+ array(
+ 'dateEvent' => $course['start_date']
+ ),
+ $exist[0]['nEventID'],
+ 's'
+ );
+ }
+ }
+ } else // új application rekord mentés
+ {
+ $app['transaction_id'] = $this->transid;
+ MySqlHelper::getInstance()->insert('alworkshops_application', $app);
+ $newID = MySqlHelper::getInstance()->getInsertedId();
+ }
+
+ if ($switch['kurzus'] == 'Y') {
+ $strPlace = 'Tanfolyam';
+ $nTopicID = _WORKSHOP_APPLICATION_;
+ }
+ if ($switch['workshop'] == 'Y') {
+ $strPlace = 'Workshop';
+ $nTopicID = _WORKSHOP_APPLICATION_;
+ }
+ if ($switch['vizsga'] == 'Y') {
+ $strPlace = 'Vizsga';
+ $nTopicID = _EXAM_APPLICATION_;
+ }
+ if ($switch['alias'] == 'tanulocsoportok') {
+ $strPlace = $switch['title'];
+ $nTopicID = 379;
+ }
+ $datumok = array();
+
+ if ($switch['kurzus'] == 'Y') {
+ // sessionok lekérdezése
+ MySqlHelper::getInstance()->query("SELECT * FROM `alworkshops_sessions` WHERE `published`='Y' AND `courseid`=" . (int)$_POST['course_id'] . ";");
+ $sessions = MySqlHelper::getInstance()->fetchAssoc();
+ foreach ($sessions as $sess) {
+ $datumok[] = array('datum' => $sess['session_date'], 'hely' => $sess['description']);
+ }
+ } else {
+ $datumok[] = array('datum' => $course['start_date'], 'hely' => $course['title']);
+ }
+
+ $info = (trim($app['berletem_van']) == 'Y' ? ' Tanfolyam ,' : '') . (trim($app['gepet_kerek']) == 'Y' ? ' Gépet kér ,' : '');
+ $place = $strPlace . ' - ' . $datum['hely'];
+
+ if ($switch['alias'] == 'tanulocsoportok') {
+ if ($switch['level'] == 1) $info = 'Alapfok';
+ else $info = 'Középfok';
+
+ $place = $strPlace;
+ $info .= ' ' . $course['start_date'] . ' - ' . $course['finish_date'];
+ }
+
+ foreach ($datumok as $datum) {
+ $u_history = array(
+ 'nUserID' => $user['nUserID'],
+ 'nTopicID' => $nTopicID,
+ 'dateEvent' => $datum['datum'],
+ 'strPlace' => $strPlace . ' - ' . $datum['hely'],
+ 'strInfo' => $info,
+ 'nManagerID' => _MANAGER_,
+ 'applicationID' => $newID,
+ );
+
+ MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`u_history` WHERE applicationID=" . $newID . " AND strPlace LIKE '%" . trim($datum['hely']) . "%' LIMIT 1;");
+ $exist = MySqlHelper::getInstance()->fetchAssoc();
+ if (empty($exist)) {
+ crm_users::AddUserHistory($u_history);
+ } else {
+ crm_users::UpdateUserHistory($u_history, $exist[0]['nEventID'], 'iisssii');
+ }
+ }
+
+ // user status átállítás
+ crm_users::SetUserStatus($user['nUserID'], 5);
+
+ // level kuldes, CSAK HA INGYENES - a fizetos foglalasokrol a sync_fizetes.php kuldi ki a levelet
+ if ($course['price'] == 0 || ($course['price'] > 0 && count($this->passthrough))) {
+ $this->sendEmail($app['course_id'], $app['user_id'], $newID, $user['nUserID']);
+ }
+
+ if (count($this->passthrough)) {
+ print ($switch['kurzus'] === 'Y' && $switch['level'] == 2 ? $this->_LANG['MOD_ARCHLINE_SUCCESS_TITLE'] : $this->_LANG['MOD_ARCHLINE_PASSTHROUGH_SUCCESS']) . ".";
+ } else {
+ print($course['price'] == 0 ? $this->_LANG['MOD_ARCHLINE_SUCCESS'] : $this->_LANG['MOD_ARCHLINE_SUCCESS_TITLE'] . '. ' . $this->_LANG['MOD_ARCHLINE_SUCCESS_TEXT']);
+ }
+ }
+ }
+
+ public function sendEmail($courseid = 0, $userid = 0, $applicationID = 0, $nUserID = 0)
+ {
+ if ($courseid == 0 || $applicationID == 0) return (FALSE);
+
+ if (!isset($mailconfig)) require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
+
+ // application rekord lekérdezése
+ MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_application WHERE published='Y' AND id=" . $applicationID . " LIMIT 1;");
+ $app = MySqlHelper::getInstance()->fetchAssoc();
+ $app = $app[0];
+
+ // course rekord lekérdezése
+ MySqlHelper::getInstance()->query("SELECT * FROM alworkshops_courses WHERE published='Y' AND id=" . $courseid . " LIMIT 1;");
+ $course = MySqlHelper::getInstance()->fetchAssoc();
+ $course = $course[0];
+
+ // switch rekord lekérdezése
+ MySqlHelper::getInstance()->query("SELECT * FROM `alworkshops_switch` WHERE alias='" . $course['alias'] . "' LIMIT 1;");
+ $switch = MySqlHelper::getInstance()->fetchAssoc();
+ $switch = $switch[0];
+
+ // user név és email cím lekérdezése
+ MySqlHelper::getInstance()->query($userid == 0 && (int)$nUserID > 0 ?
+ "SELECT `strName` AS `name`,`strEmail` AS `email`, `strTel` AS `strTel` FROM `cl_hlusers`.`users` WHERE nUserID=" . (int)$nUserID . " LIMIT 1;" :
+ "SELECT `name`,`email` FROM `jml_users` WHERE id=" . (int)$userid . " LIMIT 1;");
+ $user = MySqlHelper::getInstance()->fetchAssoc();
+ $user = $user[0];
+
+ if (is_array($course) && count($course) && is_array($user) && count($user)) {
+
+ MySqlHelper::getInstance()->query("SELECT * FROM " . ($this->getLang() == 'hun' ? 'jml' : 'eng') . "_content WHERE id=" . (int)$course['email_template'] . " LIMIT 1;");
+ $tmpl = MySqlHelper::getInstance()->fetchAssoc();
+ $tmpl = $tmpl[0];
+
+ $mit = array('{NAME}', '{TITLE}', '{START_DATE}', '{START_TIME}', '{FINISH_DATE}', '{FINISH_TIME}', '{LOCATION}', '{ATTENDEES}', '{PRICE}', '{PRICE_TOTAL}', '{VAT}');
+ $mire = array(
+ $user['name'],
+ $course['title'],
+ ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? date("Y-m-d", _TIME_) : $course['start_date']),
+ ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? "" : $course['start_time']),
+ ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? date("Y-m-d", _TIME_ + (_LEASE_VALID_DAYS_ * 86400)) : $course['finish_date']),
+ ($switch['kurzus'] === 'Y' && (int)$switch['level'] == 2 ? "" : $course['finish_time']),
+ $course['location'],
+ $app['attendees'],
+ $course['price'],
+ $app['price_total'],
+ $course['vat']
+ );
+ $msg = str_replace($mit, $mire, $tmpl['introtext'] . $tmpl['fulltext']);
+
+ if ($switch['esemeny'] == 'Y' && (in_array($switch['alias'], $this->customCourses))) {
+ $tel = substr($user['strTel'], 0, 1) == ';' ? substr($user['strTel'], 1) : $user['strTel'];
+ $msg = str_replace('{EMAIL}', $user['email'], $msg);
+ $msg = str_replace('{PHONE}', $tel, $msg);
+ }
+
+ $mail = new PHPMailer;
+ $mail->CharSet = 'UTF-8';
+ $mail->isSMTP();
+ $mail->Host = $mailconfig['Host'];
+ $mail->SMTPAuth = true;
+ $mail->Username = $mailconfig['Username'];
+ $mail->Password = $mailconfig['Password'];
+ $mail->SMTPSecure = $mailconfig['SMTPSecure'];
+ $mail->Port = $mailconfig['Port'];
+ $mail->isHTML(TRUE);
+ $mail->setFrom($mailconfig['from_hu']);
+ $mail->addAddress($user['email']);
+ //$mail->addBCC('zsolt.fekete@cadline.hu');
+ $mail->addBCC('info@cadline.hu');
+
+ if ($switch['esemeny'] == 'Y' && ($switch['alias'] == 'belter' || $switch['alias'] == 'd5-render' || $switch['alias'] == 'd5-render-alap' || $switch['alias'] == 'd5-render-3-0-ujdonsagok' || $switch['alias'] == 'interior' || $switch['alias'] == 'kulter' || $switch['alias'] == 'photoshop' || $switch['alias'] == 'd5-render-halado')) {
+ $mail->addCC('info@krisztinaharosi.it');
+ }
+
+ if ($switch['esemeny'] == 'Y' && ($switch['alias'] == 'aranyi-klaudia-kiviteli-terv-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-kezdo-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-halado-tanfolyam' || $switch['alias'] == 'aranyi-klaudia-teto-es-lepcso-szerkesztes-tanfolyam')) {
+ $mail->addCC('info@akdesign.hu');
+ }
+
+ if ($switch['esemeny'] == 'Y' && $switch['alias'] == 'ferenczi-eva-tanfolyam') {
+ $mail->addCC('eva@studiotrendinterior.com');
+ }
+
+ $mail->Subject = $tmpl['title'];
+ $mail->msgHTML($msg);
+ $mail->AltBody = strip_tags($msg);
+ $mail->send();
+ unset($mail);
+
+ return ($user['email']);
+ }
+ }
+
+ public function auth()
+ {
+ MySqlHelper::getInstance()->query("
+ (SELECT * FROM jml_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1)
+ UNION
+ (SELECT * FROM eng_session where session_id='" . trim(addslashes($_POST['sess'])) . "' LIMIT 1);");
+ $sess = MySqlHelper::getInstance()->fetchAssoc();
+ return (count($sess) ? TRUE : FALSE);
+ }
+
+ public function getLang()
+ {
+ if (!isset($this->lang)) {
+ $this->lang = (strpos($_SERVER['HTTP_HOST'], ".com") ? "eng" : "hun");
+ }
+ return $this->lang;
+ }
+} // end of class
+
+$controller = new Controller();
+$controller->run();
+?>
+
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alworkshops/assets/css/images/index.html b/cadline/modules/modules/mod_alworkshops/assets/css/images/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/css/images/index.html
+++ b/cadline/modules/modules/mod_alworkshops/assets/css/images/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/assets/css/index.html b/cadline/modules/modules/mod_alworkshops/assets/css/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/css/index.html
+++ b/cadline/modules/modules/mod_alworkshops/assets/css/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/assets/css/style.css b/cadline/modules/modules/mod_alworkshops/assets/css/style.css
index 1db07159..4c254309 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/css/style.css
+++ b/cadline/modules/modules/mod_alworkshops/assets/css/style.css
@@ -1,41 +1,41 @@
-#alworshopContainer {
- background-color: #2D3036;
- padding: 10px;
-}
-
-#alworshopContainer h3,
-#alworshopContainer td,
-#alworshopContainer span {
- color: #FFFFF0;
-}
-
-#alworshopContainer label,
-#alworshopContainer div,
-#alworshopContainer span,
-#alworshopContainer p {
- color: #fffff0;
-}
-
-#alworshopContainer .sppb-btn {
- font-weight: bold;
-}
-
-#alworshopContainer hr {
- margin: 5px 0px 5px 0px;
-}
-
-#alworshopContainer h3 {
- margin: 10px 0px 10px 0px;
-}
-
-#alworshopContainer .figyelmeztet {
- color: #FFFF00;
-}
-
-#alworshopContainer .vastag {
- font-weight: bold;
-}
-
-#alworshopContainer .kattintos {
- cursor: pointer;
+#alworshopContainer {
+ background-color: #2D3036;
+ padding: 10px;
+}
+
+#alworshopContainer h3,
+#alworshopContainer td,
+#alworshopContainer span {
+ color: #FFFFF0;
+}
+
+#alworshopContainer label,
+#alworshopContainer div,
+#alworshopContainer span,
+#alworshopContainer p {
+ color: #fffff0;
+}
+
+#alworshopContainer .sppb-btn {
+ font-weight: bold;
+}
+
+#alworshopContainer hr {
+ margin: 5px 0px 5px 0px;
+}
+
+#alworshopContainer h3 {
+ margin: 10px 0px 10px 0px;
+}
+
+#alworshopContainer .figyelmeztet {
+ color: #FFFF00;
+}
+
+#alworshopContainer .vastag {
+ font-weight: bold;
+}
+
+#alworshopContainer .kattintos {
+ cursor: pointer;
}
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alworkshops/assets/index.html b/cadline/modules/modules/mod_alworkshops/assets/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/index.html
+++ b/cadline/modules/modules/mod_alworkshops/assets/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/assets/js/index.html b/cadline/modules/modules/mod_alworkshops/assets/js/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/js/index.html
+++ b/cadline/modules/modules/mod_alworkshops/assets/js/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/assets/style.css b/cadline/modules/modules/mod_alworkshops/assets/style.css
index 48b23cc0..8824813c 100644
--- a/cadline/modules/modules/mod_alworkshops/assets/style.css
+++ b/cadline/modules/modules/mod_alworkshops/assets/style.css
@@ -1,19 +1,19 @@
-#alworshopContainer { background-color:#2D3036;padding:10px; }
-#alworshopContainer h3, #alworshopContainer td, #alworshopContainer span { color:#FFFFF0; }
-#alworshopContainer label,#alworshopContainer div,#alworshopContainer span,#alworshopContainer p {color:#fffff0;}
-#alworshopContainer .sppb-btn { font-weight:bold; }
-#alworshopContainer hr {margin:5px 0px 5px 0px;}
-#alworshopContainer h3 {margin:10px 0px 10px 0px;}
-#alworshopContainer .figyelmeztet {color: #FFFF00; }
-#alworshopContainer .vastag {font-weight:bold;}
-#alworshopContainer .kattintos {cursor:pointer;}
-
-.alworshopContainer { background-color:#2D3036;padding:10px; }
-.alworshopContainer h3, #alworshopContainer td, #alworshopContainer span { color:#FFFFF0; }
-.alworshopContainer label,#alworshopContainer div,#alworshopContainer span,#alworshopContainer p {color:#fffff0;}
-.alworshopContainer .sppb-btn { font-weight:bold; }
-.alworshopContainer hr {margin:5px 0px 5px 0px;}
-.alworshopContainer h3 {margin:10px 0px 10px 0px;}
-.alworshopContainer .figyelmeztet {color: #FFFF00; }
-.alworshopContainer .vastag {font-weight:bold;}
+#alworshopContainer { background-color:#2D3036;padding:10px; }
+#alworshopContainer h3, #alworshopContainer td, #alworshopContainer span { color:#FFFFF0; }
+#alworshopContainer label,#alworshopContainer div,#alworshopContainer span,#alworshopContainer p {color:#fffff0;}
+#alworshopContainer .sppb-btn { font-weight:bold; }
+#alworshopContainer hr {margin:5px 0px 5px 0px;}
+#alworshopContainer h3 {margin:10px 0px 10px 0px;}
+#alworshopContainer .figyelmeztet {color: #FFFF00; }
+#alworshopContainer .vastag {font-weight:bold;}
+#alworshopContainer .kattintos {cursor:pointer;}
+
+.alworshopContainer { background-color:#2D3036;padding:10px; }
+.alworshopContainer h3, #alworshopContainer td, #alworshopContainer span { color:#FFFFF0; }
+.alworshopContainer label,#alworshopContainer div,#alworshopContainer span,#alworshopContainer p {color:#fffff0;}
+.alworshopContainer .sppb-btn { font-weight:bold; }
+.alworshopContainer hr {margin:5px 0px 5px 0px;}
+.alworshopContainer h3 {margin:10px 0px 10px 0px;}
+.alworshopContainer .figyelmeztet {color: #FFFF00; }
+.alworshopContainer .vastag {font-weight:bold;}
.alworshopContainer .kattintos {cursor:pointer;}
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alworkshops/helpers/MySqlHelper.class.php b/cadline/modules/modules/mod_alworkshops/helpers/MySqlHelper.class.php
index 4af3eca4..72aa51be 100644
--- a/cadline/modules/modules/mod_alworkshops/helpers/MySqlHelper.class.php
+++ b/cadline/modules/modules/mod_alworkshops/helpers/MySqlHelper.class.php
@@ -1,212 +1,212 @@
-config=New JConfig();
- $this->connection=false;
- $this->host='';
- $this->user='';
- $this->pass='';
- $this->name='';
- }
-
- public static function getInstance()
- {
- if(!empty(self::$msh)) return self::$msh;
- self::$msh=new MySqlHelper();
- self::$msh->init();
- return self::$msh;
- }
-
- public function init($host="", $name="", $user="", $pass="")
- {
- $this->host=($host>"" ? $host : $this->config->host);
- $this->name=($name>"" ? $name : $this->config->db);
- $this->user=($user>"" ? $user : $this->config->user);
- $this->pass=($pass>"" ? $pass : $this->config->password);
- }
-
- private function connect()
- {
- if($this->connection) return;
-
- $this->connection=mysqli_connect($this->host, $this->user, $this->pass);
-
- if(false===$this->connection) throw new Exception('Can\'t connect to db');
-
- mysqli_select_db($this->connection,$this->name);
- mysqli_query($this->connection, 'SET CHARACTER SET UTF8');
- mysqli_query($this->connection, 'SET NAMES \'UTF8\' ');
- mysqli_set_charset($this->connection, 'utf8');
-
- if(mysqli_error($this->connection)) throw new Exception(mysql_error($this->connection));
- }
-
- public function query($query) {
- $this->connect();
- $this->queryString=$query;
- $this->queryResult=mysqli_query($this->connection, $query);
- if(mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection).' Query: '.$this->queryString);
- }
-
- public function fetchNext() {
- $back=array();
- if($row=mysqli_fetch_assoc($this->queryResult)) {
- foreach($row as $key => $value) {
- $row[$key]=stripslashes($value);
- }
- $back=$row;
- return $back;
- }
-
- return false;
- }
-
- public function fetchAssoc() {
- $back=array();
- while($row=mysqli_fetch_assoc($this->queryResult)) {
- foreach($row as $key => $value) {
- $row[$key]=stripslashes($value);
- }
- $back[]=$row;
- }
-
- return $back;
- }
-
- public function getInsertedId() {
- return mysqli_insert_id($this->connection);
- }
-
- public function select($table, $where=false, $offset=false, $limit=false, $order=false) {
- $whereStr='';
- $limitStr='';
- $orderStr='';
-
- if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
- elseif($where) $whereStr='WHERE '.$where;
-
- if(($offset!==false and $offset!==null)&&($limit!==false and $limit!==null)) {
- $limitStr='LIMIT '.$offset.', '.$limit;
- }
-
- if(is_array($order)) {
- $orderStr='ORDER BY ';
- foreach($order as $key => $value) {
- $orderStr.=$key.' '.$value.' ';
- }
- }
- elseif($order) $orderStr='ORDER BY '.$order;
-
- return $this->query('SELECT * FROM '.$table.' '.$whereStr.' '.$orderStr.' '.$limitStr);
- }
-
- public function getProp($table, $func, $field, $where=false) {
- $whereStr='';
- if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
- elseif($where) $whereStr='WHERE '.$where;
-
- $this->query('SELECT '.$func.'('.$field.') as p FROM '.$table.' '.$whereStr);
-
- $arr=$this->fetchAssoc();
-
- return $arr[0]['p'];
- }
-
- public function getCount($table, $field='id', $where=false) {
- return $this->getProp($table, 'COUNT', $field, $where);
- }
-
- public function getSum($table, $field='id', $where=false) {
- return $this->getProp($table, 'SUM', $field, $where);
- }
-
- public function getAvg($table, $field='id', $where=false) {
- return $this->getProp($table, 'AVG', $field, $where);
- }
-
- public function delete($table, $where=false) {
- $whereStr='';
- if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
- elseif($where) $whereStr='WHERE '.$where;
-
- return $this->query('DELETE FROM '.$table.' '.$whereStr);
- }
-
- public function update($table, $infoArr, $where=false) {
- if(!is_array($infoArr)) {
- return false;
- }
-
- $whereStr='';
- $dataArr=array();
- $data='';
- if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
- elseif($where) $whereStr='WHERE '.$where;
-
- foreach($infoArr as $key => $value) {
- $dataArr[]='`'.$key.'`="'.mysqli_real_escape_string($this->connection, $value).'" ';
- }
- $data=implode(',',$dataArr);
-
- return $this->query('UPDATE '.$table.' SET '.$data.' '.$whereStr);
- }
-
- public function insert($table, $infoArr) {
- $this->connect();
-
- $columArr=array();
- $valueArr=array();
- $colums='';
- $values='';
-
- foreach($infoArr as $key => $value) {
- $columArr[]='`'.$key.'`';
- $valueArr[]='"'.mysqli_real_escape_string($this->connection, $value).'"';
- }
-
- $colums=implode(',',$columArr);
- $values=implode(',', $valueArr);
-
- return $this->query('INSERT INTO '.$table.' ('.$colums.') VALUES ('.$values.')');
- }
-
- public function affectedRows() {
- return mysqli_affected_rows($this->connection);
- }
-
- public function whereMakerPriv($where) {
- if(!is_array($where)) return 1;
- $this->connect();
- $back='1 ';
- foreach($where as $key=>$value) {
- if(is_array($value)) $back.='AND `'.$key.'`'.$value[0].'"'.$value[1].'" ';
- else $back.='AND `'.$key.'`="'.mysqli_real_escape_string($this->connection, $value).'" ';
- }
- return $back;
- }
-
- public static function whereMaker($where) {
- if(!is_array($where)) return 1;
- $back='1 ';
- foreach($where as $key=>$value) {
- if(is_array($value)) $back.='AND `'.$key.'`'.$value[0].'"'.$value[1].'" ';
- else $back.='AND `'.$key.'`="'.$value.'" ';
- }
- return $back;
- }
-}
-
-?>
+config=New JConfig();
+ $this->connection=false;
+ $this->host='';
+ $this->user='';
+ $this->pass='';
+ $this->name='';
+ }
+
+ public static function getInstance()
+ {
+ if(!empty(self::$msh)) return self::$msh;
+ self::$msh=new MySqlHelper();
+ self::$msh->init();
+ return self::$msh;
+ }
+
+ public function init($host="", $name="", $user="", $pass="")
+ {
+ $this->host=($host>"" ? $host : $this->config->host);
+ $this->name=($name>"" ? $name : $this->config->db);
+ $this->user=($user>"" ? $user : $this->config->user);
+ $this->pass=($pass>"" ? $pass : $this->config->password);
+ }
+
+ private function connect()
+ {
+ if($this->connection) return;
+
+ $this->connection=mysqli_connect($this->host, $this->user, $this->pass);
+
+ if(false===$this->connection) throw new Exception('Can\'t connect to db');
+
+ mysqli_select_db($this->connection,$this->name);
+ mysqli_query($this->connection, 'SET CHARACTER SET UTF8');
+ mysqli_query($this->connection, 'SET NAMES \'UTF8\' ');
+ mysqli_set_charset($this->connection, 'utf8');
+
+ if(mysqli_error($this->connection)) throw new Exception(mysql_error($this->connection));
+ }
+
+ public function query($query) {
+ $this->connect();
+ $this->queryString=$query;
+ $this->queryResult=mysqli_query($this->connection, $query);
+ if(mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection).' Query: '.$this->queryString);
+ }
+
+ public function fetchNext() {
+ $back=array();
+ if($row=mysqli_fetch_assoc($this->queryResult)) {
+ foreach($row as $key => $value) {
+ $row[$key]=stripslashes($value);
+ }
+ $back=$row;
+ return $back;
+ }
+
+ return false;
+ }
+
+ public function fetchAssoc() {
+ $back=array();
+ while($row=mysqli_fetch_assoc($this->queryResult)) {
+ foreach($row as $key => $value) {
+ $row[$key]=stripslashes($value);
+ }
+ $back[]=$row;
+ }
+
+ return $back;
+ }
+
+ public function getInsertedId() {
+ return mysqli_insert_id($this->connection);
+ }
+
+ public function select($table, $where=false, $offset=false, $limit=false, $order=false) {
+ $whereStr='';
+ $limitStr='';
+ $orderStr='';
+
+ if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
+ elseif($where) $whereStr='WHERE '.$where;
+
+ if(($offset!==false and $offset!==null)&&($limit!==false and $limit!==null)) {
+ $limitStr='LIMIT '.$offset.', '.$limit;
+ }
+
+ if(is_array($order)) {
+ $orderStr='ORDER BY ';
+ foreach($order as $key => $value) {
+ $orderStr.=$key.' '.$value.' ';
+ }
+ }
+ elseif($order) $orderStr='ORDER BY '.$order;
+
+ return $this->query('SELECT * FROM '.$table.' '.$whereStr.' '.$orderStr.' '.$limitStr);
+ }
+
+ public function getProp($table, $func, $field, $where=false) {
+ $whereStr='';
+ if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
+ elseif($where) $whereStr='WHERE '.$where;
+
+ $this->query('SELECT '.$func.'('.$field.') as p FROM '.$table.' '.$whereStr);
+
+ $arr=$this->fetchAssoc();
+
+ return $arr[0]['p'];
+ }
+
+ public function getCount($table, $field='id', $where=false) {
+ return $this->getProp($table, 'COUNT', $field, $where);
+ }
+
+ public function getSum($table, $field='id', $where=false) {
+ return $this->getProp($table, 'SUM', $field, $where);
+ }
+
+ public function getAvg($table, $field='id', $where=false) {
+ return $this->getProp($table, 'AVG', $field, $where);
+ }
+
+ public function delete($table, $where=false) {
+ $whereStr='';
+ if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
+ elseif($where) $whereStr='WHERE '.$where;
+
+ return $this->query('DELETE FROM '.$table.' '.$whereStr);
+ }
+
+ public function update($table, $infoArr, $where=false) {
+ if(!is_array($infoArr)) {
+ return false;
+ }
+
+ $whereStr='';
+ $dataArr=array();
+ $data='';
+ if(is_array($where)) $whereStr='WHERE '.$this->whereMakerPriv($where);
+ elseif($where) $whereStr='WHERE '.$where;
+
+ foreach($infoArr as $key => $value) {
+ $dataArr[]='`'.$key.'`="'.mysqli_real_escape_string($this->connection, $value).'" ';
+ }
+ $data=implode(',',$dataArr);
+
+ return $this->query('UPDATE '.$table.' SET '.$data.' '.$whereStr);
+ }
+
+ public function insert($table, $infoArr) {
+ $this->connect();
+
+ $columArr=array();
+ $valueArr=array();
+ $colums='';
+ $values='';
+
+ foreach($infoArr as $key => $value) {
+ $columArr[]='`'.$key.'`';
+ $valueArr[]='"'.mysqli_real_escape_string($this->connection, $value).'"';
+ }
+
+ $colums=implode(',',$columArr);
+ $values=implode(',', $valueArr);
+
+ return $this->query('INSERT INTO '.$table.' ('.$colums.') VALUES ('.$values.')');
+ }
+
+ public function affectedRows() {
+ return mysqli_affected_rows($this->connection);
+ }
+
+ public function whereMakerPriv($where) {
+ if(!is_array($where)) return 1;
+ $this->connect();
+ $back='1 ';
+ foreach($where as $key=>$value) {
+ if(is_array($value)) $back.='AND `'.$key.'`'.$value[0].'"'.$value[1].'" ';
+ else $back.='AND `'.$key.'`="'.mysqli_real_escape_string($this->connection, $value).'" ';
+ }
+ return $back;
+ }
+
+ public static function whereMaker($where) {
+ if(!is_array($where)) return 1;
+ $back='1 ';
+ foreach($where as $key=>$value) {
+ if(is_array($value)) $back.='AND `'.$key.'`'.$value[0].'"'.$value[1].'" ';
+ else $back.='AND `'.$key.'`="'.$value.'" ';
+ }
+ return $back;
+ }
+}
+
+?>
diff --git a/cadline/modules/modules/mod_alworkshops/index.html b/cadline/modules/modules/mod_alworkshops/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/index.html
+++ b/cadline/modules/modules/mod_alworkshops/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_alworkshops/mod_alworkshops.php b/cadline/modules/modules/mod_alworkshops/mod_alworkshops.php
index 3565872e..cf201d40 100644
--- a/cadline/modules/modules/mod_alworkshops/mod_alworkshops.php
+++ b/cadline/modules/modules/mod_alworkshops/mod_alworkshops.php
@@ -1,51 +1,51 @@
-addStyleSheet("/modules/mod_alworkshops/assets/css/style.css");
-$doc->addScript("/modules/mod_alworkshops/assets/js/script.js");
-
-$tmp = explode('/', JFactory::getURI()->getPath());
-$alias = end($tmp);
-$switch = ModAlworkshopsHelper::getSwitch($alias);
-
-JFactory::getDocument()->addStyleSheet('/templates/shaper_helix3/css/jquery-ui-smoothness.css');
-JFactory::getDocument()->addScript('/templates/shaper_helix3/js/jquery-ui.1.12.1.min.js');
-
-if ($alias > '') {
- if (ModAlworkshopsHelper::getLang() == 'hun') { // Magyar oldal
- $validLease = ModAlworkshopsHelper::getValidLease($switch->level);
- $examResults = ModAlworkshopsHelper::getExamResults();
-
- // workshopok
- if ($switch->kurzus == 'Y' || $switch->esemeny == 'Y' || $switch->webinair == 'Y') $workshopok = ModAlworkshopsHelper::getCourse($alias);
- elseif ($switch->vizsga == 'Y') { // vizsga
- $tceUser = ModAlworkshopsHelper::setTCEUser($switch->vizsga_csoport);
- $examPermit = ModAlworkshopsHelper::getExamPermit($switch->level);
- $onlineExamPermit = ModAlworkshopsHelper::getOnlineExamPermit($switch->level);
- $lastWorkshop = ModAlworkshopsHelper::getLastWorkshop($switch->level);
- $workshopok = ModAlworkshopsHelper::getWorkshops($alias, ($lastWorkshop ? (date('Y-m-d', _TIME_) >= $lastWorkshop->nextDay ? date('Y-m-d', _TIME_) : $lastWorkshop->nextDay) : ''));
-
- if ($switch->level == 4) {
- $appsign = ModAlworkshopsHelper::getAppSign($workshopok[0]->id);
- $tceGroup = ModAlworkshopsHelper::getTCEUserGroup();
- }
- } else // bármi egyéb (csak a workshopok maradtak)
- $workshopok = ModAlworkshopsHelper::getWorkshops($alias, ($validLease ? (date('Y-m-d', _TIME_) > $validLease->validFrom ? date('Y-m-d', _TIME_) : $validLease->validFrom) : ''), ($validLease ? $validLease->validThrough : ''));
-
- $payed = $workshopok ? ModAlworkshopsHelper::payed($workshopok[0]->id) : false;
-
- require JModuleHelper::getLayoutPath('mod_alworkshops', $params->get('layout', 'default'));
- }
-
- if (ModAlworkshopsHelper::getLang() == 'eng') { // Angol oldal
- if ($switch->webinair == 'Y' || $switch->esemeny == 'Y') $workshopok = ModAlworkshopsHelper::getCourse($alias);
- else $workshopok = ModAlworkshopsHelper::getWorkshopsByGroup($alias);
-
- require JModuleHelper::getLayoutPath('mod_alworkshops', 'eng');
- }
-}
+addStyleSheet("/modules/mod_alworkshops/assets/css/style.css");
+$doc->addScript("/modules/mod_alworkshops/assets/js/script.js");
+
+$tmp = explode('/', JFactory::getURI()->getPath());
+$alias = end($tmp);
+$switch = ModAlworkshopsHelper::getSwitch($alias);
+
+JFactory::getDocument()->addStyleSheet('/templates/shaper_helix3/css/jquery-ui-smoothness.css');
+JFactory::getDocument()->addScript('/templates/shaper_helix3/js/jquery-ui.1.12.1.min.js');
+
+if ($alias > '') {
+ if (ModAlworkshopsHelper::getLang() == 'hun') { // Magyar oldal
+ $validLease = ModAlworkshopsHelper::getValidLease($switch->level);
+ $examResults = ModAlworkshopsHelper::getExamResults();
+
+ // workshopok
+ if ($switch->kurzus == 'Y' || $switch->esemeny == 'Y' || $switch->webinair == 'Y') $workshopok = ModAlworkshopsHelper::getCourse($alias);
+ elseif ($switch->vizsga == 'Y') { // vizsga
+ $tceUser = ModAlworkshopsHelper::setTCEUser($switch->vizsga_csoport);
+ $examPermit = ModAlworkshopsHelper::getExamPermit($switch->level);
+ $onlineExamPermit = ModAlworkshopsHelper::getOnlineExamPermit($switch->level);
+ $lastWorkshop = ModAlworkshopsHelper::getLastWorkshop($switch->level);
+ $workshopok = ModAlworkshopsHelper::getWorkshops($alias, ($lastWorkshop ? (date('Y-m-d', _TIME_) >= $lastWorkshop->nextDay ? date('Y-m-d', _TIME_) : $lastWorkshop->nextDay) : ''));
+
+ if ($switch->level == 4) {
+ $appsign = ModAlworkshopsHelper::getAppSign($workshopok[0]->id);
+ $tceGroup = ModAlworkshopsHelper::getTCEUserGroup();
+ }
+ } else // bármi egyéb (csak a workshopok maradtak)
+ $workshopok = ModAlworkshopsHelper::getWorkshops($alias, ($validLease ? (date('Y-m-d', _TIME_) > $validLease->validFrom ? date('Y-m-d', _TIME_) : $validLease->validFrom) : ''), ($validLease ? $validLease->validThrough : ''));
+
+ $payed = $workshopok ? ModAlworkshopsHelper::payed($workshopok[0]->id) : false;
+
+ require JModuleHelper::getLayoutPath('mod_alworkshops', $params->get('layout', 'default'));
+ }
+
+ if (ModAlworkshopsHelper::getLang() == 'eng') { // Angol oldal
+ if ($switch->webinair == 'Y' || $switch->esemeny == 'Y') $workshopok = ModAlworkshopsHelper::getCourse($alias);
+ else $workshopok = ModAlworkshopsHelper::getWorkshopsByGroup($alias);
+
+ require JModuleHelper::getLayoutPath('mod_alworkshops', 'eng');
+ }
+}
diff --git a/cadline/modules/modules/mod_alworkshops/mod_alworkshops.xml b/cadline/modules/modules/mod_alworkshops/mod_alworkshops.xml
index 4de4df24..d3c92a1a 100644
--- a/cadline/modules/modules/mod_alworkshops/mod_alworkshops.xml
+++ b/cadline/modules/modules/mod_alworkshops/mod_alworkshops.xml
@@ -1,151 +1,151 @@
-
-
- MOD_ARCHLINE_WORKSHOPS
- Mar 2017
- Zsolt Fekete
- zsolt.fekete@cadline.hu
- https://www.facbook.com/mcleod78
- Copyright © 2017 - All rights reserved.
- GNU General Public License v2.0
- 0.0.1
- MOD__P_FRONT_ENDEN_MEGJELENITI_A
-
- mod_alworkshops.php
- mod_alworkshops.xml
- index.html
- language
- tmpl
- assets
-
-
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_alworkshops2.sys.ini
- en-GB/en-GB.mod_alworkshops.ini
- hu-HU/hu-HU.mod_alworkshops2.sys.ini
- hu-HU/hu-HU.mod_alworkshops.ini
-
+
+
+ MOD_ARCHLINE_WORKSHOPS
+ Mar 2017
+ Zsolt Fekete
+ zsolt.fekete@cadline.hu
+ https://www.facbook.com/mcleod78
+ Copyright © 2017 - All rights reserved.
+ GNU General Public License v2.0
+ 0.0.1
+ MOD__P_FRONT_ENDEN_MEGJELENITI_A
+
+ mod_alworkshops.php
+ mod_alworkshops.xml
+ index.html
+ language
+ tmpl
+ assets
+
+
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_alworkshops2.sys.ini
+ en-GB/en-GB.mod_alworkshops.ini
+ hu-HU/hu-HU.mod_alworkshops2.sys.ini
+ hu-HU/hu-HU.mod_alworkshops.ini
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alworkshops/tmpl/eng.php b/cadline/modules/modules/mod_alworkshops/tmpl/eng.php
index 378f32cf..d75aa0e5 100644
--- a/cadline/modules/modules/mod_alworkshops/tmpl/eng.php
+++ b/cadline/modules/modules/mod_alworkshops/tmpl/eng.php
@@ -1,1312 +1,1312 @@
-id);
-$time = '';
-$time = md5($time);
-?>
-
-
-
-
-
= JText::_('MOD_ARCHLINE_APPLICATION') ?>
-
-
-
-
- id > 0) : ?>
- = $user->username ?>
-
-
- level == 1 && $switch->tanfsor >= 5 && $switch->tanfsor <= 7) : ?>
-
- alias != 'belter' && $switch->alias != 'interior'): ?>
- price == 0) : ?>
- = JText::_('MOD_ARCHLINE_FREE') ?>
-
- = JText::_('MOD_ARCHLINE_PRICETAG_BEFORE') ?>= $workshopok[0]->price ?>= JText::_('MOD_ARCHLINE_PRICETAG_AFTER') ?> + = JText::_('MOD_ARCHLINE_PRICETAG_VAT') ?>
-
-
-
-
- location) > '' && substr($workshopok[0]->location, 0, 4) == "http") : ?>
- online
- location) > '') : ?>
- = $workshopok[0]->location ?>
-
-
- webinair == 'Y') : ?>
-
-
-
-
= $workshopok[0]->start_date ?> - = $workshopok[0]->finish_date ?>
-
= substr($workshopok[0]->start_time, 0, 5) ?> - = substr($workshopok[0]->finish_time, 0, 5) ?>
-
= JText::_('MOD_ARCHLINE_FREE_PLACE') ?>:
= $workshopok[0]->capacity - $workshopok[0]->applications ?> / = JText::_('MOD_ARCHLINE_MAX') ?>: = $workshopok[0]->capacity ?>
-
- id);
- if($onlineSessions) {
- if($workshopok[0]->course_level != 0) {
- print '
'.ModAlworkshopsHelper::getLevelString($workshopok[0]->course_level).' ';
- }
- print '
';
- print 'Időpontok:
';
- print '
';
- foreach ($onlineSessions as $session) {
- print "
- {$session->session_date}
- {$session->start_time}-{$session->finish_time}
- {$session->title}
- ";
- }
- print '
';
- }*/
-
- if ($workshopok[0]->comment != '' && $workshopok[0]->comment != null) {
- print '
';
- print '
';
- print 'Események
';
- print $workshopok[0]->comment;
- }
-
- MySqlHelper::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $workshopok[0]->id . " AND `email`='" . trim(addslashes($user->email)) . "' AND `published`='Y';");
- $exist = MySqlHelper::getInstance()->fetchAssoc();
- if ($user->id != 0) {
- if ($exist) {
- ?>
-
Erre az eseményre már jelentkeztél
-
-
Erre az eseményre még nem jelentkeztél
-
-
-
-
-
-
-
= $workshopok[1]->start_date ?> - = $workshopok[1]->finish_date ?>
-
= substr($workshopok[1]->start_time, 0, 5) ?> - = substr($workshopok[1]->finish_time, 0, 5) ?>
-
= JText::_('MOD_ARCHLINE_FREE_PLACE') ?>:
= $workshopok[1]->capacity - $workshopok[1]->applications ?> / = JText::_('MOD_ARCHLINE_MAX') ?>: = $workshopok[1]->capacity ?>
- id);
- if($onlineSessions) {
- if($workshopok[1]->course_level != 0) {
- print '
'.ModAlworkshopsHelper::getLevelString($workshopok[1]->course_level).' ';
- }
- print '
';
- print 'Időpontok:
';
- print '
';
- foreach ($onlineSessions as $session) {
- print "
- {$session->session_date}
- {$session->start_time}-{$session->finish_time}
- {$session->title}
- ";
- }
- print '
';
- }*/
-
- if ($workshopok[1]->comment != '' && $workshopok[1]->comment != null) {
- print '
';
- print '
';
- print 'Események
';
- print $workshopok[1]->comment;
- }
- MySqlHelper::getInstance()->query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $workshopok[1]->id . " AND `email`='" . trim(addslashes($user->email)) . "' AND `published`='Y';");
- $exist2 = MySqlHelper::getInstance()->fetchAssoc();
- if ($user->id != 0) {
- if ($exist2) {
- ?>
-
-
Erre az eseményre már jelentkeztél
-
-
= JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
Erre az eseményre még nem jelentkeztél
-
= JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
-
-
-
= JText::_('MOD_ARCHLINE_NO_WORKSHOP') ?>
-
-
-
- query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $workshopok[2]->id . " AND `email`='" . trim(addslashes($user->email)) . "' AND `published`='Y';");
- $exist3 = MySqlHelper::getInstance()->fetchAssoc();
- ?>
-
-
= $workshopok[2]->start_date ?>
-
= substr($workshopok[2]->start_time, 0, 5) ?> - = substr($workshopok[2]->finish_time, 0, 5) ?>
-
= JText::_('MOD_ARCHLINE_FREE_PLACE') ?>:
= $workshopok[2]->capacity - $workshopok[2]->applications ?> / = JText::_('MOD_ARCHLINE_MAX') ?>: = $workshopok[2]->capacity ?>
- id != 0) {
- if ($exist3) {
- ?>
-
-
Erre az eseményre már jelentkeztél
-
-
= JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
Erre az eseményre még nem jelentkeztél
-
= JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
-
-
-
= JText::_('MOD_ARCHLINE_NO_WORKSHOP') ?>
-
-
-
-
-
-
-
- kurzus == 'Y' && $switch->level == 2) : ?>
-
-
-
-
-
-
-
- webinair == 'Y' || $switch->esemeny == 'Y') : ?>
-
- webinair == 'Y') : ?>
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_EMAIL_COMMENT') ?>
-
- orszag == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_COUNTRY') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo 'profile['country'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
- szakma == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_PROF') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, users.nUserProf AS profID, u_profs.proName AS profName, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- LEFT JOIN u_profs ON u_profs.proID = users.nUserProf
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- if ($row['profName'] != $tomb) {
- $row['profName'] = "Nem szakmai";
- }
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- foreach ($tomb as $k => $v) echo 'profile['aboutme'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
-
-
-
-
- webinair == 'Y') : ?>
- query("SELECT * FROM `www_archline_hu`.`alworkshops_application` WHERE `course_id`=" . $workshopok[0]->id . " AND `email`='" . trim(addslashes($user->email)) . "' AND `published`='Y';");
- $exist3 = MySqlHelper::getInstance()->fetchAssoc();
- ?>
-
id == 0) ? 'style="display:none;"' : "") ?>>
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_NEXT') ?>:
-
-
-
-
-
-
-
-
- $ws) : ?>
- start_date;
- $timestamp = strtotime($date . ' ' . '17:00:00');
-
- $application = ModAlworkshopsHelper::getApplication($user->id, $ws->id);
- if ($application) $currentApplication = $k;
- if ($application && $switch->vizsga == 'Y') $examDate = $ws->start_date;
- ?>
- gepet_kerek == 'Y' && time() >= $timestamp) : ?>
-
-
-
-
-
- gepet_kerek == 'Y' && time() >= $timestamp && $ws->id != 1373) : ?>
-
-
- />
-
-
-
-
-
-
-
-
- start_date == $ws->finish_date) : ?>
- = $ws->start_date ?> = substr($ws->start_time, 0, -3) ?> -= substr($ws->finish_time, 0, -3) ?>
-
- = $ws->start_date ?> - = $ws->finish_date ?>
-
-
- gepet_kerek == 'Y') : ?>
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVED') ?>
- = JText::_('MOD_ARCHLINE_PAID') ?>
-
-
-
- kurzus == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_COURSE_SESSIONS') ?>:
-
- id);
- if ($course_sessions) : ?>
-
-
- alias == 'tanulocsoportok') : ?>= ModAlworkshopsHelper::getDayName($course_session->session_date); ?>
-
- = substr($course_session->session_date, 2) ?>
-
- = substr($course_session->start_time, 0, 5) ?>-= substr($course_session->finish_time, 0, 5) ?>
- = $course_session->description ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- kurzus == 'Y' && $switch->level == 2) : ?>
- = JText::_('MOD_ARCHLINE_NEXT') ?>:
-
-
-
-
-
-
-
-
- $ws) : ?>
- start_date;
- $timestamp = strtotime($date . ' ' . '17:00:00');
-
- $application = ModAlworkshopsHelper::getApplication($user->id, $ws->id);
- if ($application) $currentApplication = $k;
- if ($application && $switch->vizsga == 'Y') $examDate = $ws->start_date;
- ?>
- gepet_kerek == 'Y' && time() >= $timestamp) : ?>
-
-
-
-
-
- gepet_kerek == 'Y' && time() >= $timestamp) : ?>
-
-
- />
-
-
-
-
-
-
- gepet_kerek == 'Y') : ?>
-
-
- start_date == $ws->finish_date) : ?>
- = $ws->start_date ?> = substr($ws->start_time, 0, -3) ?> -= substr($ws->finish_time, 0, -3) ?>
-
- = $ws->start_date ?> - = $ws->finish_date ?>
-
-
- = JText::_('MOD_ARCHLINE_CAPACITY') ?>: = $ws->capacity - $ws->applications ?>
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVED') ?>
- = JText::_('MOD_ARCHLINE_PAID') ?>
-
-
-
- kurzus == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_COURSE_SESSIONS') ?>:
-
- id);
- if ($course_sessions) : ?>
-
-
- = substr($course_session->session_date, 2) ?>
- = substr($course_session->start_time, 0, 5) ?>-= substr($course_session->finish_time, 0, 5) ?>
- = $course_session->description ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- id > 0) : ?>
-
-
-
- berletem_van == 'Y' && $validLease) : ?>
-
-
- = JText::_('MOD_ARCHLINE_HAVE_LEASE') ?>
- (= JText::_('MOD_ARCHLINE_VALID') ?>: = $validLease->validThrough ?>)
-
-
-
- webinair == 'N' && $switch->esemeny == 'N') : ?>
-
-
-
-
-
- price > 0) : ?>
-
= JText::_('MOD_ARCHLINE_ACCEPT') ?>
-
-
-
-
-
- kurzus == 'Y' && $switch->level == 1) : ?>
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
- kurzus == 'Y' && $switch->level == 2) : ?>
-
- alap_oklevel*/true) : ?>
- alias == 'kozepfoku-tanfolyam') : ?>
- id, $workshopok[0]->id);
- ?>
-
- = JText::_('MOD_ARCHLINE_RESERVED') ?>
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
- = JText::_('MOD_ARCHLINE_COURSE_INTERMEDIATE') ?>!
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
- workshop == 'Y' && $validLease) : ?>
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
- workshop == 'Y' && !$validLease) : ?>
-
- level == 1) : ?>
-
- = JText::_('MOD_ARCHLINE_WORKSHOP_PRELIMINARY') ?>!
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
- level == 2) : ?>
- alap_oklevel) : ?>
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
- = JText::_('MOD_ARCHLINE_WORKSHOP_INTERMEDIATE') ?>!
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
-
- vizsga == 'Y') : ?>
-
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>
-
- = JText::_('MOD_ARCHLINE_PAY') ?>
-
- = JText::_('MOD_ARCHLINE_PAY') ?>
-
-
-
- level == 2) : ?>A Középfokú vizsga feltétele az elvégzett Alapfokú vizsga !
- level == 4) : ?>A Felsőfokú vizsga feltétele az elvégzett Középfokú vizsga !
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
- level == 1) : ?>= JText::_('MOD_ARCHLINE_EXAM_PRELIMINARY') ?>!
- level == 2) : ?>= JText::_('MOD_ARCHLINE_EXAM_INTERMEDIATE') ?>!
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- price > 0) : ?>= JText::_('MOD_ARCHLINE_PAY') ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- esemeny != 'Y' && ($switch->vizsga == 'Y' || $switch->webinair == 'Y')) { ?>
-
= JText::_('MOD_ARCHLINE_MY_APPLICATION') ?>
-
-
- vizsga == 'Y' || $application->attendees <= 3) : ?>
-
-
-
-
-
-
- webinair != 'Y' && $switch->vizsga == 'Y') : ?>
-
- " />
-
- Vizsgázok
-
-
-
-
-
-
-
-
-
- kurzus == 'Y' || $switch->workshop == 'Y' || $switch->vizsga == 'Y' || ($switch->esemeny == 'Y' && $switch->login == 'Y') || ($switch->webinair == 'Y' && $switch->login = 'N')) : ?>
- webinair == 'Y' && $switch->login == 'N') {
- ?>
-
-
-
= JText::_('MOD_ARCHLINE_MUST_LOGIN') ?>
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Bejelentkezés')) ?>
-
-
-
-
-
= JText::_('MOD_ARCHLINE_MUST_LOGIN') ?>
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Bejelentkezés')) ?>
-
-
-
-
-
= JText::_('MOD_ARCHLINE_MUST_LOGIN') ?>
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Bejelentkezés')) ?>
-
-
-
- esemeny == 'Y' && $user->id <= 0) : ?>
-
-
-
-
-
-
- $ws) : ?>
- start_date;
- $timestamp = strtotime($date . ' ' . '17:00:00');
-
- $application = ModAlworkshopsHelper::getApplication($user->id, $ws->id);
- if ($application) $currentApplication = $k;
- if ($application && $switch->vizsga == 'Y') $examDate = $ws->start_date;
- ?>
- = $timestamp) : ?>
-
-
-
-
-
- = $timestamp) : ?>
-
-
- />
-
-
-
-
-
-
- gepet_kerek == 'Y') : ?>
-
-
- start_date == $ws->finish_date) : ?>
- = $ws->start_date ?> = substr($ws->start_time, 0, -3) ?> -= substr($ws->finish_time, 0, -3) ?>
-
- = $ws->start_date ?> - = $ws->finish_date ?>
-
-
- = JText::_('MOD_ARCHLINE_CAPACITY') ?>: = $ws->capacity - $ws->applications ?>
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVED') ?>
- = JText::_('MOD_ARCHLINE_PAID') ?>
-
-
-
- kurzus == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_COURSE_SESSIONS') ?>:
-
- id);
- if ($course_sessions) : ?>
-
-
- = substr($course_session->session_date, 2) ?>
- = substr($course_session->start_time, 0, 5) ?>-= substr($course_session->finish_time, 0, 5) ?>
- = $course_session->description ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
= JText::_('MOD_ARCHLINE_MUST_LOGIN') ?>
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Bejelentkezés')) ?>
-
-
-
-
-
-
= JText::_('MOD_ARCHLINE_NO_WORKSHOP') ?>
-
-
-price > 0) : ?>
-
-
-
-
-
-alias != 'tanulocsoportok' && ($switch->kurzus == 'Y' || $switch->workshop == 'Y')) : ?>
-
-
-
-
-esemeny == 'Y' && $user->id > 0) {
-?>
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_EMAIL_COMMENT') ?>
-
- orszag == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_COUNTRY') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo 'profile['country'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
- szakma == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_PROF') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, users.nUserProf AS profID, u_profs.proName AS profName, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- LEFT JOIN u_profs ON u_profs.proID = users.nUserProf
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- if ($row['profName'] != $tomb) {
- $row['profName'] = "Nem szakmai";
- }
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- foreach ($tomb as $k => $v) echo 'profile['aboutme'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
-
-
- id == 0) ? 'style="display:none;"' : "") ?>>
-
-
-
-
-
-
-
-
-
-
-
- $ws) : ?>
-
- start_date;
- $timestamp = strtotime($date . ' ' . '17:00:00');
-
- $application = ModAlworkshopsHelper::getApplication($user->id, $ws->id);
- if ($application) $currentApplication = $k;
- if ($application && $switch->vizsga == 'Y') $examDate = $ws->start_date;
- ?>
- = $timestamp) : ?>
-
-
-
-
-
- = $timestamp) : ?>
-
-
- />
-
-
-
-
-
-
- gepet_kerek == 'Y') : ?>
-
-
- start_date == $ws->finish_date) : ?>
- = $ws->start_date ?> = substr($ws->start_time, 0, -3) ?> -= substr($ws->finish_time, 0, -3) ?>
-
- = $ws->start_date ?> - = $ws->finish_date ?>
-
-
- = JText::_('MOD_ARCHLINE_CAPACITY') ?>: = $ws->capacity - $ws->applications ?>
-
-
-
-
- = JText::_('MOD_ARCHLINE_RESERVED') ?>
- = JText::_('MOD_ARCHLINE_PAID') ?>
-
-
-
- kurzus == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_COURSE_SESSIONS') ?>:
-
- id);
- if ($course_sessions) : ?>
-
-
- = substr($course_session->session_date, 2) ?>
- = substr($course_session->start_time, 0, 5) ?>-= substr($course_session->finish_time, 0, 5) ?>
- = $course_session->description ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- alias == 'belter' || $switch->alias == 'interior'): ?>
-
-
- The applicant agrees that their data (name, phone number, e-mail address) will be given to the course organiser Krisztina Hárosi by CadLine Ltd.
-
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
-
- = JText::_('MOD_ARCHLINE_RESERVE') ?>
-
-
- alias != 'belter' && $switch->alias != 'interior'): ?>
-
- = JText::_('MOD_ARCHLINE_MY_APPLICATION') ?>
-
-
-
-
-
- webinair == 'Y') : ?>
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_EMAIL_COMMENT') ?>
-
- orszag == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_COUNTRY') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo 'profile['country'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
- szakma == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_PROF') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, users.nUserProf AS profID, u_profs.proName AS profName, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- LEFT JOIN u_profs ON u_profs.proID = users.nUserProf
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- if ($row['profName'] != $tomb) {
- $row['profName'] = "Nem szakmai";
- }
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- foreach ($tomb as $k => $v) echo 'profile['aboutme'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
-
id == 0) ? 'style="display:none;"' : "") ?>>
-
-
-
-
-
-
-
-
-
-
-
-
- webinair == 'Y') : ?>
-
-
-
-
-
-
- = JText::_('MOD_ARCHLINE_EMAIL_COMMENT') ?>
-
- orszag == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_COUNTRY') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
- foreach ($tomb as $k => $v) echo 'profile['country'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
- szakma == 'Y') : ?>
-
-
- = JText::_('MOD_ARCHLINE_SELECT_PROF') ?>*
- -----
- prepare("SELECT users.nCtrID AS ctrID, users.nUserProf AS profID, u_profs.proName AS profName, countries.ctrName AS name
- FROM users
- LEFT JOIN countries ON countries.ctrID = users.nCtrID
- LEFT JOIN u_profs ON u_profs.proID = users.nUserProf
- WHERE users.nUserID = ?");
- $sql->bind_param("i", $user->nUserID);
- $sql->execute();
- $result = $sql->get_result();
-
- if ($user->id != 0) {
- while ($row = mysqli_fetch_assoc($result)) {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- if ($row['profName'] != $tomb) {
- $row['profName'] = "Nem szakmai";
- }
- foreach ($tomb as $k => $v) echo '' . $v . ' ';
- }
- } else {
- $tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
- foreach ($tomb as $k => $v) echo 'profile['aboutme'] == $v ? ' selected="selected"' : '') . '>' . $v . ' ';
- }
- ?>
-
-
-
-
id == 0) ? 'style="display:none;"' : "") ?>>
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_alworkshops/tmpl/index.html b/cadline/modules/modules/mod_alworkshops/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_alworkshops/tmpl/index.html
+++ b/cadline/modules/modules/mod_alworkshops/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_course_list/index.html b/cadline/modules/modules/mod_course_list/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_course_list/index.html
+++ b/cadline/modules/modules/mod_course_list/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini b/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini
index ccf3660f..d92d6e97 100644
--- a/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini
+++ b/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini
@@ -1,4 +1,4 @@
-MOD_ARCHLINE_USERS="ARCHLine users"
-MOD__P___ARCHLINE_USERS___P_="
- ARCHLine users
-
"
+MOD_ARCHLINE_USERS="ARCHLine users"
+MOD__P___ARCHLINE_USERS___P_="
+ ARCHLine users
+
"
diff --git a/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini b/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini
index ccf3660f..d92d6e97 100644
--- a/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini
+++ b/cadline/modules/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini
@@ -1,4 +1,4 @@
-MOD_ARCHLINE_USERS="ARCHLine users"
-MOD__P___ARCHLINE_USERS___P_="
- ARCHLine users
-
"
+MOD_ARCHLINE_USERS="ARCHLine users"
+MOD__P___ARCHLINE_USERS___P_="
+ ARCHLine users
+
"
diff --git a/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini b/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini
index ccf3660f..d92d6e97 100644
--- a/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini
+++ b/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini
@@ -1,4 +1,4 @@
-MOD_ARCHLINE_USERS="ARCHLine users"
-MOD__P___ARCHLINE_USERS___P_="
- ARCHLine users
-
"
+MOD_ARCHLINE_USERS="ARCHLine users"
+MOD__P___ARCHLINE_USERS___P_="
+ ARCHLine users
+
"
diff --git a/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini b/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini
index ccf3660f..d92d6e97 100644
--- a/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini
+++ b/cadline/modules/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini
@@ -1,4 +1,4 @@
-MOD_ARCHLINE_USERS="ARCHLine users"
-MOD__P___ARCHLINE_USERS___P_="
- ARCHLine users
-
"
+MOD_ARCHLINE_USERS="ARCHLine users"
+MOD__P___ARCHLINE_USERS___P_="
+ ARCHLine users
+
"
diff --git a/cadline/modules/modules/mod_course_list/mod_course_list.php b/cadline/modules/modules/mod_course_list/mod_course_list.php
index b6fe7411..342c8f1a 100644
--- a/cadline/modules/modules/mod_course_list/mod_course_list.php
+++ b/cadline/modules/modules/mod_course_list/mod_course_list.php
@@ -1,12 +1,12 @@
-getTag();
-$user = JFactory::getUser();
-$courses = ModCourseListHelper::getCourses();
-$color = ModCourseListHelper::getColor();
-$applications = ModCourseListHelper::getApplications($user->id);
-
-require JModuleHelper::getLayoutPath('mod_course_list', $params->get('layout', 'default'));
+getTag();
+$user = JFactory::getUser();
+$courses = ModCourseListHelper::getCourses();
+$color = ModCourseListHelper::getColor();
+$applications = ModCourseListHelper::getApplications($user->id);
+
+require JModuleHelper::getLayoutPath('mod_course_list', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_course_list/mod_course_list.xml b/cadline/modules/modules/mod_course_list/mod_course_list.xml
index e1772366..91b8d56d 100644
--- a/cadline/modules/modules/mod_course_list/mod_course_list.xml
+++ b/cadline/modules/modules/mod_course_list/mod_course_list.xml
@@ -1,42 +1,42 @@
-
-
- MOD_COURSE_LIST
- August 2022
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Create a list for the actual courses
-
- mod_course_list.php
- mod_course_list.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_course_list.sys.ini
- en-GB/en-GB.mod_course_list.ini
- hu-HU/hu-HU.mod_course_list.sys.ini
- hu-HU/hu-HU.mod_course_list.ini
-
-
+
+
+ MOD_COURSE_LIST
+ August 2022
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Create a list for the actual courses
+
+ mod_course_list.php
+ mod_course_list.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_course_list.sys.ini
+ en-GB/en-GB.mod_course_list.ini
+ hu-HU/hu-HU.mod_course_list.sys.ini
+ hu-HU/hu-HU.mod_course_list.ini
+
+
diff --git a/cadline/modules/modules/mod_course_list/tmpl/default.php b/cadline/modules/modules/mod_course_list/tmpl/default.php
index 17367de6..a10a3c6d 100644
--- a/cadline/modules/modules/mod_course_list/tmpl/default.php
+++ b/cadline/modules/modules/mod_course_list/tmpl/default.php
@@ -1,329 +1,329 @@
-
-
-
-
-
-
- id, $user->id); ?>
-
-
-
-
+
+
+
+
+
+
+ id, $user->id); ?>
+
+
+
+
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_course_list/tmpl/index.html b/cadline/modules/modules/mod_course_list/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_course_list/tmpl/index.html
+++ b/cadline/modules/modules/mod_course_list/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_webinar/helper.php b/cadline/modules/modules/mod_webinar/helper.php
index 0c68ba18..1d398fde 100644
--- a/cadline/modules/modules/mod_webinar/helper.php
+++ b/cadline/modules/modules/mod_webinar/helper.php
@@ -1,232 +1,232 @@
-getQuery(true);
-
- $query->select(array('c.*'));
- $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
- $query->where($db->quoteName('c.id') . ' = ' . $db->quote($id));
-
- // Reset the query using our newly populated query object.
- $db->setQuery($query);
-
- // Load the results as a list of stdClass objects (see later for more options on retrieving data).
- $result = $db->loadObject();
-
- if ($result->yt_link != '')
- $result->ytID = substr($result->yt_link, strrpos($result->yt_link, '/') + 1);
-
- $start_date = new DateTime($result->start_date . ' ' . $result->start_time);
- $since_start = $start_date->diff(new DateTime($result->finish_date . ' ' . $result->finish_time));
-
- $result->period = $since_start->i;
-
- return $result;
- }
-
- public static function changeDateFormat($date)
- {
- $date = new DateTime($date);
-
- return $date->format('M d, Y g:i A');
- }
-
- public function createApplication($course_id, $name, $email, $user_id)
- {
- $db = JFactory::getDbo();
- $application = new stdClass();
-
- $application->course_id = $course_id;
- $application->user_id = $user_id;
- $application->attendees = 1;
- $application->price_per_attendee = 0;
- $application->price_total = 0;
- $application->price_vat = 0;
- $application->gepet_kerek = 'N';
- $application->berletem_van = 'N';
- $application->date = date('Y-m-d H:i:s', time());
- $application->transaction_id = '';
- $application->wsdatetime = NULL;
- $application->name = $name;
- $application->email = $email;
-
- $db->insertObject('www_archline_hu.alworkshops_application', $application);
- }
-
- public static function getCrmUser($nUserID)
- {
- $db = JFactory::getDbo();
-
- $query = "SELECT * FROM cl_hlusers.users
- WHERE nUserID = {$nUserID}";
-
- $db->setQuery($query);
-
- return $db->loadObject();
- }
-
- public function getUserID($name, $email, $prof, $cntry)
- {
- $db = JFactory::getDbo();
-
- $query = "SELECT * FROM cl_hlusers.u_emails
- WHERE email = '{$email}'";
-
- $db->setQuery($query);
-
- $exist = $db->loadObject();
-
- if (!$exist) {
- if ($name > '' && $email > '') {
- $user = new stdClass();
-
- $user->strName = $name;
- $user->strEmail = $email;
- $user->nUserProf = $prof;
- $user->nCtrID = $cntry;
- $user->dateInsert = time();
- $user->old_db = 'clusers_eng';
-
- $db->insertObject('cl_hlusers.users', $user);
-
- $nUserID = $db->insertid();
-
- $u_email = new stdClass();
-
- $u_email->email = $email;
- $u_email->nUserID = $nUserID;
- $u_email->default = 1;
- $u_email->active = 1;
- $u_email->deleted = 0;
- $u_email->newsletter = 1;
-
- $db->insertObject('cl_hlusers.u_emails', $u_email);
- }
- } else {
- $nUserID = $exist->nUserID;
- }
-
- return $nUserID;
- }
-
- public static function getEmailTemplate($email_template)
- {
- $db = JFactory::getDbo();
- $table = JFactory::getLanguage()->getTag() == 'hu-HU' ? 'jml_content' : 'eng_content';
-
- $query = "SELECT * FROM www_archline_hu.{$table}
- WHERE id = {$email_template}";
-
- $db->setQuery($query);
-
- return $db->loadObject();
- }
-
- public static function sendEmail($course, $name, $email)
- {
- require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/libraries/phpmailer/PHPMailerAutoload.php');
- require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
-
- $template = self::getEmailTemplate($course->email_template);
- $body = $template->introtext . $template->fulltext;
- $title = $template->title;
-
- $replacements = array(
- '{NAME}' => $name,
- '{TITLE}' => $course->title,
- '{START_DATE}' => $course->start_date,
- '{START_TIME}' => $course->start_time,
- '{FINISH_DATE}' => $course->finish_date,
- '{FINISH_TIME}' => $course->finish_time,
- '{LOCATION}' => $course->location,
- '{ATTENDEES}' => 0,
- '{PRICE}' => $course->price,
- '{PRICE_TOTAL}' => 0,
- '{VAT}' => $course->vat
- );
-
- foreach ($replacements as $key => $value) {
- $body = str_replace($key, $value, $body);
- }
-
- $mail = new PHPMailer;
- $mail->isSMTP();
- $mail->CharSet = 'UTF-8';
- $mail->Host = $mailconfig['Host'];
- $mail->SMTPAuth = true;
- $mail->Username = $mailconfig['Username'];
- $mail->Password = $mailconfig['Password'];
- $mail->SMTPSecure = $mailconfig['SMTPSecure'];
- $mail->Port = $mailconfig['Port'];
- $mail->Subject = $title;
- $mail->AltBody = strip_tags($body);
- $mail->isHTML(TRUE);
- $mail->setFrom($mailconfig['from_hu']);
- $mail->addAddress($email);
- //$mail->addBCC('marketing@cadline.hu');
- $mail->msgHTML($body);
-
- if ($mail->send()) {
- unset($mail);
-
- return true;
- } else {
- return false;
- }
- }
-
- public static function registration($data)
- {
- $db = JFactory::getDbo();
-
- $name = $data['question_name'];
- $email = $data['question_email_address'];
- $cntry = $data['question_country'];
- $prof = $data['question_prof'];
- $c_id = $data['course_id'];
-
- $nUserID = self::getUserID($name, $email, $prof, $cntry);
-
- $query = "SELECT * FROM www_archline_hu.alworkshops_application
- WHERE course_id = {$c_id} AND email = '{$email}' AND published = 'Y'";
-
- $db->setQuery($query);
-
- $exist = $db->loadObject();
-
- if (empty($exist)) {
- $course = self::getWebinar($c_id);
- $history = new stdClass();
- $user = JFactory::getUser();
-
- $history->nUserID = $nUserID;
- $history->nTopicID = JFactory::getLanguage()->getTag() == 'hu-HU' ? 336 : 333;
- $history->dateEvent = $course->start_date;
- $history->strPlace = $course->title;
- $history->strInfo = $course->course_name;
- $history->nManagerID = 36;
- $history->insertDate = date('Y-m-d H:i:s', time());
-
- $db->insertObject('cl_hlusers.u_history', $history);
-
- self::createApplication($c_id, $name, $email, $user->id);
-
- $sendEmail = self::sendEmail($course, $name, $email);
-
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_WEBINAR_SUCCESS_REGISTRATION'));
- } else {
- JFactory::getApplication()->enqueueMessage(JText::_('MOD_WEBINAR_ALREADY_SIGNED_UP'), 'warning');
- }
- }
-}
+getQuery(true);
+
+ $query->select(array('c.*'));
+ $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
+ $query->where($db->quoteName('c.id') . ' = ' . $db->quote($id));
+
+ // Reset the query using our newly populated query object.
+ $db->setQuery($query);
+
+ // Load the results as a list of stdClass objects (see later for more options on retrieving data).
+ $result = $db->loadObject();
+
+ if ($result->yt_link != '')
+ $result->ytID = substr($result->yt_link, strrpos($result->yt_link, '/') + 1);
+
+ $start_date = new DateTime($result->start_date . ' ' . $result->start_time);
+ $since_start = $start_date->diff(new DateTime($result->finish_date . ' ' . $result->finish_time));
+
+ $result->period = $since_start->i;
+
+ return $result;
+ }
+
+ public static function changeDateFormat($date)
+ {
+ $date = new DateTime($date);
+
+ return $date->format('M d, Y g:i A');
+ }
+
+ public function createApplication($course_id, $name, $email, $user_id)
+ {
+ $db = JFactory::getDbo();
+ $application = new stdClass();
+
+ $application->course_id = $course_id;
+ $application->user_id = $user_id;
+ $application->attendees = 1;
+ $application->price_per_attendee = 0;
+ $application->price_total = 0;
+ $application->price_vat = 0;
+ $application->gepet_kerek = 'N';
+ $application->berletem_van = 'N';
+ $application->date = date('Y-m-d H:i:s', time());
+ $application->transaction_id = '';
+ $application->wsdatetime = NULL;
+ $application->name = $name;
+ $application->email = $email;
+
+ $db->insertObject('www_archline_hu.alworkshops_application', $application);
+ }
+
+ public static function getCrmUser($nUserID)
+ {
+ $db = JFactory::getDbo();
+
+ $query = "SELECT * FROM cl_hlusers.users
+ WHERE nUserID = {$nUserID}";
+
+ $db->setQuery($query);
+
+ return $db->loadObject();
+ }
+
+ public function getUserID($name, $email, $prof, $cntry)
+ {
+ $db = JFactory::getDbo();
+
+ $query = "SELECT * FROM cl_hlusers.u_emails
+ WHERE email = '{$email}'";
+
+ $db->setQuery($query);
+
+ $exist = $db->loadObject();
+
+ if (!$exist) {
+ if ($name > '' && $email > '') {
+ $user = new stdClass();
+
+ $user->strName = $name;
+ $user->strEmail = $email;
+ $user->nUserProf = $prof;
+ $user->nCtrID = $cntry;
+ $user->dateInsert = time();
+ $user->old_db = 'clusers_eng';
+
+ $db->insertObject('cl_hlusers.users', $user);
+
+ $nUserID = $db->insertid();
+
+ $u_email = new stdClass();
+
+ $u_email->email = $email;
+ $u_email->nUserID = $nUserID;
+ $u_email->default = 1;
+ $u_email->active = 1;
+ $u_email->deleted = 0;
+ $u_email->newsletter = 1;
+
+ $db->insertObject('cl_hlusers.u_emails', $u_email);
+ }
+ } else {
+ $nUserID = $exist->nUserID;
+ }
+
+ return $nUserID;
+ }
+
+ public static function getEmailTemplate($email_template)
+ {
+ $db = JFactory::getDbo();
+ $table = JFactory::getLanguage()->getTag() == 'hu-HU' ? 'jml_content' : 'eng_content';
+
+ $query = "SELECT * FROM www_archline_hu.{$table}
+ WHERE id = {$email_template}";
+
+ $db->setQuery($query);
+
+ return $db->loadObject();
+ }
+
+ public static function sendEmail($course, $name, $email)
+ {
+ require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/libraries/phpmailer/PHPMailerAutoload.php');
+ require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/config.mail.php');
+
+ $template = self::getEmailTemplate($course->email_template);
+ $body = $template->introtext . $template->fulltext;
+ $title = $template->title;
+
+ $replacements = array(
+ '{NAME}' => $name,
+ '{TITLE}' => $course->title,
+ '{START_DATE}' => $course->start_date,
+ '{START_TIME}' => $course->start_time,
+ '{FINISH_DATE}' => $course->finish_date,
+ '{FINISH_TIME}' => $course->finish_time,
+ '{LOCATION}' => $course->location,
+ '{ATTENDEES}' => 0,
+ '{PRICE}' => $course->price,
+ '{PRICE_TOTAL}' => 0,
+ '{VAT}' => $course->vat
+ );
+
+ foreach ($replacements as $key => $value) {
+ $body = str_replace($key, $value, $body);
+ }
+
+ $mail = new PHPMailer;
+ $mail->isSMTP();
+ $mail->CharSet = 'UTF-8';
+ $mail->Host = $mailconfig['Host'];
+ $mail->SMTPAuth = true;
+ $mail->Username = $mailconfig['Username'];
+ $mail->Password = $mailconfig['Password'];
+ $mail->SMTPSecure = $mailconfig['SMTPSecure'];
+ $mail->Port = $mailconfig['Port'];
+ $mail->Subject = $title;
+ $mail->AltBody = strip_tags($body);
+ $mail->isHTML(TRUE);
+ $mail->setFrom($mailconfig['from_hu']);
+ $mail->addAddress($email);
+ //$mail->addBCC('marketing@cadline.hu');
+ $mail->msgHTML($body);
+
+ if ($mail->send()) {
+ unset($mail);
+
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public static function registration($data)
+ {
+ $db = JFactory::getDbo();
+
+ $name = $data['question_name'];
+ $email = $data['question_email_address'];
+ $cntry = $data['question_country'];
+ $prof = $data['question_prof'];
+ $c_id = $data['course_id'];
+
+ $nUserID = self::getUserID($name, $email, $prof, $cntry);
+
+ $query = "SELECT * FROM www_archline_hu.alworkshops_application
+ WHERE course_id = {$c_id} AND email = '{$email}' AND published = 'Y'";
+
+ $db->setQuery($query);
+
+ $exist = $db->loadObject();
+
+ if (empty($exist)) {
+ $course = self::getWebinar($c_id);
+ $history = new stdClass();
+ $user = JFactory::getUser();
+
+ $history->nUserID = $nUserID;
+ $history->nTopicID = JFactory::getLanguage()->getTag() == 'hu-HU' ? 336 : 333;
+ $history->dateEvent = $course->start_date;
+ $history->strPlace = $course->title;
+ $history->strInfo = $course->course_name;
+ $history->nManagerID = 36;
+ $history->insertDate = date('Y-m-d H:i:s', time());
+
+ $db->insertObject('cl_hlusers.u_history', $history);
+
+ self::createApplication($c_id, $name, $email, $user->id);
+
+ $sendEmail = self::sendEmail($course, $name, $email);
+
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_WEBINAR_SUCCESS_REGISTRATION'));
+ } else {
+ JFactory::getApplication()->enqueueMessage(JText::_('MOD_WEBINAR_ALREADY_SIGNED_UP'), 'warning');
+ }
+ }
+}
diff --git a/cadline/modules/modules/mod_webinar/index.html b/cadline/modules/modules/mod_webinar/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_webinar/index.html
+++ b/cadline/modules/modules/mod_webinar/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_webinar/mod_webinar.php b/cadline/modules/modules/mod_webinar/mod_webinar.php
index ec50518d..e8d72d79 100644
--- a/cadline/modules/modules/mod_webinar/mod_webinar.php
+++ b/cadline/modules/modules/mod_webinar/mod_webinar.php
@@ -1,39 +1,39 @@
-input->getString('webinar_id');
-$webinar = ModWebinarHelper::getWebinar($webinarID);
-
-$user = JFactory::getUser();
-$countries = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
-$profession = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
-
-$status = $user->guest;
-
-if (!$user->guest) {
- $name = $user->name;
- $email = $user->email;
-
- $crmUser = ModWebinarHelper::getCrmUser($user->nUserID);
-
- if (!empty($crmUser)) {
- $cntry = $crmUser->nCtrID;
- $prof = $crmUser->nUserProf;
- }
-}
-
-if (JFactory::getLanguage()->getTag() == 'hu-HU') {
- $crm_db = 'clusers';
-} else {
- $crm_db = 'clusers_eng';
-}
-
-if (isset($_POST['webinar_register_button'])) {
- //ModWebinarHelper::registration($_POST);
- ModWebinarHelper::registration($app->input->post);
-}
-
-require JModuleHelper::getLayoutPath('mod_webinar', $params->get('layout', 'default'));
+input->getString('webinar_id');
+$webinar = ModWebinarHelper::getWebinar($webinarID);
+
+$user = JFactory::getUser();
+$countries = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
+$profession = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
+
+$status = $user->guest;
+
+if (!$user->guest) {
+ $name = $user->name;
+ $email = $user->email;
+
+ $crmUser = ModWebinarHelper::getCrmUser($user->nUserID);
+
+ if (!empty($crmUser)) {
+ $cntry = $crmUser->nCtrID;
+ $prof = $crmUser->nUserProf;
+ }
+}
+
+if (JFactory::getLanguage()->getTag() == 'hu-HU') {
+ $crm_db = 'clusers';
+} else {
+ $crm_db = 'clusers_eng';
+}
+
+if (isset($_POST['webinar_register_button'])) {
+ //ModWebinarHelper::registration($_POST);
+ ModWebinarHelper::registration($app->input->post);
+}
+
+require JModuleHelper::getLayoutPath('mod_webinar', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_webinar/mod_webinar.xml b/cadline/modules/modules/mod_webinar/mod_webinar.xml
index be167bce..bec8a02d 100644
--- a/cadline/modules/modules/mod_webinar/mod_webinar.xml
+++ b/cadline/modules/modules/mod_webinar/mod_webinar.xml
@@ -1,42 +1,42 @@
-
-
- MOD_WEBINAR
- October 2021
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Webinar page
-
- mod_webinar.php
- mod_webinar.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_webinar.sys.ini
- en-GB/en-GB.mod_webinar.ini
- hu-HU/hu-HU.mod_webinar.sys.ini
- hu-HU/hu-HU.mod_webinar.ini
-
-
+
+
+ MOD_WEBINAR
+ October 2021
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Webinar page
+
+ mod_webinar.php
+ mod_webinar.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_webinar.sys.ini
+ en-GB/en-GB.mod_webinar.ini
+ hu-HU/hu-HU.mod_webinar.sys.ini
+ hu-HU/hu-HU.mod_webinar.ini
+
+
diff --git a/cadline/modules/modules/mod_webinar/tmpl/default.php b/cadline/modules/modules/mod_webinar/tmpl/default.php
index 76b7d53a..58ab56df 100644
--- a/cadline/modules/modules/mod_webinar/tmpl/default.php
+++ b/cadline/modules/modules/mod_webinar/tmpl/default.php
@@ -1,425 +1,425 @@
-setClientId('427394287601-f5fvh3809726dah7lq7d4pkl4af8p7av.apps.googleusercontent.com');
- $client->setClientSecret('_qMqFv2zuk2b0z7fazwgNuBk');
- $client->setRedirectUri('https://www.archlinexp.com/maintenance/google_redirect.php');
- $client->addScope('email');
- $client->addScope('profile');
-
- $authUrl = $client->createAuthUrl();
-}
-?>
-
-
-
-
-
- ytID != '') : ?>
-
VIDEO
-
-
-
-
-
- finish_date >= date('Y-m-d')) : ?>
-
-
-
-
-
-
-
-
-
-
-
-
- comment != '') : ?>
-
-
-
-
-
-
-
-
-
-
-
- finish_date >= date('Y-m-d')) : ?>
- guest) : ?>
-
-
-
- * = JText::_('MOD_WEBINAR_REQUIRED_INFO') ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- = JText::_('MOD_WEBINAR_EVENT_OVER') ?>
-
-
-
-
-
-guest) : ?>
-
- = JModuleHelper::renderModule(JModuleHelper::getModule('login', 'Felhasználó - Bejelentkezés')) ?>
-
-
-
-
\ No newline at end of file
diff --git a/cadline/modules/modules/mod_webinar/tmpl/index.html b/cadline/modules/modules/mod_webinar/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_webinar/tmpl/index.html
+++ b/cadline/modules/modules/mod_webinar/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_webinar_list/helper.php b/cadline/modules/modules/mod_webinar_list/helper.php
index 709f5518..55cace95 100644
--- a/cadline/modules/modules/mod_webinar_list/helper.php
+++ b/cadline/modules/modules/mod_webinar_list/helper.php
@@ -1,49 +1,49 @@
-get('groups');
- $query = $db->getQuery(true);
-
- if (in_array('7', $groups)) {
- $query->select(array('c.*'));
- $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
- $query->where($db->quoteName('c.id') . ' >= ' . $db->quote(1309));
- $query->where($db->quoteName('c.alias') . ' = ' . $db->quote($alias));
- $query->order('c.start_date DESC');
- } else {
- $query->select(array('c.*'));
- $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
- $query->where($db->quoteName('c.id') . ' >= ' . $db->quote(1309));
- $query->where($db->quoteName('c.alias') . ' = ' . $db->quote($alias));
- $query->where($db->quoteName('c.published') . ' = ' . $db->quote('Y'));
- $query->order('c.start_date DESC');
- }
-
- $db->setQuery($query);
-
- return $db->loadObjectList();
- }
-
- public static function changeDateFormat($date)
- {
- $date = new DateTime($date);
-
- return $date->format('M d, Y g:i A');
- }
-}
+get('groups');
+ $query = $db->getQuery(true);
+
+ if (in_array('7', $groups)) {
+ $query->select(array('c.*'));
+ $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
+ $query->where($db->quoteName('c.id') . ' >= ' . $db->quote(1309));
+ $query->where($db->quoteName('c.alias') . ' = ' . $db->quote($alias));
+ $query->order('c.start_date DESC');
+ } else {
+ $query->select(array('c.*'));
+ $query->from($db->quoteName('www_archline_hu.alworkshops_courses', 'c'));
+ $query->where($db->quoteName('c.id') . ' >= ' . $db->quote(1309));
+ $query->where($db->quoteName('c.alias') . ' = ' . $db->quote($alias));
+ $query->where($db->quoteName('c.published') . ' = ' . $db->quote('Y'));
+ $query->order('c.start_date DESC');
+ }
+
+ $db->setQuery($query);
+
+ return $db->loadObjectList();
+ }
+
+ public static function changeDateFormat($date)
+ {
+ $date = new DateTime($date);
+
+ return $date->format('M d, Y g:i A');
+ }
+}
diff --git a/cadline/modules/modules/mod_webinar_list/index.html b/cadline/modules/modules/mod_webinar_list/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_webinar_list/index.html
+++ b/cadline/modules/modules/mod_webinar_list/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_webinar_list/mod_webinar_list.php b/cadline/modules/modules/mod_webinar_list/mod_webinar_list.php
index 21449f27..849ac1a1 100644
--- a/cadline/modules/modules/mod_webinar_list/mod_webinar_list.php
+++ b/cadline/modules/modules/mod_webinar_list/mod_webinar_list.php
@@ -1,16 +1,16 @@
-getTag();
-$webinars = ModWebinarListHelper::getWebinars($lang);
-
-$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
-
-if ($lang == 'hu-HU')
- $actual_link .= '/regisztráció?webinar_id=';
-else
- $actual_link .= '/registration?webinar_id=';
-
-require JModuleHelper::getLayoutPath('mod_webinar_list', $params->get('layout', 'default'));
+getTag();
+$webinars = ModWebinarListHelper::getWebinars($lang);
+
+$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
+
+if ($lang == 'hu-HU')
+ $actual_link .= '/regisztráció?webinar_id=';
+else
+ $actual_link .= '/registration?webinar_id=';
+
+require JModuleHelper::getLayoutPath('mod_webinar_list', $params->get('layout', 'default'));
diff --git a/cadline/modules/modules/mod_webinar_list/mod_webinar_list.xml b/cadline/modules/modules/mod_webinar_list/mod_webinar_list.xml
index a921930c..df183ed1 100644
--- a/cadline/modules/modules/mod_webinar_list/mod_webinar_list.xml
+++ b/cadline/modules/modules/mod_webinar_list/mod_webinar_list.xml
@@ -1,42 +1,42 @@
-
-
- MOD_WEBINAR_LIST
- October 2021
- Nagy Máté
- mate.nagy@cadline.hu
- Copyright © 2021 - All rights reserved.
- 0.0.1
- Create a list for the upcoming webinars
-
- mod_webinar_list.php
- mod_webinar_list.xml
- index.html
- helper.php
- language
- tmpl
-
-
-
-
-
-
-
- JGLOBAL_USE_GLOBAL
- COM_MODULES_FIELD_VALUE_NOCACHING
-
-
-
-
-
-
-
-
-
-
-
- en-GB/en-GB.mod_webinar_list.sys.ini
- en-GB/en-GB.mod_webinar_list.ini
- hu-HU/hu-HU.mod_webinar_list.sys.ini
- hu-HU/hu-HU.mod_webinar_list.ini
-
-
+
+
+ MOD_WEBINAR_LIST
+ October 2021
+ Nagy Máté
+ mate.nagy@cadline.hu
+ Copyright © 2021 - All rights reserved.
+ 0.0.1
+ Create a list for the upcoming webinars
+
+ mod_webinar_list.php
+ mod_webinar_list.xml
+ index.html
+ helper.php
+ language
+ tmpl
+
+
+
+
+
+
+
+ JGLOBAL_USE_GLOBAL
+ COM_MODULES_FIELD_VALUE_NOCACHING
+
+
+
+
+
+
+
+
+
+
+
+ en-GB/en-GB.mod_webinar_list.sys.ini
+ en-GB/en-GB.mod_webinar_list.ini
+ hu-HU/hu-HU.mod_webinar_list.sys.ini
+ hu-HU/hu-HU.mod_webinar_list.ini
+
+
diff --git a/cadline/modules/modules/mod_webinar_list/tmpl/index.html b/cadline/modules/modules/mod_webinar_list/tmpl/index.html
index f28d9de6..a3d28273 100644
--- a/cadline/modules/modules/mod_webinar_list/tmpl/index.html
+++ b/cadline/modules/modules/mod_webinar_list/tmpl/index.html
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-Joomla Module Generator
-
-
+
+
+
+
+
+
+
+Joomla Module Generator
+
+
diff --git a/cadline/modules/modules/mod_wsregister/mod_wsregister.xml b/cadline/modules/modules/mod_wsregister/mod_wsregister.xml
index 15330ee2..48fd9d0d 100644
--- a/cadline/modules/modules/mod_wsregister/mod_wsregister.xml
+++ b/cadline/modules/modules/mod_wsregister/mod_wsregister.xml
@@ -1,78 +1,78 @@
-
-
- WS Register
- WS-Theme.com
- 10/2012
- Copyright (C) 2012. All rights reserved.
- GNU General Public License version 2 or later; see LICENSE.txt
- info@ws-theme.com
- www.ws-theme.com
- 1.1
- WS Register is a simple and flexible Joomla Register Module with some nice options. It's build on the native Joomla Registering and has very lightweight code
-
-
- mod_wsregister.php
- mod_wsregister.xml
- index.html
- admin
- tmpl
-
-
-
+
+
+ WS Register
+ WS-Theme.com
+ 10/2012
+ Copyright (C) 2012. All rights reserved.
+ GNU General Public License version 2 or later; see LICENSE.txt
+ info@ws-theme.com
+ www.ws-theme.com
+ 1.1
+ WS Register is a simple and flexible Joomla Register Module with some nice options. It's build on the native Joomla Registering and has very lightweight code
+
+
+ mod_wsregister.php
+ mod_wsregister.xml
+ index.html
+ admin
+ tmpl
+
+
+
diff --git a/cadline/modules/modules/mod_wsregister/tmpl/default.php b/cadline/modules/modules/mod_wsregister/tmpl/default.php
index 188060bb..fe838eec 100644
--- a/cadline/modules/modules/mod_wsregister/tmpl/default.php
+++ b/cadline/modules/modules/mod_wsregister/tmpl/default.php
@@ -1,263 +1,263 @@
-getQuery(true);
-$query->select('a.*')->from('cl_hlusers.countries AS a')->where('a.ctrID != 37 ORDER BY a.ctrNameEng');
-$db->setQuery( $query );
-$result=$db->loadObjectList();
-?>
-
-
-
-
-
-
-
-
-id == 0):
-?>
-
-
-
-
-
-
-
-
-
-
=JText::_('COM_USERS_LOGIN_LABEL')?>
- =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
-
-
-
-
-
-
-
-
-
-
-
Sign in with a social network
-
-
-
-
- OR
- Create account
-
-
-
-
-
- =JText::_('COM_USERS_PROFILE_FIRSTNAME_LABEL')?>
-
-
-
-
-
-
-
-
-
- =JText::_('COM_USERS_PROFILE_LASTNAME_LABEL')?>
-
-
-
-
-
-
-
-
-
-
-
- =JText::_('COM_USERS_PROFILE_PASSWORD_LABEL')?>
-
-
-
-
-
-
-
-
-
- =JText::_('COM_USERS_PROFILE_CONFIRMPASSWORD_LABEL')?>
-
-
-
-
-
-
-
-
-
=JText::_('COM_USERS_PROFILE_COUNTRY_LABEL')?>
-
-
- =JText::_('COM_USERS_PROFILE_PROFESSION_DESC')?>
- ctrID.'">'.$country->ctrNameEng.'';
- }
- ?>
-
-
-
-
-
-
-
-
-
- =JText::_('COM_USERS_PROFILE_PRIVACYPOLICY_LABEL')?>
-
-
-
-
-
-
-
-
- Create your account
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+id == 0):
+?>
+
+
+
+
+
+
+
+
+
+
=JText::_('COM_USERS_LOGIN_LABEL')?>
+ =JModuleHelper::renderModule(JModuleHelper::getModule('login','Felhasználó - Bejelentkezés'))?>
+
+
+
+
+
+
+
+
+
+
+
Sign in with a social network
+
+
+
+
+ OR
+ Create account
+
+
+
+
+
+ =JText::_('COM_USERS_PROFILE_FIRSTNAME_LABEL')?>
+
+
+
+
+
+
+
+
+
+ =JText::_('COM_USERS_PROFILE_LASTNAME_LABEL')?>
+
+
+
+
+
+
+
+
+
+
+
+ =JText::_('COM_USERS_PROFILE_PASSWORD_LABEL')?>
+
+
+
+
+
+
+
+
+
+ =JText::_('COM_USERS_PROFILE_CONFIRMPASSWORD_LABEL')?>
+
+
+
+
+
+
+
+
+
=JText::_('COM_USERS_PROFILE_COUNTRY_LABEL')?>
+
+
+ =JText::_('COM_USERS_PROFILE_PROFESSION_DESC')?>
+ ctrID.'">'.$country->ctrNameEng.'';
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+ =JText::_('COM_USERS_PROFILE_PRIVACYPOLICY_LABEL')?>
+
+
+
+
+
+
+
+
+ Create your account
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cadline/tmpl-plg/plugins/content/workshopdates/helper.php b/cadline/tmpl-plg/plugins/content/workshopdates/helper.php
index 7baadbe4..4f432d07 100644
--- a/cadline/tmpl-plg/plugins/content/workshopdates/helper.php
+++ b/cadline/tmpl-plg/plugins/content/workshopdates/helper.php
@@ -1,19 +1,19 @@
-setQuery("SELECT * FROM alworkshops_courses WHERE `start_date`>=CURRENT_DATE AND `alias`='".$alias."' AND `published`='Y' ORDER BY `start_date` ASC LIMIT 1;");
- $result=$db->loadObjectList();
- return(count($result) ? $result[0] : FALSE);
- }
-} // end of class
+setQuery("SELECT * FROM alworkshops_courses WHERE `start_date`>=CURRENT_DATE AND `alias`='".$alias."' AND `published`='Y' ORDER BY `start_date` ASC LIMIT 1;");
+ $result=$db->loadObjectList();
+ return(count($result) ? $result[0] : FALSE);
+ }
+} // end of class
?>
\ No newline at end of file
diff --git a/cadline/tmpl-plg/plugins/content/workshopdates/index.html b/cadline/tmpl-plg/plugins/content/workshopdates/index.html
index 640bda4a..2efb97f3 100644
--- a/cadline/tmpl-plg/plugins/content/workshopdates/index.html
+++ b/cadline/tmpl-plg/plugins/content/workshopdates/index.html
@@ -1 +1 @@
-
+
diff --git a/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.php b/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.php
index 047de4f8..1f95a144 100644
--- a/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.php
+++ b/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.php
@@ -1,44 +1,44 @@
-renderWorkshopdates($context, $row, $params, $page = 0);
- }
-
- function renderWorkshopdates($context, &$row, &$params, $page = 0)
- {
- if (JPluginHelper::isEnabled('content', $this->plg_tag)==false) return;
- if (JString::strpos($row->text, $this->plg_tag)===false) return;
-
- preg_match_all("#{".$this->plg_tag."}(.*?){/".$this->plg_tag."}#is", $row->text, $matches); // Find all instances of the plugin and put them in $matches
-
- if (!count($matches[1])) return; // Plugin only processes if there are any instances of the plugin in the text
-
- foreach ($matches[1] as $key=>$alias)
- {
- $nextWS=WorkshopdatesHelper::getNextWorkshop($alias);
- $row->text = preg_replace("#{".$this->plg_tag."}".$alias."{/".$this->plg_tag."}#s", ' '.($nextWS ? $nextWS->start_date : JText::_('COM_CONTENT_WORKSHOPDATES_NODATE')), $row->text);
- }
- }
+renderWorkshopdates($context, $row, $params, $page = 0);
+ }
+
+ function renderWorkshopdates($context, &$row, &$params, $page = 0)
+ {
+ if (JPluginHelper::isEnabled('content', $this->plg_tag)==false) return;
+ if (JString::strpos($row->text, $this->plg_tag)===false) return;
+
+ preg_match_all("#{".$this->plg_tag."}(.*?){/".$this->plg_tag."}#is", $row->text, $matches); // Find all instances of the plugin and put them in $matches
+
+ if (!count($matches[1])) return; // Plugin only processes if there are any instances of the plugin in the text
+
+ foreach ($matches[1] as $key=>$alias)
+ {
+ $nextWS=WorkshopdatesHelper::getNextWorkshop($alias);
+ $row->text = preg_replace("#{".$this->plg_tag."}".$alias."{/".$this->plg_tag."}#s", ' '.($nextWS ? $nextWS->start_date : JText::_('COM_CONTENT_WORKSHOPDATES_NODATE')), $row->text);
+ }
+ }
}
\ No newline at end of file
diff --git a/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.xml b/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.xml
index 52767213..4c722584 100644
--- a/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.xml
+++ b/cadline/tmpl-plg/plugins/content/workshopdates/workshopdates.xml
@@ -1,41 +1,41 @@
-
-
-
- plg_content_workshopdates
- Zsolt Fekete
- May 2017
- Copyright (c) 2017 ARCHLine. All rights reserved.
- http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
- mcleod78@gmail.com
- https://www.facebook.com/mcleod78
- 1.0.0
-
- A legközelebbi workshop időpontját írja ki
- ]]>
-
-
-
- workshopdates.php
- helper.php
- index.html
-
-
-
- en-GB.plg_content_workshopdates.ini
- en-GB.plg_content_workshopdates.sys.ini
-
-
-
-
-
-
-
-
-
+
+
+
+ plg_content_workshopdates
+ Zsolt Fekete
+ May 2017
+ Copyright (c) 2017 ARCHLine. All rights reserved.
+ http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
+ mcleod78@gmail.com
+ https://www.facebook.com/mcleod78
+ 1.0.0
+
+ A legközelebbi workshop időpontját írja ki
+ ]]>
+
+
+
+ workshopdates.php
+ helper.php
+ index.html
+
+
+
+ en-GB.plg_content_workshopdates.ini
+ en-GB.plg_content_workshopdates.sys.ini
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cadline/tmpl-plg/templates/blankframe/css/template.css b/cadline/tmpl-plg/templates/blankframe/css/template.css
index 183ae0ae..5dc8886a 100644
--- a/cadline/tmpl-plg/templates/blankframe/css/template.css
+++ b/cadline/tmpl-plg/templates/blankframe/css/template.css
@@ -1,605 +1,605 @@
-body{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-h1{font-family:Raleway, sans-serif; font-size:36px; font-weight:500; }
-h2{font-family:Raleway, sans-serif; font-size:30px; font-weight:500; }
-h3{font-family:Raleway, sans-serif; font-size:26px; font-weight:500; }
-h4{font-family:Raleway, sans-serif; font-size:22px; font-weight:500; }
-h5{font-family:Raleway, sans-serif; font-size:18px; font-weight:500; }
-h6{font-family:Raleway, sans-serif; font-size:16px; font-weight:500; }
-p{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-span{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-ul{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-li{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-ol{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-div{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-td{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
-
-img {max-width:100%}
-
-.manufactureContainer
-{
- width:95%;
- height:auto;
- padding:8px 5px 5px 5px;
- border:0px solid #ff0000;
- user-select: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.manufacureBox
-{
- position: relative;
- float: none;
- display: inline-block;
- height: 120px;
- width: 170px;
- padding: 10px;
- margin: 5px 5px;
- user-select: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.manufacureBox .image { position:relative; text-align:center; border:0px solid #000000; }
-.manufacureBox .image img { max-height:120px; vertical-align: top; z-index:9; }
-.manufacureBox .description { position:absolute; top:110px; left:-5px; width:156px; height:26px; z-index:5; background:url(/components/com_showroom/assets/images/sticker_down_active.png); text-align:left; }
-.manufacureBox .description_description { text-align:left; padding-left: 5px; line-height: 26px; white-space: nowrap; }
-
-#structContainer { display:inline-block; line-height:32px; margin-left: 9px;}
-#structSearchButton { display:inline-block;vertical-align:top;width:32px;height:32px;cursor:pointer;background:url(/components/com_showroom/assets/images/searchbutton.png);margin-left:10px;}
-#structSearchContainer { display:inline-block;vertical-align:top;width:190px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc; }
-#structTypeContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px; }
-#structBrandContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
-#structCategoryContainer { display:inline-block;vertical-align:top;width:123px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
-#structSubcategoryContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
-
-#typeContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:188px; background:#fff;z-index:10;border:1px solid #ccc;}
-#brandContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:564px; background:#fff;z-index:10;border:1px solid #ccc;}
-#categoryContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:376px; background:#fff;z-index:10;border:1px solid #ccc;}
-#subcategoryContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:376px; background:#fff;z-index:10;border:1px solid #ccc;}
-#downloadPanelContainer { display: block; position: absolute; margin:-1px 0px 0px 0px;padding:10px 10px 10px 10px;float:left;width:230px; background:#fff;z-index:10;border:1px solid #ccc;}
-
-.smallDownloadPanelContainer { display: block; position: absolute; bottom:0px;right:-14px;margin:-1px 0px 0px 0px;padding:2px 5px 2px 5px;float:left;width:185px; background:#fff;z-index:10;border:1px solid #ccc;}
-.smallDownloadPanelContainer2 { display: block; position: absolute; bottom:26px;right:-3px;margin:-1px 0px 0px 0px;padding:2px 5px 2px 5px;float:left;width:185px; background:#fff;z-index:10;border:1px solid #ccc;}
-
-#typeContainer label,
-#brandContainer label,
-#categoryContainer label,
-#subcategoryContainer label,
-#typeTitle label,
-#brandTitle label,
-#categoryTitle label,
-#subcategoryTitle label { font-size:13px;}
-
-#structContainer .back { float:left; display:inline-block; margin:0px; width:43px; height:32px; line-height:32px; vertical-align:top; text-align:center; }
-#structContainer .back img { vertical-align:top; }
-
-#structSearchContainer input
-{
- vertical-align:top;
- margin-right:0px 30px 0px 0px;
- width:100%;
- height:32px;
- line-height:32px;
- border:0px solid #ffffff;
- font-size:13px;
- font-family:'Ubuntu', sans-serif;
- background-color: #F0F0F0;
-}
-
-.column{display:inline-block;float:left;width:180px;padding-left:8px;}
-.expanded {background: url(/components/com_showroom/assets/images/triangle-down.png) no-repeat 95% center;}
-.collapsed {background: url(/components/com_showroom/assets/images/triangle-right.png) no-repeat 95% center;}
-
-.showroom_search_pager {
- height:28px;
- line-height:28px;
- margin:10px 0px 5px 51px;
- border:0px solid #000000;
- vertical-align:top;
-}
-
-.showroom_search_result {
- float:left;
- width:840px;
- margin:0px 0px 0px 45px;
- border:0px solid #000000;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.showroom_search_result .contentBox {
- position:relative;
- width:170px;
- height:115px;
- padding: 10px 10px 10px 10px;
- margin: 8px 8px 8px 8px;
-}
-
-.showroom_search_result .image img { max-height:120px; vertical-align: top; z-index:9; max-width:100% }
-.showroom_search_result .dd_pos1 { top:97px; left:154px; }
-.showroom_search_result .dd_pos2 { top:107px; left:164px; }
-.showroom_search_result .description_download {
- position:absolute;
- width:26px;
- height:26px;
- z-index:5;
- line-height: 26px;
-}
-
-.showroom_checkbox_multi {
- display: inline-block;
- height: 32px;
- line-height: 32px;
- margin:0px 0px 0px 5px;
- vertical-align:top;
-}
-
-.showroom_checkbox_multi label {font-size:11px;}
-
-.showroom_container {
- height:156px;
- padding:8px 5px 5px 5px;
- position:relative;
- border:0px solid #ff0000;
-}
-
-.showroom_separator {
-/* background-image: url("/templates/system/images/diver_03.png"); */
- background-image: url("/components/com_showroom/assets/images/diver_03.png");
- background-repeat: repeat-x;
- clear: both;
- height: 1px;
- margin: 0px 0px 10px 0px;
-}
-
-.showroom_title {
- position:absolute;
- top:0px;
- left:21px;
- width:170px;
- height:41px;
- border:0px solid #00ff00;
- z-index:5;
- background:url(/components/com_showroom/assets/images/sticker_up.png);
- color:#ffffff;
- text-transform:uppercase;
- font-weight: bold;
- overflow:hidden;
-}
-
-.showroom_title_level1 { background:url(/components/com_showroom/assets/images/sticker_up_1.png); }
-.showroom_title_level2 { background:url(/components/com_showroom/assets/images/sticker_up_2.png); }
-.showroom_title_level3 { background:url(/components/com_showroom/assets/images/sticker_up_3.png); }
-
-.showroom_title_description {
- line-height:33px;
- font-size:12px;
-}
-
-.contentBox .image {
- position:relative;
- text-align:center;
- border:0px solid #000000;
-}
-
-.contentBox .description {
- position:absolute;
- top:106px;
- left:0px;
- width:156px;
- height:26px;
- z-index:5;
- background:url(/components/com_showroom/assets/images/sticker_down.png);
- text-align:left;
-}
-
-.contentBox .description_active {
- position:absolute;
- top:113px;
- left:0px;
- width:156px;
- height:26px;
- z-index:5;
- background:url(/components/com_showroom/assets/images/sticker_down_active.png);
- text-align:left;
-}
-
-.contentBox .description_description {
- text-align:left;
- padding-left: 5px;
- line-height: 26px;
- white-space: nowrap;
-}
-
-.contentBox .description_download {
- position:absolute;
- width:26px;
- height:26px;
- z-index:5;
- line-height: 26px;
-}
-
-.contentBox .dd_pos1 { top:97px; left:154px; }
-.contentBox .dd_pos2 { top:107px; left:164px; }
-
-
-.paddingBottom10 {
- float:left;
- padding-bottom:10px;
- border: 0px solid #0000ff;
-}
-
-.product_scroller {
- width:100%;
- float:left;
- padding-top:20px;
- border: 0px solid #0000ff;
-}
-
-.contentBox a {
- color:#000000;
-}
-.contentBox a:hover {
- color:#ea620f;
-}
-
-
-.family_menu {
- float:left;
- width:17%;
- border:0px solid #000000;
-}
-
-.search_container {
- width:100%;
-}
-
-.family_container {
- float:left;
- width:83%;
- border:0px solid #000000;
- margin: 0px auto 0px auto;
-
- position: relative;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.family_menu ul {
- margin: 0px 0px 0px 10px;
- padding: 0px 0px 0px 0px;
-}
-
-.family_menu ul li {
- list-style-type: none;
-}
-
-.family_menu ul li a {
- color:#757575;
-}
-
-.family_menu ul li a:hover {
- color:#ea620f;
-}
-
-.family_menu .active {
- font-weight: bold;
- color: #ea620f;
-}
-
-.product_container {
- float:left;
- width:83%;
- border:0px solid #000000;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.product_container p {
- margin: 0px;
- padding: 0px;
-}
-
-.product_container .product_image_narrow {
- max-width:380px;
- vertical-align: top;
- display:inline;
- float:left;
-}
-
-
-.product_container .product_image_full {
- max-width:420px;
- vertical-align: top;
- display:inline;
- float:left;
-}
-
-.product_container .product_description {
- max-width:420px;
- display: inline;
- float:left;
- padding-left: 10px;
- border:0px solid #00ff00;
-}
-
-.product_container .product_description h5 {
- margin:0px;
- padding:0px;
-}
-
-.product_container .product_description h6 {
- margin:0px;
- padding:0px;
-}
-
-.product_container .full {
- width:420px;
-}
-.product_container .narrow {
- width:420px;
-}
-
-
-.product_container .product_download {
- background: no-repeat url(/components/com_showroom/assets/images/icon-download-48.png);
- width: 200px;
- margin-top: 0px;
- border: 1px solid #ccc;
- line-height: 48px;
- padding-left: 50px;
- font-size: 20px;
- text-transform: uppercase;
- cursor:pointer;
-}
-
-.product_container a {
- color:#676767;
-}
-
-.product_container a:hover {
- text-decoration: none;
-}
-
-.showroom_search {
- width:100%;
- height:32px;
- top:-20px;
- border:0px solid #000000;
- margin-bottom:5px;
-}
-
-.showroom_search form {
- float:left;
- display:inline-block;
- margin: 0px 0px 0px 0px;
- padding-top:0px;
- height: 32px;
- line-height: 32px;
- vertical-align: middle;
-}
-
-.showroom_search form input { margin: 0px; }
-
-.showroom_search input[type="checkbox"] { display:none; }
-.showroom_search input[type="checkbox"] + label span {
- display:inline-block;
- width:16px;
- height:16px;
- vertical-align:middle;
- cursor:pointer;
- background:url("/components/com_showroom/assets/images/checkbox.png") bottom left no-repeat;
-}
-.showroom_search input[type="checkbox"]:checked + label span {
- display:inline-block;
- width:16px;
- height:16px;
- vertical-align:middle;
- cursor:pointer;
- background:url("/components/com_showroom/assets/images/checkbox.png") top left no-repeat;
-}
-
-.showroom_search label { display:inline-block; margin:0px; }
-
-.showroom_multi {
- float:right;
- border:0px solid #000000;
- margin:10px 20px 0px 0px;
-}
-
-.showroom_clear {
- clear:both;
- margin:0px;
- padding:0px;
- height:0px;
- width:0px;
-}
-
-.showroom_back {
- display:inline;
- float:left;
- margin:0px;
- padding:0px;
- width:52px;
- height:26px;
- margin: 5px 0px 0px 10px;
- border:0px solid #000000;
-}
-
-.showroom_pager {
- height:28px;
- text-align:center;
- border:0px solid #000000;
- overflow:hidden;
-}
-
-.showroom_search_pager span,
-.showroom_pager span {
- margin: 0px 2px;
- line-height:26px;
- display:inline-block;
- width:26px;
- height:26px;
- text-align:center;
- vertical-align:middle;
-}
-
-.showroom_search_pager span img,
-.showroom_pager span img {
- vertical-align:top;
-}
-
-.showroom_search_pager a,
-.showroom_pager a {
- color:#676767;
-}
-
-.showroom_search_pager a:hover,
-.showroom_pager a:hover {
- color:#ea620f;
- text-decoration: none;
-}
-
-.showroom_search_pager .active,
-.showroom_pager .active {
- border:1px solid #ea620f;
- color:#ea620f;
- font-weight:bold;
-}
-
-.thinborder,
-.showroom_search_pager .inactive,
-.showroom_pager .inactive {
- border:1px solid #ccc;
-}
-
-.makeMeScrollable
-{
- width:100%;
- height: 162px;
- position: relative;
- border: solid 0px #000;
-
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
-}
-
-.makeMeScrollable .contentBox { position: relative; float: left; display: block; height: 115px; width: 170px; padding: 10px; margin: 0px 5px; user-select: none; }
-.makeMeScrollable .inactive { border: solid 1px #ccc; }
-.makeMeScrollable .active { border-top: solid 8px #ea620f; border-right: solid 10px #ea620f; border-bottom: solid 8px #ea620f; border-left: solid 10px #ea620f; background-color: #fff; }
-
-.family_container .contentBox { position: relative; float: left; display: block; height: 115px; width: 170px; padding: 10px; margin: 0px 2px; user-select: none; }
-.family_container .inactive { border: solid 1px #ccc; margin:8px; }
-.family_container .active { border: solid 8px #ea620f;margin:1px;background-color: #fff; }
-
-.makeMeScrollable .scrollableArea img,
-.family_container img
-{
- position: relative;
- float: center;
- margin: 0;
- padding: 0;
- max-height: 120px;
- user-select: none;
-}
-
-.makeMeScrollable .scrollableArea .grayscalefilter,
-.family_container .grayscalefilter
-{
- filter: grayscale(100%);
- -webkit-filter: grayscale(100%);
- -moz-filter: grayscale(100%);
-}
-
-/* Invisible left hotspot */
-.makeMeScrollable .scrollingHotSpotLeft
-{
- /* The hotspots have a minimum width of 100 pixels and if there is room the will grow
- and occupy 15% of the scrollable area (30% combined). Adjust it to your own taste. */
- min-width: 75px;
- width: 10%;
- height: 100%;
- /* There is a big background image and it's used to solve some problems I experienced
- in Internet Explorer 6. */
- background-image: url(/components/com_showroom/assets/images/big_transparent.gif);
- background-repeat: repeat;
- background-position: center center;
- position: absolute;
- z-index: 200;
- left: 0;
- /* The first url is for Firefox and other browsers, the second is for Internet Explorer */
- cursor: url(/components/com_showroom/assets/images/cursors/cursor_arrow_left.png), url(/components/com_showroom/assets/images/cursors/cursor_arrow_left.cur),w-resize;
-}
-
-/* Visible left hotspot */
-.makeMeScrollable .scrollingHotSpotLeftVisible
-{
- background-image: url(/components/com_showroom/assets/images/arrow_left.gif);
- background-color: #fff;
- background-repeat: no-repeat;
- opacity: 0.35; /* Standard CSS3 opacity setting */
- -moz-opacity: 0.35; /* Opacity for really old versions of Mozilla Firefox (0.9 or older) */
- filter: alpha(opacity = 35); /* Opacity for Internet Explorer. */
- zoom: 1; /* Trigger "hasLayout" in Internet Explorer 6 or older versions */
-}
-
-/* Invisible right hotspot */
-.makeMeScrollable .scrollingHotSpotRight
-{
- min-width: 75px;
- width: 10%;
- height: 100%;
- background-image: url(/components/com_showroom/assets/images/big_transparent.gif);
- background-repeat: repeat;
- background-position: center center;
- position: absolute;
- z-index: 200;
- right: 0;
- cursor: url(/components/com_showroom/assets/images/cursors/cursor_arrow_right.png), url(/components/com_showroom/assets/images/cursors/cursor_arrow_right.cur),e-resize;
-}
-
-/* Visible right hotspot */
-.makeMeScrollable .scrollingHotSpotRightVisible
-{
- background-image: url(/components/com_showroom/assets/images/arrow_right.gif);
- background-color: #fff;
- background-repeat: no-repeat;
- opacity: 0.35;
- filter: alpha(opacity = 35);
- -moz-opacity: 0.35;
- zoom: 1;
-}
-
-/* The scroll wrapper is always the same width and height as the containing element (div).
- Overflow is hidden because you don't want to show all of the scrollable area.
-*/
-.makeMeScrollable .scrollWrapper
-{
- position: relative;
- overflow: hidden;
- width: 100%;
- height: 100%;
-}
-
-.makeMeScrollable .scrollableArea
-{
- position: relative;
- width: auto;
- height: 100%;
+body{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+h1{font-family:Raleway, sans-serif; font-size:36px; font-weight:500; }
+h2{font-family:Raleway, sans-serif; font-size:30px; font-weight:500; }
+h3{font-family:Raleway, sans-serif; font-size:26px; font-weight:500; }
+h4{font-family:Raleway, sans-serif; font-size:22px; font-weight:500; }
+h5{font-family:Raleway, sans-serif; font-size:18px; font-weight:500; }
+h6{font-family:Raleway, sans-serif; font-size:16px; font-weight:500; }
+p{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+span{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+ul{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+li{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+ol{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+div{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+td{font-family:Raleway, sans-serif; font-size:14px; font-weight:500; }
+
+img {max-width:100%}
+
+.manufactureContainer
+{
+ width:95%;
+ height:auto;
+ padding:8px 5px 5px 5px;
+ border:0px solid #ff0000;
+ user-select: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.manufacureBox
+{
+ position: relative;
+ float: none;
+ display: inline-block;
+ height: 120px;
+ width: 170px;
+ padding: 10px;
+ margin: 5px 5px;
+ user-select: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.manufacureBox .image { position:relative; text-align:center; border:0px solid #000000; }
+.manufacureBox .image img { max-height:120px; vertical-align: top; z-index:9; }
+.manufacureBox .description { position:absolute; top:110px; left:-5px; width:156px; height:26px; z-index:5; background:url(/components/com_showroom/assets/images/sticker_down_active.png); text-align:left; }
+.manufacureBox .description_description { text-align:left; padding-left: 5px; line-height: 26px; white-space: nowrap; }
+
+#structContainer { display:inline-block; line-height:32px; margin-left: 9px;}
+#structSearchButton { display:inline-block;vertical-align:top;width:32px;height:32px;cursor:pointer;background:url(/components/com_showroom/assets/images/searchbutton.png);margin-left:10px;}
+#structSearchContainer { display:inline-block;vertical-align:top;width:190px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc; }
+#structTypeContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px; }
+#structBrandContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
+#structCategoryContainer { display:inline-block;vertical-align:top;width:123px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
+#structSubcategoryContainer { display:inline-block;vertical-align:top;width:121px;height:32px;cursor:pointer;border-left:1px solid #ccc;border-right:1px solid #ccc;margin-left:10px;}
+
+#typeContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:188px; background:#fff;z-index:10;border:1px solid #ccc;}
+#brandContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:564px; background:#fff;z-index:10;border:1px solid #ccc;}
+#categoryContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:376px; background:#fff;z-index:10;border:1px solid #ccc;}
+#subcategoryContainer { display: block; position: relative; margin:0px 0px 0px -1px;float: left; width:376px; background:#fff;z-index:10;border:1px solid #ccc;}
+#downloadPanelContainer { display: block; position: absolute; margin:-1px 0px 0px 0px;padding:10px 10px 10px 10px;float:left;width:230px; background:#fff;z-index:10;border:1px solid #ccc;}
+
+.smallDownloadPanelContainer { display: block; position: absolute; bottom:0px;right:-14px;margin:-1px 0px 0px 0px;padding:2px 5px 2px 5px;float:left;width:185px; background:#fff;z-index:10;border:1px solid #ccc;}
+.smallDownloadPanelContainer2 { display: block; position: absolute; bottom:26px;right:-3px;margin:-1px 0px 0px 0px;padding:2px 5px 2px 5px;float:left;width:185px; background:#fff;z-index:10;border:1px solid #ccc;}
+
+#typeContainer label,
+#brandContainer label,
+#categoryContainer label,
+#subcategoryContainer label,
+#typeTitle label,
+#brandTitle label,
+#categoryTitle label,
+#subcategoryTitle label { font-size:13px;}
+
+#structContainer .back { float:left; display:inline-block; margin:0px; width:43px; height:32px; line-height:32px; vertical-align:top; text-align:center; }
+#structContainer .back img { vertical-align:top; }
+
+#structSearchContainer input
+{
+ vertical-align:top;
+ margin-right:0px 30px 0px 0px;
+ width:100%;
+ height:32px;
+ line-height:32px;
+ border:0px solid #ffffff;
+ font-size:13px;
+ font-family:'Ubuntu', sans-serif;
+ background-color: #F0F0F0;
+}
+
+.column{display:inline-block;float:left;width:180px;padding-left:8px;}
+.expanded {background: url(/components/com_showroom/assets/images/triangle-down.png) no-repeat 95% center;}
+.collapsed {background: url(/components/com_showroom/assets/images/triangle-right.png) no-repeat 95% center;}
+
+.showroom_search_pager {
+ height:28px;
+ line-height:28px;
+ margin:10px 0px 5px 51px;
+ border:0px solid #000000;
+ vertical-align:top;
+}
+
+.showroom_search_result {
+ float:left;
+ width:840px;
+ margin:0px 0px 0px 45px;
+ border:0px solid #000000;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.showroom_search_result .contentBox {
+ position:relative;
+ width:170px;
+ height:115px;
+ padding: 10px 10px 10px 10px;
+ margin: 8px 8px 8px 8px;
+}
+
+.showroom_search_result .image img { max-height:120px; vertical-align: top; z-index:9; max-width:100% }
+.showroom_search_result .dd_pos1 { top:97px; left:154px; }
+.showroom_search_result .dd_pos2 { top:107px; left:164px; }
+.showroom_search_result .description_download {
+ position:absolute;
+ width:26px;
+ height:26px;
+ z-index:5;
+ line-height: 26px;
+}
+
+.showroom_checkbox_multi {
+ display: inline-block;
+ height: 32px;
+ line-height: 32px;
+ margin:0px 0px 0px 5px;
+ vertical-align:top;
+}
+
+.showroom_checkbox_multi label {font-size:11px;}
+
+.showroom_container {
+ height:156px;
+ padding:8px 5px 5px 5px;
+ position:relative;
+ border:0px solid #ff0000;
+}
+
+.showroom_separator {
+/* background-image: url("/templates/system/images/diver_03.png"); */
+ background-image: url("/components/com_showroom/assets/images/diver_03.png");
+ background-repeat: repeat-x;
+ clear: both;
+ height: 1px;
+ margin: 0px 0px 10px 0px;
+}
+
+.showroom_title {
+ position:absolute;
+ top:0px;
+ left:21px;
+ width:170px;
+ height:41px;
+ border:0px solid #00ff00;
+ z-index:5;
+ background:url(/components/com_showroom/assets/images/sticker_up.png);
+ color:#ffffff;
+ text-transform:uppercase;
+ font-weight: bold;
+ overflow:hidden;
+}
+
+.showroom_title_level1 { background:url(/components/com_showroom/assets/images/sticker_up_1.png); }
+.showroom_title_level2 { background:url(/components/com_showroom/assets/images/sticker_up_2.png); }
+.showroom_title_level3 { background:url(/components/com_showroom/assets/images/sticker_up_3.png); }
+
+.showroom_title_description {
+ line-height:33px;
+ font-size:12px;
+}
+
+.contentBox .image {
+ position:relative;
+ text-align:center;
+ border:0px solid #000000;
+}
+
+.contentBox .description {
+ position:absolute;
+ top:106px;
+ left:0px;
+ width:156px;
+ height:26px;
+ z-index:5;
+ background:url(/components/com_showroom/assets/images/sticker_down.png);
+ text-align:left;
+}
+
+.contentBox .description_active {
+ position:absolute;
+ top:113px;
+ left:0px;
+ width:156px;
+ height:26px;
+ z-index:5;
+ background:url(/components/com_showroom/assets/images/sticker_down_active.png);
+ text-align:left;
+}
+
+.contentBox .description_description {
+ text-align:left;
+ padding-left: 5px;
+ line-height: 26px;
+ white-space: nowrap;
+}
+
+.contentBox .description_download {
+ position:absolute;
+ width:26px;
+ height:26px;
+ z-index:5;
+ line-height: 26px;
+}
+
+.contentBox .dd_pos1 { top:97px; left:154px; }
+.contentBox .dd_pos2 { top:107px; left:164px; }
+
+
+.paddingBottom10 {
+ float:left;
+ padding-bottom:10px;
+ border: 0px solid #0000ff;
+}
+
+.product_scroller {
+ width:100%;
+ float:left;
+ padding-top:20px;
+ border: 0px solid #0000ff;
+}
+
+.contentBox a {
+ color:#000000;
+}
+.contentBox a:hover {
+ color:#ea620f;
+}
+
+
+.family_menu {
+ float:left;
+ width:17%;
+ border:0px solid #000000;
+}
+
+.search_container {
+ width:100%;
+}
+
+.family_container {
+ float:left;
+ width:83%;
+ border:0px solid #000000;
+ margin: 0px auto 0px auto;
+
+ position: relative;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.family_menu ul {
+ margin: 0px 0px 0px 10px;
+ padding: 0px 0px 0px 0px;
+}
+
+.family_menu ul li {
+ list-style-type: none;
+}
+
+.family_menu ul li a {
+ color:#757575;
+}
+
+.family_menu ul li a:hover {
+ color:#ea620f;
+}
+
+.family_menu .active {
+ font-weight: bold;
+ color: #ea620f;
+}
+
+.product_container {
+ float:left;
+ width:83%;
+ border:0px solid #000000;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.product_container p {
+ margin: 0px;
+ padding: 0px;
+}
+
+.product_container .product_image_narrow {
+ max-width:380px;
+ vertical-align: top;
+ display:inline;
+ float:left;
+}
+
+
+.product_container .product_image_full {
+ max-width:420px;
+ vertical-align: top;
+ display:inline;
+ float:left;
+}
+
+.product_container .product_description {
+ max-width:420px;
+ display: inline;
+ float:left;
+ padding-left: 10px;
+ border:0px solid #00ff00;
+}
+
+.product_container .product_description h5 {
+ margin:0px;
+ padding:0px;
+}
+
+.product_container .product_description h6 {
+ margin:0px;
+ padding:0px;
+}
+
+.product_container .full {
+ width:420px;
+}
+.product_container .narrow {
+ width:420px;
+}
+
+
+.product_container .product_download {
+ background: no-repeat url(/components/com_showroom/assets/images/icon-download-48.png);
+ width: 200px;
+ margin-top: 0px;
+ border: 1px solid #ccc;
+ line-height: 48px;
+ padding-left: 50px;
+ font-size: 20px;
+ text-transform: uppercase;
+ cursor:pointer;
+}
+
+.product_container a {
+ color:#676767;
+}
+
+.product_container a:hover {
+ text-decoration: none;
+}
+
+.showroom_search {
+ width:100%;
+ height:32px;
+ top:-20px;
+ border:0px solid #000000;
+ margin-bottom:5px;
+}
+
+.showroom_search form {
+ float:left;
+ display:inline-block;
+ margin: 0px 0px 0px 0px;
+ padding-top:0px;
+ height: 32px;
+ line-height: 32px;
+ vertical-align: middle;
+}
+
+.showroom_search form input { margin: 0px; }
+
+.showroom_search input[type="checkbox"] { display:none; }
+.showroom_search input[type="checkbox"] + label span {
+ display:inline-block;
+ width:16px;
+ height:16px;
+ vertical-align:middle;
+ cursor:pointer;
+ background:url("/components/com_showroom/assets/images/checkbox.png") bottom left no-repeat;
+}
+.showroom_search input[type="checkbox"]:checked + label span {
+ display:inline-block;
+ width:16px;
+ height:16px;
+ vertical-align:middle;
+ cursor:pointer;
+ background:url("/components/com_showroom/assets/images/checkbox.png") top left no-repeat;
+}
+
+.showroom_search label { display:inline-block; margin:0px; }
+
+.showroom_multi {
+ float:right;
+ border:0px solid #000000;
+ margin:10px 20px 0px 0px;
+}
+
+.showroom_clear {
+ clear:both;
+ margin:0px;
+ padding:0px;
+ height:0px;
+ width:0px;
+}
+
+.showroom_back {
+ display:inline;
+ float:left;
+ margin:0px;
+ padding:0px;
+ width:52px;
+ height:26px;
+ margin: 5px 0px 0px 10px;
+ border:0px solid #000000;
+}
+
+.showroom_pager {
+ height:28px;
+ text-align:center;
+ border:0px solid #000000;
+ overflow:hidden;
+}
+
+.showroom_search_pager span,
+.showroom_pager span {
+ margin: 0px 2px;
+ line-height:26px;
+ display:inline-block;
+ width:26px;
+ height:26px;
+ text-align:center;
+ vertical-align:middle;
+}
+
+.showroom_search_pager span img,
+.showroom_pager span img {
+ vertical-align:top;
+}
+
+.showroom_search_pager a,
+.showroom_pager a {
+ color:#676767;
+}
+
+.showroom_search_pager a:hover,
+.showroom_pager a:hover {
+ color:#ea620f;
+ text-decoration: none;
+}
+
+.showroom_search_pager .active,
+.showroom_pager .active {
+ border:1px solid #ea620f;
+ color:#ea620f;
+ font-weight:bold;
+}
+
+.thinborder,
+.showroom_search_pager .inactive,
+.showroom_pager .inactive {
+ border:1px solid #ccc;
+}
+
+.makeMeScrollable
+{
+ width:100%;
+ height: 162px;
+ position: relative;
+ border: solid 0px #000;
+
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+}
+
+.makeMeScrollable .contentBox { position: relative; float: left; display: block; height: 115px; width: 170px; padding: 10px; margin: 0px 5px; user-select: none; }
+.makeMeScrollable .inactive { border: solid 1px #ccc; }
+.makeMeScrollable .active { border-top: solid 8px #ea620f; border-right: solid 10px #ea620f; border-bottom: solid 8px #ea620f; border-left: solid 10px #ea620f; background-color: #fff; }
+
+.family_container .contentBox { position: relative; float: left; display: block; height: 115px; width: 170px; padding: 10px; margin: 0px 2px; user-select: none; }
+.family_container .inactive { border: solid 1px #ccc; margin:8px; }
+.family_container .active { border: solid 8px #ea620f;margin:1px;background-color: #fff; }
+
+.makeMeScrollable .scrollableArea img,
+.family_container img
+{
+ position: relative;
+ float: center;
+ margin: 0;
+ padding: 0;
+ max-height: 120px;
+ user-select: none;
+}
+
+.makeMeScrollable .scrollableArea .grayscalefilter,
+.family_container .grayscalefilter
+{
+ filter: grayscale(100%);
+ -webkit-filter: grayscale(100%);
+ -moz-filter: grayscale(100%);
+}
+
+/* Invisible left hotspot */
+.makeMeScrollable .scrollingHotSpotLeft
+{
+ /* The hotspots have a minimum width of 100 pixels and if there is room the will grow
+ and occupy 15% of the scrollable area (30% combined). Adjust it to your own taste. */
+ min-width: 75px;
+ width: 10%;
+ height: 100%;
+ /* There is a big background image and it's used to solve some problems I experienced
+ in Internet Explorer 6. */
+ background-image: url(/components/com_showroom/assets/images/big_transparent.gif);
+ background-repeat: repeat;
+ background-position: center center;
+ position: absolute;
+ z-index: 200;
+ left: 0;
+ /* The first url is for Firefox and other browsers, the second is for Internet Explorer */
+ cursor: url(/components/com_showroom/assets/images/cursors/cursor_arrow_left.png), url(/components/com_showroom/assets/images/cursors/cursor_arrow_left.cur),w-resize;
+}
+
+/* Visible left hotspot */
+.makeMeScrollable .scrollingHotSpotLeftVisible
+{
+ background-image: url(/components/com_showroom/assets/images/arrow_left.gif);
+ background-color: #fff;
+ background-repeat: no-repeat;
+ opacity: 0.35; /* Standard CSS3 opacity setting */
+ -moz-opacity: 0.35; /* Opacity for really old versions of Mozilla Firefox (0.9 or older) */
+ filter: alpha(opacity = 35); /* Opacity for Internet Explorer. */
+ zoom: 1; /* Trigger "hasLayout" in Internet Explorer 6 or older versions */
+}
+
+/* Invisible right hotspot */
+.makeMeScrollable .scrollingHotSpotRight
+{
+ min-width: 75px;
+ width: 10%;
+ height: 100%;
+ background-image: url(/components/com_showroom/assets/images/big_transparent.gif);
+ background-repeat: repeat;
+ background-position: center center;
+ position: absolute;
+ z-index: 200;
+ right: 0;
+ cursor: url(/components/com_showroom/assets/images/cursors/cursor_arrow_right.png), url(/components/com_showroom/assets/images/cursors/cursor_arrow_right.cur),e-resize;
+}
+
+/* Visible right hotspot */
+.makeMeScrollable .scrollingHotSpotRightVisible
+{
+ background-image: url(/components/com_showroom/assets/images/arrow_right.gif);
+ background-color: #fff;
+ background-repeat: no-repeat;
+ opacity: 0.35;
+ filter: alpha(opacity = 35);
+ -moz-opacity: 0.35;
+ zoom: 1;
+}
+
+/* The scroll wrapper is always the same width and height as the containing element (div).
+ Overflow is hidden because you don't want to show all of the scrollable area.
+*/
+.makeMeScrollable .scrollWrapper
+{
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+}
+
+.makeMeScrollable .scrollableArea
+{
+ position: relative;
+ width: auto;
+ height: 100%;
}
\ No newline at end of file
diff --git a/core/administrator/components/com_config/access.xml b/core/administrator/components/com_config/access.xml
index 861fef08..0912e34e 100644
--- a/core/administrator/components/com_config/access.xml
+++ b/core/administrator/components/com_config/access.xml
@@ -1,6 +1,6 @@
-
-
-
-
+
+
+
+
diff --git a/core/components/com_mailto/models/forms/mailto.xml b/core/components/com_mailto/models/forms/mailto.xml
index 0469129f..7b9d57ec 100644
--- a/core/components/com_mailto/models/forms/mailto.xml
+++ b/core/components/com_mailto/models/forms/mailto.xml
@@ -1,51 +1,51 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/libraries/phputf8/README b/core/libraries/phputf8/README
index 02c66a18..6c309054 100644
--- a/core/libraries/phputf8/README
+++ b/core/libraries/phputf8/README
@@ -1,82 +1,82 @@
-++PHP UTF-8++
-
-Version 0.5
-
-++DOCUMENTATION++
-
-Documentation in progress in ./docs dir
-
-http://www.phpwact.org/php/i18n/charsets
-http://www.phpwact.org/php/i18n/utf-8
-
-Important Note: DO NOT use these functions without understanding WHY
-you are using them. In particular, do not blindly replace all use of PHP's
-string functions which functions found here - most of the time you will
-not need to, and you will be introducing a significant performance
-overhead to your application. You can get a good idea of when to use what
-from reading: http://www.phpwact.org/php/i18n/utf-8
-
-Important Note: For sake of performance most of the functions here are
-not "defensive" (e.g. there is not extensive parameter checking, well
-formed UTF-8 is assumed). This is particularily relevant when is comes to
-catching badly formed UTF-8 - you should screen input on the "outer
-perimeter" with help from functions in the utf8_validation.php and
-utf8_bad.php files.
-
-Important Note: this library treats ALL ASCII characters as valid, including ASCII control characters. But if you use some ASCII control characters in XML, it will render the XML ill-formed. Don't be a bozo: http://hsivonen.iki.fi/producing-xml/#controlchar
-
-++BUGS / SUPPORT / FEATURE REQUESTS ++
-
-Please report bugs to:
-http://sourceforge.net/tracker/?group_id=142846&atid=753842
-- if you are able, please submit a failing unit test
-(http://www.lastcraft.com/simple_test.php) with your bug report.
-
-For feature requests / faster implementation of functions found here,
-please drop them in via the RFE tracker: http://sourceforge.net/tracker/?group_id=142846&atid=753845
-Particularily interested in faster implementations!
-
-For general support / help, use:
-http://sourceforge.net/tracker/?group_id=142846&atid=753843
-
-In the VERY WORST case, you can email me: hfuecks gmail com - I tend to be slow to respond though so be warned.
-
-Important Note: when reporting bugs, please provide the following
-information;
-
-PHP version, whether the iconv extension is loaded (in PHP5 it's
-there by default), whether the mbstring extension is loaded. The
-following PHP script can be used to determine this information;
-
-";
-if ( extension_loaded('mbstring') ) {
- print "mbstring available ";
-} else {
- print "mbstring not available ";
-}
-if ( extension_loaded('iconv') ) {
- print "iconv available ";
-} else {
- print "iconv not available ";
-}
-?>
-
-++LICENSING++
-
-Parts of the code in this library come from other places, under different
-licenses.
-The authors involved have been contacted (see below). Attribution for
-which code came from elsewhere can be found in the source code itself.
-
-+Andreas Gohr / Chris Smith - Dokuwiki
-There is a fair degree of collaboration / exchange of ideas and code
-beteen Dokuwiki's UTF-8 library;
-http://dev.splitbrain.org/view/darcs/dokuwiki/inc/utf8.php
-and phputf8. Although Dokuwiki is released under GPL, its UTF-8
-library is released under LGPL, hence no conflict with phputf8
-
-+Henri Sivonen (http://hsivonen.iki.fi/php-utf8/ /
-http://hsivonen.iki.fi/php-utf8/) has also given permission for his
-code to be released under the terms of the LGPL. He ported a Unicode / UTF-8
-converter from the Mozilla codebase to PHP, which is re-used in phputf8
+++PHP UTF-8++
+
+Version 0.5
+
+++DOCUMENTATION++
+
+Documentation in progress in ./docs dir
+
+http://www.phpwact.org/php/i18n/charsets
+http://www.phpwact.org/php/i18n/utf-8
+
+Important Note: DO NOT use these functions without understanding WHY
+you are using them. In particular, do not blindly replace all use of PHP's
+string functions which functions found here - most of the time you will
+not need to, and you will be introducing a significant performance
+overhead to your application. You can get a good idea of when to use what
+from reading: http://www.phpwact.org/php/i18n/utf-8
+
+Important Note: For sake of performance most of the functions here are
+not "defensive" (e.g. there is not extensive parameter checking, well
+formed UTF-8 is assumed). This is particularily relevant when is comes to
+catching badly formed UTF-8 - you should screen input on the "outer
+perimeter" with help from functions in the utf8_validation.php and
+utf8_bad.php files.
+
+Important Note: this library treats ALL ASCII characters as valid, including ASCII control characters. But if you use some ASCII control characters in XML, it will render the XML ill-formed. Don't be a bozo: http://hsivonen.iki.fi/producing-xml/#controlchar
+
+++BUGS / SUPPORT / FEATURE REQUESTS ++
+
+Please report bugs to:
+http://sourceforge.net/tracker/?group_id=142846&atid=753842
+- if you are able, please submit a failing unit test
+(http://www.lastcraft.com/simple_test.php) with your bug report.
+
+For feature requests / faster implementation of functions found here,
+please drop them in via the RFE tracker: http://sourceforge.net/tracker/?group_id=142846&atid=753845
+Particularily interested in faster implementations!
+
+For general support / help, use:
+http://sourceforge.net/tracker/?group_id=142846&atid=753843
+
+In the VERY WORST case, you can email me: hfuecks gmail com - I tend to be slow to respond though so be warned.
+
+Important Note: when reporting bugs, please provide the following
+information;
+
+PHP version, whether the iconv extension is loaded (in PHP5 it's
+there by default), whether the mbstring extension is loaded. The
+following PHP script can be used to determine this information;
+
+";
+if ( extension_loaded('mbstring') ) {
+ print "mbstring available ";
+} else {
+ print "mbstring not available ";
+}
+if ( extension_loaded('iconv') ) {
+ print "iconv available ";
+} else {
+ print "iconv not available ";
+}
+?>
+
+++LICENSING++
+
+Parts of the code in this library come from other places, under different
+licenses.
+The authors involved have been contacted (see below). Attribution for
+which code came from elsewhere can be found in the source code itself.
+
++Andreas Gohr / Chris Smith - Dokuwiki
+There is a fair degree of collaboration / exchange of ideas and code
+beteen Dokuwiki's UTF-8 library;
+http://dev.splitbrain.org/view/darcs/dokuwiki/inc/utf8.php
+and phputf8. Although Dokuwiki is released under GPL, its UTF-8
+library is released under LGPL, hence no conflict with phputf8
+
++Henri Sivonen (http://hsivonen.iki.fi/php-utf8/ /
+http://hsivonen.iki.fi/php-utf8/) has also given permission for his
+code to be released under the terms of the LGPL. He ported a Unicode / UTF-8
+converter from the Mozilla codebase to PHP, which is re-used in phputf8
diff --git a/core/media/editors/codemirror/lib/addons.css b/core/media/editors/codemirror/lib/addons.css
index ad952844..fa1b786f 100644
--- a/core/media/editors/codemirror/lib/addons.css
+++ b/core/media/editors/codemirror/lib/addons.css
@@ -4,7 +4,7 @@
height: auto;
z-index: 9;
}
-
+
.CodeMirror-foldmarker {
color: blue;
text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
@@ -25,7 +25,7 @@
.CodeMirror-foldgutter-folded:after {
content: "\25B8";
}
-
+
.CodeMirror-search-match {
background: gold;
border-top: 1px solid orange;
@@ -34,7 +34,7 @@
box-sizing: border-box;
opacity: .5;
}
-
+
.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
position: absolute;
background: #ccc;
diff --git a/core/media/editors/codemirror/lib/addons.js b/core/media/editors/codemirror/lib/addons.js
index 8965b567..dcc9d27c 100644
--- a/core/media/editors/codemirror/lib/addons.js
+++ b/core/media/editors/codemirror/lib/addons.js
@@ -39,7 +39,7 @@
cm.refresh();
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -163,7 +163,7 @@
return false
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -358,7 +358,7 @@
(pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos)))
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -534,7 +534,7 @@
return true;
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -680,7 +680,7 @@
return scanForBracket(this, pos, dir, style, config);
});
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -747,7 +747,7 @@
}
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -853,7 +853,7 @@ CodeMirror.registerHelper("fold", "include", function(cm, start) {
});
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1006,7 +1006,7 @@ CodeMirror.registerHelper("fold", "include", function(cm, start) {
return getOption(this, options, name);
});
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1153,7 +1153,7 @@ CodeMirror.registerHelper("fold", "include", function(cm, start) {
updateFoldInfo(cm, line, line + 1);
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1338,7 +1338,7 @@ CodeMirror.registerHelper("fold", "include", function(cm, start) {
return findMatchingClose(iter, name);
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1403,7 +1403,7 @@ CodeMirror.registerHelper("fold", "include", function(cm, start) {
});
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1535,7 +1535,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1658,7 +1658,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
this.div.parentNode.removeChild(this.div);
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1811,7 +1811,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
return new SimpleScrollbars("CodeMirror-overlayscroll", place, scroll);
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -1909,7 +1909,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
this.annotation.clear();
};
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -2075,7 +2075,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
}};
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -2369,7 +2369,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
this.setSelections(ranges, 0)
})
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
@@ -2442,7 +2442,7 @@ CodeMirror.multiplexingMode = function(outer /*, others */) {
updateActiveLines(cm, sel.ranges);
}
});
-
+
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE
diff --git a/core/media/jui/js/jquery.autocomplete.js b/core/media/jui/js/jquery.autocomplete.js
index 9fc18b25..de88cdcf 100644
--- a/core/media/jui/js/jquery.autocomplete.js
+++ b/core/media/jui/js/jquery.autocomplete.js
@@ -1,998 +1,998 @@
-/**
-* Ajax Autocomplete for jQuery, version 1.4.7
-* (c) 2017 Tomas Kirda
-*
-* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
-* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
-*/
-
-/*jslint browser: true, white: true, single: true, this: true, multivar: true */
-/*global define, window, document, jQuery, exports, require */
-
-// Expose plugin as an AMD module if AMD loader is present:
-(function (factory) {
- "use strict";
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], factory);
- } else if (typeof exports === 'object' && typeof require === 'function') {
- // Browserify
- factory(require('jquery'));
- } else {
- // Browser globals
- factory(jQuery);
- }
-}(function ($) {
- 'use strict';
-
- var
- utils = (function () {
- return {
- escapeRegExChars: function (value) {
- return value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
- },
- createNode: function (containerClass) {
- var div = document.createElement('div');
- div.className = containerClass;
- div.style.position = 'absolute';
- div.style.display = 'none';
- return div;
- }
- };
- }()),
-
- keys = {
- ESC: 27,
- TAB: 9,
- RETURN: 13,
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40
- },
-
- noop = $.noop;
-
- function Autocomplete(el, options) {
- var that = this;
-
- // Shared variables:
- that.element = el;
- that.el = $(el);
- that.suggestions = [];
- that.badQueries = [];
- that.selectedIndex = -1;
- that.currentValue = that.element.value;
- that.timeoutId = null;
- that.cachedResponse = {};
- that.onChangeTimeout = null;
- that.onChange = null;
- that.isLocal = false;
- that.suggestionsContainer = null;
- that.noSuggestionsContainer = null;
- that.options = $.extend({}, Autocomplete.defaults, options);
- that.classes = {
- selected: 'autocomplete-selected',
- suggestion: 'autocomplete-suggestion'
- };
- that.hint = null;
- that.hintValue = '';
- that.selection = null;
-
- // Initialize and set options:
- that.initialize();
- that.setOptions(options);
- }
-
- Autocomplete.utils = utils;
-
- $.Autocomplete = Autocomplete;
-
- Autocomplete.defaults = {
- ajaxSettings: {},
- autoSelectFirst: false,
- appendTo: 'body',
- serviceUrl: null,
- lookup: null,
- onSelect: null,
- width: 'auto',
- minChars: 1,
- maxHeight: 300,
- deferRequestBy: 0,
- params: {},
- formatResult: _formatResult,
- formatGroup: _formatGroup,
- delimiter: null,
- zIndex: 9999,
- type: 'GET',
- noCache: false,
- onSearchStart: noop,
- onSearchComplete: noop,
- onSearchError: noop,
- preserveInput: false,
- containerClass: 'autocomplete-suggestions',
- tabDisabled: false,
- dataType: 'text',
- currentRequest: null,
- triggerSelectOnValidInput: true,
- preventBadQueries: true,
- lookupFilter: _lookupFilter,
- paramName: 'query',
- transformResult: _transformResult,
- showNoSuggestionNotice: false,
- noSuggestionNotice: 'No results',
- orientation: 'bottom',
- forceFixPosition: false
- };
-
- function _lookupFilter(suggestion, originalQuery, queryLowerCase) {
- return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;
- };
-
- function _transformResult(response) {
- return typeof response === 'string' ? $.parseJSON(response) : response;
- };
-
- function _formatResult(suggestion, currentValue) {
- // Do not replace anything if the current value is empty
- if (!currentValue) {
- return suggestion.value;
- }
-
- var pattern = '(' + utils.escapeRegExChars(currentValue) + ')';
-
- return suggestion.value
- .replace(new RegExp(pattern, 'gi'), '$1<\/strong>')
- .replace(/&/g, '&')
- .replace(//g, '>')
- .replace(/"/g, '"')
- .replace(/<(\/?strong)>/g, '<$1>');
- };
-
- function _formatGroup(suggestion, category) {
- return '' + category + '
';
- };
-
- Autocomplete.prototype = {
-
- initialize: function () {
- var that = this,
- suggestionSelector = '.' + that.classes.suggestion,
- selected = that.classes.selected,
- options = that.options,
- container;
-
- // Remove autocomplete attribute to prevent native suggestions:
- that.element.setAttribute('autocomplete', 'off');
-
- // html() deals with many types: htmlString or Element or Array or jQuery
- that.noSuggestionsContainer = $('
')
- .html(this.options.noSuggestionNotice).get(0);
-
- that.suggestionsContainer = Autocomplete.utils.createNode(options.containerClass);
-
- container = $(that.suggestionsContainer);
-
- container.appendTo(options.appendTo || 'body');
-
- // Only set width if it was provided:
- if (options.width !== 'auto') {
- container.css('width', options.width);
- }
-
- // Listen for mouse over event on suggestions list:
- container.on('mouseover.autocomplete', suggestionSelector, function () {
- that.activate($(this).data('index'));
- });
-
- // Deselect active element when mouse leaves suggestions container:
- container.on('mouseout.autocomplete', function () {
- that.selectedIndex = -1;
- container.children('.' + selected).removeClass(selected);
- });
-
- // Listen for click event on suggestions list:
- container.on('click.autocomplete', suggestionSelector, function () {
- that.select($(this).data('index'));
- });
-
- container.on('click.autocomplete', function () {
- clearTimeout(that.blurTimeoutId);
- })
-
- that.fixPositionCapture = function () {
- if (that.visible) {
- that.fixPosition();
- }
- };
-
- $(window).on('resize.autocomplete', that.fixPositionCapture);
-
- that.el.on('keydown.autocomplete', function (e) { that.onKeyPress(e); });
- that.el.on('keyup.autocomplete', function (e) { that.onKeyUp(e); });
- that.el.on('blur.autocomplete', function () { that.onBlur(); });
- that.el.on('focus.autocomplete', function () { that.onFocus(); });
- that.el.on('change.autocomplete', function (e) { that.onKeyUp(e); });
- that.el.on('input.autocomplete', function (e) { that.onKeyUp(e); });
- },
-
- onFocus: function () {
- var that = this;
-
- that.fixPosition();
-
- if (that.el.val().length >= that.options.minChars) {
- that.onValueChange();
- }
- },
-
- onBlur: function () {
- var that = this;
-
- // If user clicked on a suggestion, hide() will
- // be canceled, otherwise close suggestions
- that.blurTimeoutId = setTimeout(function () {
- that.hide();
- }, 200);
- },
-
- abortAjax: function () {
- var that = this;
- if (that.currentRequest) {
- that.currentRequest.abort();
- that.currentRequest = null;
- }
- },
-
- setOptions: function (suppliedOptions) {
- var that = this,
- options = $.extend({}, that.options, suppliedOptions);
-
- that.isLocal = Array.isArray(options.lookup);
-
- if (that.isLocal) {
- options.lookup = that.verifySuggestionsFormat(options.lookup);
- }
-
- options.orientation = that.validateOrientation(options.orientation, 'bottom');
-
- // Adjust height, width and z-index:
- $(that.suggestionsContainer).css({
- 'max-height': options.maxHeight + 'px',
- 'width': options.width + 'px',
- 'z-index': options.zIndex
- });
-
- this.options = options;
- },
-
-
- clearCache: function () {
- this.cachedResponse = {};
- this.badQueries = [];
- },
-
- clear: function () {
- this.clearCache();
- this.currentValue = '';
- this.suggestions = [];
- },
-
- disable: function () {
- var that = this;
- that.disabled = true;
- clearTimeout(that.onChangeTimeout);
- that.abortAjax();
- },
-
- enable: function () {
- this.disabled = false;
- },
-
- fixPosition: function () {
- // Use only when container has already its content
-
- var that = this,
- $container = $(that.suggestionsContainer),
- containerParent = $container.parent().get(0);
- // Fix position automatically when appended to body.
- // In other cases force parameter must be given.
- if (containerParent !== document.body && !that.options.forceFixPosition) {
- return;
- }
-
- // Choose orientation
- var orientation = that.options.orientation,
- containerHeight = $container.outerHeight(),
- height = that.el.outerHeight(),
- offset = that.el.offset(),
- styles = { 'top': offset.top, 'left': offset.left };
-
- if (orientation === 'auto') {
- var viewPortHeight = $(window).height(),
- scrollTop = $(window).scrollTop(),
- topOverflow = -scrollTop + offset.top - containerHeight,
- bottomOverflow = scrollTop + viewPortHeight - (offset.top + height + containerHeight);
-
- orientation = (Math.max(topOverflow, bottomOverflow) === topOverflow) ? 'top' : 'bottom';
- }
-
- if (orientation === 'top') {
- styles.top += -containerHeight;
- } else {
- styles.top += height;
- }
-
- // If container is not positioned to body,
- // correct its position using offset parent offset
- if(containerParent !== document.body) {
- var opacity = $container.css('opacity'),
- parentOffsetDiff;
-
- if (!that.visible){
- $container.css('opacity', 0).show();
- }
-
- parentOffsetDiff = $container.offsetParent().offset();
- styles.top -= parentOffsetDiff.top;
- styles.top += containerParent.scrollTop;
- styles.left -= parentOffsetDiff.left;
-
- if (!that.visible){
- $container.css('opacity', opacity).hide();
- }
- }
-
- if (that.options.width === 'auto') {
- styles.width = that.el.outerWidth() + 'px';
- }
-
- $container.css(styles);
- },
-
- isCursorAtEnd: function () {
- var that = this,
- valLength = that.el.val().length,
- selectionStart = that.element.selectionStart,
- range;
-
- if (typeof selectionStart === 'number') {
- return selectionStart === valLength;
- }
- if (document.selection) {
- range = document.selection.createRange();
- range.moveStart('character', -valLength);
- return valLength === range.text.length;
- }
- return true;
- },
-
- onKeyPress: function (e) {
- var that = this;
-
- // If suggestions are hidden and user presses arrow down, display suggestions:
- if (!that.disabled && !that.visible && e.which === keys.DOWN && that.currentValue) {
- that.suggest();
- return;
- }
-
- if (that.disabled || !that.visible) {
- return;
- }
-
- switch (e.which) {
- case keys.ESC:
- that.el.val(that.currentValue);
- that.hide();
- break;
- case keys.RIGHT:
- if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
- that.selectHint();
- break;
- }
- return;
- case keys.TAB:
- if (that.hint && that.options.onHint) {
- that.selectHint();
- return;
- }
- if (that.selectedIndex === -1) {
- that.hide();
- return;
- }
- that.select(that.selectedIndex);
- if (that.options.tabDisabled === false) {
- return;
- }
- break;
- case keys.RETURN:
- if (that.selectedIndex === -1) {
- that.hide();
- return;
- }
- that.select(that.selectedIndex);
- break;
- case keys.UP:
- that.moveUp();
- break;
- case keys.DOWN:
- that.moveDown();
- break;
- default:
- return;
- }
-
- // Cancel event if function did not return:
- e.stopImmediatePropagation();
- e.preventDefault();
- },
-
- onKeyUp: function (e) {
- var that = this;
-
- if (that.disabled) {
- return;
- }
-
- switch (e.which) {
- case keys.UP:
- case keys.DOWN:
- return;
- }
-
- clearTimeout(that.onChangeTimeout);
-
- if (that.currentValue !== that.el.val()) {
- that.findBestHint();
- if (that.options.deferRequestBy > 0) {
- // Defer lookup in case when value changes very quickly:
- that.onChangeTimeout = setTimeout(function () {
- that.onValueChange();
- }, that.options.deferRequestBy);
- } else {
- that.onValueChange();
- }
- }
- },
-
- onValueChange: function () {
- if (this.ignoreValueChange) {
- this.ignoreValueChange = false;
- return;
- }
-
- var that = this,
- options = that.options,
- value = that.el.val(),
- query = that.getQuery(value);
-
- if (that.selection && that.currentValue !== query) {
- that.selection = null;
- (options.onInvalidateSelection || $.noop).call(that.element);
- }
-
- clearTimeout(that.onChangeTimeout);
- that.currentValue = value;
- that.selectedIndex = -1;
-
- // Check existing suggestion for the match before proceeding:
- if (options.triggerSelectOnValidInput && that.isExactMatch(query)) {
- that.select(0);
- return;
- }
-
- if (query.length < options.minChars) {
- that.hide();
- } else {
- that.getSuggestions(query);
- }
- },
-
- isExactMatch: function (query) {
- var suggestions = this.suggestions;
-
- return (suggestions.length === 1 && suggestions[0].value.toLowerCase() === query.toLowerCase());
- },
-
- getQuery: function (value) {
- var delimiter = this.options.delimiter,
- parts;
-
- if (!delimiter) {
- return value;
- }
- parts = value.split(delimiter);
- return $.trim(parts[parts.length - 1]);
- },
-
- getSuggestionsLocal: function (query) {
- var that = this,
- options = that.options,
- queryLowerCase = query.toLowerCase(),
- filter = options.lookupFilter,
- limit = parseInt(options.lookupLimit, 10),
- data;
-
- data = {
- suggestions: $.grep(options.lookup, function (suggestion) {
- return filter(suggestion, query, queryLowerCase);
- })
- };
-
- if (limit && data.suggestions.length > limit) {
- data.suggestions = data.suggestions.slice(0, limit);
- }
-
- return data;
- },
-
- getSuggestions: function (q) {
- var response,
- that = this,
- options = that.options,
- serviceUrl = options.serviceUrl,
- params,
- cacheKey,
- ajaxSettings;
-
- options.params[options.paramName] = q;
-
- if (options.onSearchStart.call(that.element, options.params) === false) {
- return;
- }
-
- params = options.ignoreParams ? null : options.params;
-
- if ($.isFunction(options.lookup)){
- options.lookup(q, function (data) {
- that.suggestions = data.suggestions;
- that.suggest();
- options.onSearchComplete.call(that.element, q, data.suggestions);
- });
- return;
- }
-
- if (that.isLocal) {
- response = that.getSuggestionsLocal(q);
- } else {
- if ($.isFunction(serviceUrl)) {
- serviceUrl = serviceUrl.call(that.element, q);
- }
- cacheKey = serviceUrl + '?' + $.param(params || {});
- response = that.cachedResponse[cacheKey];
- }
-
- if (response && Array.isArray(response.suggestions)) {
- that.suggestions = response.suggestions;
- that.suggest();
- options.onSearchComplete.call(that.element, q, response.suggestions);
- } else if (!that.isBadQuery(q)) {
- that.abortAjax();
-
- ajaxSettings = {
- url: serviceUrl,
- data: params,
- type: options.type,
- dataType: options.dataType
- };
-
- $.extend(ajaxSettings, options.ajaxSettings);
-
- that.currentRequest = $.ajax(ajaxSettings).done(function (data) {
- var result;
- that.currentRequest = null;
- result = options.transformResult(data, q);
- that.processResponse(result, q, cacheKey);
- options.onSearchComplete.call(that.element, q, result.suggestions);
- }).fail(function (jqXHR, textStatus, errorThrown) {
- options.onSearchError.call(that.element, q, jqXHR, textStatus, errorThrown);
- });
- } else {
- options.onSearchComplete.call(that.element, q, []);
- }
- },
-
- isBadQuery: function (q) {
- if (!this.options.preventBadQueries){
- return false;
- }
-
- var badQueries = this.badQueries,
- i = badQueries.length;
-
- while (i--) {
- if (q.indexOf(badQueries[i]) === 0) {
- return true;
- }
- }
-
- return false;
- },
-
- hide: function () {
- var that = this,
- container = $(that.suggestionsContainer);
-
- if ($.isFunction(that.options.onHide) && that.visible) {
- that.options.onHide.call(that.element, container);
- }
-
- that.visible = false;
- that.selectedIndex = -1;
- clearTimeout(that.onChangeTimeout);
- $(that.suggestionsContainer).hide();
- that.signalHint(null);
- },
-
- suggest: function () {
- if (!this.suggestions.length) {
- if (this.options.showNoSuggestionNotice) {
- this.noSuggestions();
- } else {
- this.hide();
- }
- return;
- }
-
- var that = this,
- options = that.options,
- groupBy = options.groupBy,
- formatResult = options.formatResult,
- value = that.getQuery(that.currentValue),
- className = that.classes.suggestion,
- classSelected = that.classes.selected,
- container = $(that.suggestionsContainer),
- noSuggestionsContainer = $(that.noSuggestionsContainer),
- beforeRender = options.beforeRender,
- html = '',
- category,
- formatGroup = function (suggestion, index) {
- var currentCategory = suggestion.data[groupBy];
-
- if (category === currentCategory){
- return '';
- }
-
- category = currentCategory;
-
- return options.formatGroup(suggestion, category);
- };
-
- if (options.triggerSelectOnValidInput && that.isExactMatch(value)) {
- that.select(0);
- return;
- }
-
- // Build suggestions inner HTML:
- $.each(that.suggestions, function (i, suggestion) {
- if (groupBy){
- html += formatGroup(suggestion, value, i);
- }
-
- html += '' + formatResult(suggestion, value, i) + '
';
- });
-
- this.adjustContainerWidth();
-
- noSuggestionsContainer.detach();
- container.html(html);
-
- if ($.isFunction(beforeRender)) {
- beforeRender.call(that.element, container, that.suggestions);
- }
-
- that.fixPosition();
- container.show();
-
- // Select first value by default:
- if (options.autoSelectFirst) {
- that.selectedIndex = 0;
- container.scrollTop(0);
- container.children('.' + className).first().addClass(classSelected);
- }
-
- that.visible = true;
- that.findBestHint();
- },
-
- noSuggestions: function() {
- var that = this,
- beforeRender = that.options.beforeRender,
- container = $(that.suggestionsContainer),
- noSuggestionsContainer = $(that.noSuggestionsContainer);
-
- this.adjustContainerWidth();
-
- // Some explicit steps. Be careful here as it easy to get
- // noSuggestionsContainer removed from DOM if not detached properly.
- noSuggestionsContainer.detach();
-
- // clean suggestions if any
- container.empty();
- container.append(noSuggestionsContainer);
-
- if ($.isFunction(beforeRender)) {
- beforeRender.call(that.element, container, that.suggestions);
- }
-
- that.fixPosition();
-
- container.show();
- that.visible = true;
- },
-
- adjustContainerWidth: function() {
- var that = this,
- options = that.options,
- width,
- container = $(that.suggestionsContainer);
-
- // If width is auto, adjust width before displaying suggestions,
- // because if instance was created before input had width, it will be zero.
- // Also it adjusts if input width has changed.
- if (options.width === 'auto') {
- width = that.el.outerWidth();
- container.css('width', width > 0 ? width : 300);
- } else if(options.width === 'flex') {
- // Trust the source! Unset the width property so it will be the max length
- // the containing elements.
- container.css('width', '');
- }
- },
-
- findBestHint: function () {
- var that = this,
- value = that.el.val().toLowerCase(),
- bestMatch = null;
-
- if (!value) {
- return;
- }
-
- $.each(that.suggestions, function (i, suggestion) {
- var foundMatch = suggestion.value.toLowerCase().indexOf(value) === 0;
- if (foundMatch) {
- bestMatch = suggestion;
- }
- return !foundMatch;
- });
-
- that.signalHint(bestMatch);
- },
-
- signalHint: function (suggestion) {
- var hintValue = '',
- that = this;
- if (suggestion) {
- hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
- }
- if (that.hintValue !== hintValue) {
- that.hintValue = hintValue;
- that.hint = suggestion;
- (this.options.onHint || $.noop)(hintValue);
- }
- },
-
- verifySuggestionsFormat: function (suggestions) {
- // If suggestions is string array, convert them to supported format:
- if (suggestions.length && typeof suggestions[0] === 'string') {
- return $.map(suggestions, function (value) {
- return { value: value, data: null };
- });
- }
-
- return suggestions;
- },
-
- validateOrientation: function(orientation, fallback) {
- orientation = $.trim(orientation || '').toLowerCase();
-
- if($.inArray(orientation, ['auto', 'bottom', 'top']) === -1){
- orientation = fallback;
- }
-
- return orientation;
- },
-
- processResponse: function (result, originalQuery, cacheKey) {
- var that = this,
- options = that.options;
-
- result.suggestions = that.verifySuggestionsFormat(result.suggestions);
-
- // Cache results if cache is not disabled:
- if (!options.noCache) {
- that.cachedResponse[cacheKey] = result;
- if (options.preventBadQueries && !result.suggestions.length) {
- that.badQueries.push(originalQuery);
- }
- }
-
- // Return if originalQuery is not matching current query:
- if (originalQuery !== that.getQuery(that.currentValue)) {
- return;
- }
-
- that.suggestions = result.suggestions;
- that.suggest();
- },
-
- activate: function (index) {
- var that = this,
- activeItem,
- selected = that.classes.selected,
- container = $(that.suggestionsContainer),
- children = container.find('.' + that.classes.suggestion);
-
- container.find('.' + selected).removeClass(selected);
-
- that.selectedIndex = index;
-
- if (that.selectedIndex !== -1 && children.length > that.selectedIndex) {
- activeItem = children.get(that.selectedIndex);
- $(activeItem).addClass(selected);
- return activeItem;
- }
-
- return null;
- },
-
- selectHint: function () {
- var that = this,
- i = $.inArray(that.hint, that.suggestions);
-
- that.select(i);
- },
-
- select: function (i) {
- var that = this;
- that.hide();
- that.onSelect(i);
- },
-
- moveUp: function () {
- var that = this;
-
- if (that.selectedIndex === -1) {
- return;
- }
-
- if (that.selectedIndex === 0) {
- $(that.suggestionsContainer).children('.' + that.classes.suggestion).first().removeClass(that.classes.selected);
- that.selectedIndex = -1;
- that.ignoreValueChange = false;
- that.el.val(that.currentValue);
- that.findBestHint();
- return;
- }
-
- that.adjustScroll(that.selectedIndex - 1);
- },
-
- moveDown: function () {
- var that = this;
-
- if (that.selectedIndex === (that.suggestions.length - 1)) {
- return;
- }
-
- that.adjustScroll(that.selectedIndex + 1);
- },
-
- adjustScroll: function (index) {
- var that = this,
- activeItem = that.activate(index);
-
- if (!activeItem) {
- return;
- }
-
- var offsetTop,
- upperBound,
- lowerBound,
- heightDelta = $(activeItem).outerHeight();
-
- offsetTop = activeItem.offsetTop;
- upperBound = $(that.suggestionsContainer).scrollTop();
- lowerBound = upperBound + that.options.maxHeight - heightDelta;
-
- if (offsetTop < upperBound) {
- $(that.suggestionsContainer).scrollTop(offsetTop);
- } else if (offsetTop > lowerBound) {
- $(that.suggestionsContainer).scrollTop(offsetTop - that.options.maxHeight + heightDelta);
- }
-
- if (!that.options.preserveInput) {
- // During onBlur event, browser will trigger "change" event,
- // because value has changed, to avoid side effect ignore,
- // that event, so that correct suggestion can be selected
- // when clicking on suggestion with a mouse
- that.ignoreValueChange = true;
- that.el.val(that.getValue(that.suggestions[index].value));
- }
-
- that.signalHint(null);
- },
-
- onSelect: function (index) {
- var that = this,
- onSelectCallback = that.options.onSelect,
- suggestion = that.suggestions[index];
-
- that.currentValue = that.getValue(suggestion.value);
-
- if (that.currentValue !== that.el.val() && !that.options.preserveInput) {
- that.el.val(that.currentValue);
- }
-
- that.signalHint(null);
- that.suggestions = [];
- that.selection = suggestion;
-
- if ($.isFunction(onSelectCallback)) {
- onSelectCallback.call(that.element, suggestion);
- }
- },
-
- getValue: function (value) {
- var that = this,
- delimiter = that.options.delimiter,
- currentValue,
- parts;
-
- if (!delimiter) {
- return value;
- }
-
- currentValue = that.currentValue;
- parts = currentValue.split(delimiter);
-
- if (parts.length === 1) {
- return value;
- }
-
- return currentValue.substr(0, currentValue.length - parts[parts.length - 1].length) + value;
- },
-
- dispose: function () {
- var that = this;
- that.el.off('.autocomplete').removeData('autocomplete');
- $(window).off('resize.autocomplete', that.fixPositionCapture);
- $(that.suggestionsContainer).remove();
- }
- };
-
- // Create chainable jQuery plugin:
- $.fn.devbridgeAutocomplete = function (options, args) {
- var dataKey = 'autocomplete';
- // If function invoked without argument return
- // instance of the first matched element:
- if (!arguments.length) {
- return this.first().data(dataKey);
- }
-
- return this.each(function () {
- var inputElement = $(this),
- instance = inputElement.data(dataKey);
-
- if (typeof options === 'string') {
- if (instance && typeof instance[options] === 'function') {
- instance[options](args);
- }
- } else {
- // If instance already exists, destroy it:
- if (instance && instance.dispose) {
- instance.dispose();
- }
- instance = new Autocomplete(this, options);
- inputElement.data(dataKey, instance);
- }
- });
- };
-
- // Don't overwrite if it already exists
- if (!$.fn.autocomplete) {
- $.fn.autocomplete = $.fn.devbridgeAutocomplete;
- }
-}));
+/**
+* Ajax Autocomplete for jQuery, version 1.4.7
+* (c) 2017 Tomas Kirda
+*
+* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
+* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
+*/
+
+/*jslint browser: true, white: true, single: true, this: true, multivar: true */
+/*global define, window, document, jQuery, exports, require */
+
+// Expose plugin as an AMD module if AMD loader is present:
+(function (factory) {
+ "use strict";
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object' && typeof require === 'function') {
+ // Browserify
+ factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(jQuery);
+ }
+}(function ($) {
+ 'use strict';
+
+ var
+ utils = (function () {
+ return {
+ escapeRegExChars: function (value) {
+ return value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
+ },
+ createNode: function (containerClass) {
+ var div = document.createElement('div');
+ div.className = containerClass;
+ div.style.position = 'absolute';
+ div.style.display = 'none';
+ return div;
+ }
+ };
+ }()),
+
+ keys = {
+ ESC: 27,
+ TAB: 9,
+ RETURN: 13,
+ LEFT: 37,
+ UP: 38,
+ RIGHT: 39,
+ DOWN: 40
+ },
+
+ noop = $.noop;
+
+ function Autocomplete(el, options) {
+ var that = this;
+
+ // Shared variables:
+ that.element = el;
+ that.el = $(el);
+ that.suggestions = [];
+ that.badQueries = [];
+ that.selectedIndex = -1;
+ that.currentValue = that.element.value;
+ that.timeoutId = null;
+ that.cachedResponse = {};
+ that.onChangeTimeout = null;
+ that.onChange = null;
+ that.isLocal = false;
+ that.suggestionsContainer = null;
+ that.noSuggestionsContainer = null;
+ that.options = $.extend({}, Autocomplete.defaults, options);
+ that.classes = {
+ selected: 'autocomplete-selected',
+ suggestion: 'autocomplete-suggestion'
+ };
+ that.hint = null;
+ that.hintValue = '';
+ that.selection = null;
+
+ // Initialize and set options:
+ that.initialize();
+ that.setOptions(options);
+ }
+
+ Autocomplete.utils = utils;
+
+ $.Autocomplete = Autocomplete;
+
+ Autocomplete.defaults = {
+ ajaxSettings: {},
+ autoSelectFirst: false,
+ appendTo: 'body',
+ serviceUrl: null,
+ lookup: null,
+ onSelect: null,
+ width: 'auto',
+ minChars: 1,
+ maxHeight: 300,
+ deferRequestBy: 0,
+ params: {},
+ formatResult: _formatResult,
+ formatGroup: _formatGroup,
+ delimiter: null,
+ zIndex: 9999,
+ type: 'GET',
+ noCache: false,
+ onSearchStart: noop,
+ onSearchComplete: noop,
+ onSearchError: noop,
+ preserveInput: false,
+ containerClass: 'autocomplete-suggestions',
+ tabDisabled: false,
+ dataType: 'text',
+ currentRequest: null,
+ triggerSelectOnValidInput: true,
+ preventBadQueries: true,
+ lookupFilter: _lookupFilter,
+ paramName: 'query',
+ transformResult: _transformResult,
+ showNoSuggestionNotice: false,
+ noSuggestionNotice: 'No results',
+ orientation: 'bottom',
+ forceFixPosition: false
+ };
+
+ function _lookupFilter(suggestion, originalQuery, queryLowerCase) {
+ return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;
+ };
+
+ function _transformResult(response) {
+ return typeof response === 'string' ? $.parseJSON(response) : response;
+ };
+
+ function _formatResult(suggestion, currentValue) {
+ // Do not replace anything if the current value is empty
+ if (!currentValue) {
+ return suggestion.value;
+ }
+
+ var pattern = '(' + utils.escapeRegExChars(currentValue) + ')';
+
+ return suggestion.value
+ .replace(new RegExp(pattern, 'gi'), '$1<\/strong>')
+ .replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"')
+ .replace(/<(\/?strong)>/g, '<$1>');
+ };
+
+ function _formatGroup(suggestion, category) {
+ return '' + category + '
';
+ };
+
+ Autocomplete.prototype = {
+
+ initialize: function () {
+ var that = this,
+ suggestionSelector = '.' + that.classes.suggestion,
+ selected = that.classes.selected,
+ options = that.options,
+ container;
+
+ // Remove autocomplete attribute to prevent native suggestions:
+ that.element.setAttribute('autocomplete', 'off');
+
+ // html() deals with many types: htmlString or Element or Array or jQuery
+ that.noSuggestionsContainer = $('
')
+ .html(this.options.noSuggestionNotice).get(0);
+
+ that.suggestionsContainer = Autocomplete.utils.createNode(options.containerClass);
+
+ container = $(that.suggestionsContainer);
+
+ container.appendTo(options.appendTo || 'body');
+
+ // Only set width if it was provided:
+ if (options.width !== 'auto') {
+ container.css('width', options.width);
+ }
+
+ // Listen for mouse over event on suggestions list:
+ container.on('mouseover.autocomplete', suggestionSelector, function () {
+ that.activate($(this).data('index'));
+ });
+
+ // Deselect active element when mouse leaves suggestions container:
+ container.on('mouseout.autocomplete', function () {
+ that.selectedIndex = -1;
+ container.children('.' + selected).removeClass(selected);
+ });
+
+ // Listen for click event on suggestions list:
+ container.on('click.autocomplete', suggestionSelector, function () {
+ that.select($(this).data('index'));
+ });
+
+ container.on('click.autocomplete', function () {
+ clearTimeout(that.blurTimeoutId);
+ })
+
+ that.fixPositionCapture = function () {
+ if (that.visible) {
+ that.fixPosition();
+ }
+ };
+
+ $(window).on('resize.autocomplete', that.fixPositionCapture);
+
+ that.el.on('keydown.autocomplete', function (e) { that.onKeyPress(e); });
+ that.el.on('keyup.autocomplete', function (e) { that.onKeyUp(e); });
+ that.el.on('blur.autocomplete', function () { that.onBlur(); });
+ that.el.on('focus.autocomplete', function () { that.onFocus(); });
+ that.el.on('change.autocomplete', function (e) { that.onKeyUp(e); });
+ that.el.on('input.autocomplete', function (e) { that.onKeyUp(e); });
+ },
+
+ onFocus: function () {
+ var that = this;
+
+ that.fixPosition();
+
+ if (that.el.val().length >= that.options.minChars) {
+ that.onValueChange();
+ }
+ },
+
+ onBlur: function () {
+ var that = this;
+
+ // If user clicked on a suggestion, hide() will
+ // be canceled, otherwise close suggestions
+ that.blurTimeoutId = setTimeout(function () {
+ that.hide();
+ }, 200);
+ },
+
+ abortAjax: function () {
+ var that = this;
+ if (that.currentRequest) {
+ that.currentRequest.abort();
+ that.currentRequest = null;
+ }
+ },
+
+ setOptions: function (suppliedOptions) {
+ var that = this,
+ options = $.extend({}, that.options, suppliedOptions);
+
+ that.isLocal = Array.isArray(options.lookup);
+
+ if (that.isLocal) {
+ options.lookup = that.verifySuggestionsFormat(options.lookup);
+ }
+
+ options.orientation = that.validateOrientation(options.orientation, 'bottom');
+
+ // Adjust height, width and z-index:
+ $(that.suggestionsContainer).css({
+ 'max-height': options.maxHeight + 'px',
+ 'width': options.width + 'px',
+ 'z-index': options.zIndex
+ });
+
+ this.options = options;
+ },
+
+
+ clearCache: function () {
+ this.cachedResponse = {};
+ this.badQueries = [];
+ },
+
+ clear: function () {
+ this.clearCache();
+ this.currentValue = '';
+ this.suggestions = [];
+ },
+
+ disable: function () {
+ var that = this;
+ that.disabled = true;
+ clearTimeout(that.onChangeTimeout);
+ that.abortAjax();
+ },
+
+ enable: function () {
+ this.disabled = false;
+ },
+
+ fixPosition: function () {
+ // Use only when container has already its content
+
+ var that = this,
+ $container = $(that.suggestionsContainer),
+ containerParent = $container.parent().get(0);
+ // Fix position automatically when appended to body.
+ // In other cases force parameter must be given.
+ if (containerParent !== document.body && !that.options.forceFixPosition) {
+ return;
+ }
+
+ // Choose orientation
+ var orientation = that.options.orientation,
+ containerHeight = $container.outerHeight(),
+ height = that.el.outerHeight(),
+ offset = that.el.offset(),
+ styles = { 'top': offset.top, 'left': offset.left };
+
+ if (orientation === 'auto') {
+ var viewPortHeight = $(window).height(),
+ scrollTop = $(window).scrollTop(),
+ topOverflow = -scrollTop + offset.top - containerHeight,
+ bottomOverflow = scrollTop + viewPortHeight - (offset.top + height + containerHeight);
+
+ orientation = (Math.max(topOverflow, bottomOverflow) === topOverflow) ? 'top' : 'bottom';
+ }
+
+ if (orientation === 'top') {
+ styles.top += -containerHeight;
+ } else {
+ styles.top += height;
+ }
+
+ // If container is not positioned to body,
+ // correct its position using offset parent offset
+ if(containerParent !== document.body) {
+ var opacity = $container.css('opacity'),
+ parentOffsetDiff;
+
+ if (!that.visible){
+ $container.css('opacity', 0).show();
+ }
+
+ parentOffsetDiff = $container.offsetParent().offset();
+ styles.top -= parentOffsetDiff.top;
+ styles.top += containerParent.scrollTop;
+ styles.left -= parentOffsetDiff.left;
+
+ if (!that.visible){
+ $container.css('opacity', opacity).hide();
+ }
+ }
+
+ if (that.options.width === 'auto') {
+ styles.width = that.el.outerWidth() + 'px';
+ }
+
+ $container.css(styles);
+ },
+
+ isCursorAtEnd: function () {
+ var that = this,
+ valLength = that.el.val().length,
+ selectionStart = that.element.selectionStart,
+ range;
+
+ if (typeof selectionStart === 'number') {
+ return selectionStart === valLength;
+ }
+ if (document.selection) {
+ range = document.selection.createRange();
+ range.moveStart('character', -valLength);
+ return valLength === range.text.length;
+ }
+ return true;
+ },
+
+ onKeyPress: function (e) {
+ var that = this;
+
+ // If suggestions are hidden and user presses arrow down, display suggestions:
+ if (!that.disabled && !that.visible && e.which === keys.DOWN && that.currentValue) {
+ that.suggest();
+ return;
+ }
+
+ if (that.disabled || !that.visible) {
+ return;
+ }
+
+ switch (e.which) {
+ case keys.ESC:
+ that.el.val(that.currentValue);
+ that.hide();
+ break;
+ case keys.RIGHT:
+ if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
+ that.selectHint();
+ break;
+ }
+ return;
+ case keys.TAB:
+ if (that.hint && that.options.onHint) {
+ that.selectHint();
+ return;
+ }
+ if (that.selectedIndex === -1) {
+ that.hide();
+ return;
+ }
+ that.select(that.selectedIndex);
+ if (that.options.tabDisabled === false) {
+ return;
+ }
+ break;
+ case keys.RETURN:
+ if (that.selectedIndex === -1) {
+ that.hide();
+ return;
+ }
+ that.select(that.selectedIndex);
+ break;
+ case keys.UP:
+ that.moveUp();
+ break;
+ case keys.DOWN:
+ that.moveDown();
+ break;
+ default:
+ return;
+ }
+
+ // Cancel event if function did not return:
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ },
+
+ onKeyUp: function (e) {
+ var that = this;
+
+ if (that.disabled) {
+ return;
+ }
+
+ switch (e.which) {
+ case keys.UP:
+ case keys.DOWN:
+ return;
+ }
+
+ clearTimeout(that.onChangeTimeout);
+
+ if (that.currentValue !== that.el.val()) {
+ that.findBestHint();
+ if (that.options.deferRequestBy > 0) {
+ // Defer lookup in case when value changes very quickly:
+ that.onChangeTimeout = setTimeout(function () {
+ that.onValueChange();
+ }, that.options.deferRequestBy);
+ } else {
+ that.onValueChange();
+ }
+ }
+ },
+
+ onValueChange: function () {
+ if (this.ignoreValueChange) {
+ this.ignoreValueChange = false;
+ return;
+ }
+
+ var that = this,
+ options = that.options,
+ value = that.el.val(),
+ query = that.getQuery(value);
+
+ if (that.selection && that.currentValue !== query) {
+ that.selection = null;
+ (options.onInvalidateSelection || $.noop).call(that.element);
+ }
+
+ clearTimeout(that.onChangeTimeout);
+ that.currentValue = value;
+ that.selectedIndex = -1;
+
+ // Check existing suggestion for the match before proceeding:
+ if (options.triggerSelectOnValidInput && that.isExactMatch(query)) {
+ that.select(0);
+ return;
+ }
+
+ if (query.length < options.minChars) {
+ that.hide();
+ } else {
+ that.getSuggestions(query);
+ }
+ },
+
+ isExactMatch: function (query) {
+ var suggestions = this.suggestions;
+
+ return (suggestions.length === 1 && suggestions[0].value.toLowerCase() === query.toLowerCase());
+ },
+
+ getQuery: function (value) {
+ var delimiter = this.options.delimiter,
+ parts;
+
+ if (!delimiter) {
+ return value;
+ }
+ parts = value.split(delimiter);
+ return $.trim(parts[parts.length - 1]);
+ },
+
+ getSuggestionsLocal: function (query) {
+ var that = this,
+ options = that.options,
+ queryLowerCase = query.toLowerCase(),
+ filter = options.lookupFilter,
+ limit = parseInt(options.lookupLimit, 10),
+ data;
+
+ data = {
+ suggestions: $.grep(options.lookup, function (suggestion) {
+ return filter(suggestion, query, queryLowerCase);
+ })
+ };
+
+ if (limit && data.suggestions.length > limit) {
+ data.suggestions = data.suggestions.slice(0, limit);
+ }
+
+ return data;
+ },
+
+ getSuggestions: function (q) {
+ var response,
+ that = this,
+ options = that.options,
+ serviceUrl = options.serviceUrl,
+ params,
+ cacheKey,
+ ajaxSettings;
+
+ options.params[options.paramName] = q;
+
+ if (options.onSearchStart.call(that.element, options.params) === false) {
+ return;
+ }
+
+ params = options.ignoreParams ? null : options.params;
+
+ if ($.isFunction(options.lookup)){
+ options.lookup(q, function (data) {
+ that.suggestions = data.suggestions;
+ that.suggest();
+ options.onSearchComplete.call(that.element, q, data.suggestions);
+ });
+ return;
+ }
+
+ if (that.isLocal) {
+ response = that.getSuggestionsLocal(q);
+ } else {
+ if ($.isFunction(serviceUrl)) {
+ serviceUrl = serviceUrl.call(that.element, q);
+ }
+ cacheKey = serviceUrl + '?' + $.param(params || {});
+ response = that.cachedResponse[cacheKey];
+ }
+
+ if (response && Array.isArray(response.suggestions)) {
+ that.suggestions = response.suggestions;
+ that.suggest();
+ options.onSearchComplete.call(that.element, q, response.suggestions);
+ } else if (!that.isBadQuery(q)) {
+ that.abortAjax();
+
+ ajaxSettings = {
+ url: serviceUrl,
+ data: params,
+ type: options.type,
+ dataType: options.dataType
+ };
+
+ $.extend(ajaxSettings, options.ajaxSettings);
+
+ that.currentRequest = $.ajax(ajaxSettings).done(function (data) {
+ var result;
+ that.currentRequest = null;
+ result = options.transformResult(data, q);
+ that.processResponse(result, q, cacheKey);
+ options.onSearchComplete.call(that.element, q, result.suggestions);
+ }).fail(function (jqXHR, textStatus, errorThrown) {
+ options.onSearchError.call(that.element, q, jqXHR, textStatus, errorThrown);
+ });
+ } else {
+ options.onSearchComplete.call(that.element, q, []);
+ }
+ },
+
+ isBadQuery: function (q) {
+ if (!this.options.preventBadQueries){
+ return false;
+ }
+
+ var badQueries = this.badQueries,
+ i = badQueries.length;
+
+ while (i--) {
+ if (q.indexOf(badQueries[i]) === 0) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ hide: function () {
+ var that = this,
+ container = $(that.suggestionsContainer);
+
+ if ($.isFunction(that.options.onHide) && that.visible) {
+ that.options.onHide.call(that.element, container);
+ }
+
+ that.visible = false;
+ that.selectedIndex = -1;
+ clearTimeout(that.onChangeTimeout);
+ $(that.suggestionsContainer).hide();
+ that.signalHint(null);
+ },
+
+ suggest: function () {
+ if (!this.suggestions.length) {
+ if (this.options.showNoSuggestionNotice) {
+ this.noSuggestions();
+ } else {
+ this.hide();
+ }
+ return;
+ }
+
+ var that = this,
+ options = that.options,
+ groupBy = options.groupBy,
+ formatResult = options.formatResult,
+ value = that.getQuery(that.currentValue),
+ className = that.classes.suggestion,
+ classSelected = that.classes.selected,
+ container = $(that.suggestionsContainer),
+ noSuggestionsContainer = $(that.noSuggestionsContainer),
+ beforeRender = options.beforeRender,
+ html = '',
+ category,
+ formatGroup = function (suggestion, index) {
+ var currentCategory = suggestion.data[groupBy];
+
+ if (category === currentCategory){
+ return '';
+ }
+
+ category = currentCategory;
+
+ return options.formatGroup(suggestion, category);
+ };
+
+ if (options.triggerSelectOnValidInput && that.isExactMatch(value)) {
+ that.select(0);
+ return;
+ }
+
+ // Build suggestions inner HTML:
+ $.each(that.suggestions, function (i, suggestion) {
+ if (groupBy){
+ html += formatGroup(suggestion, value, i);
+ }
+
+ html += '' + formatResult(suggestion, value, i) + '
';
+ });
+
+ this.adjustContainerWidth();
+
+ noSuggestionsContainer.detach();
+ container.html(html);
+
+ if ($.isFunction(beforeRender)) {
+ beforeRender.call(that.element, container, that.suggestions);
+ }
+
+ that.fixPosition();
+ container.show();
+
+ // Select first value by default:
+ if (options.autoSelectFirst) {
+ that.selectedIndex = 0;
+ container.scrollTop(0);
+ container.children('.' + className).first().addClass(classSelected);
+ }
+
+ that.visible = true;
+ that.findBestHint();
+ },
+
+ noSuggestions: function() {
+ var that = this,
+ beforeRender = that.options.beforeRender,
+ container = $(that.suggestionsContainer),
+ noSuggestionsContainer = $(that.noSuggestionsContainer);
+
+ this.adjustContainerWidth();
+
+ // Some explicit steps. Be careful here as it easy to get
+ // noSuggestionsContainer removed from DOM if not detached properly.
+ noSuggestionsContainer.detach();
+
+ // clean suggestions if any
+ container.empty();
+ container.append(noSuggestionsContainer);
+
+ if ($.isFunction(beforeRender)) {
+ beforeRender.call(that.element, container, that.suggestions);
+ }
+
+ that.fixPosition();
+
+ container.show();
+ that.visible = true;
+ },
+
+ adjustContainerWidth: function() {
+ var that = this,
+ options = that.options,
+ width,
+ container = $(that.suggestionsContainer);
+
+ // If width is auto, adjust width before displaying suggestions,
+ // because if instance was created before input had width, it will be zero.
+ // Also it adjusts if input width has changed.
+ if (options.width === 'auto') {
+ width = that.el.outerWidth();
+ container.css('width', width > 0 ? width : 300);
+ } else if(options.width === 'flex') {
+ // Trust the source! Unset the width property so it will be the max length
+ // the containing elements.
+ container.css('width', '');
+ }
+ },
+
+ findBestHint: function () {
+ var that = this,
+ value = that.el.val().toLowerCase(),
+ bestMatch = null;
+
+ if (!value) {
+ return;
+ }
+
+ $.each(that.suggestions, function (i, suggestion) {
+ var foundMatch = suggestion.value.toLowerCase().indexOf(value) === 0;
+ if (foundMatch) {
+ bestMatch = suggestion;
+ }
+ return !foundMatch;
+ });
+
+ that.signalHint(bestMatch);
+ },
+
+ signalHint: function (suggestion) {
+ var hintValue = '',
+ that = this;
+ if (suggestion) {
+ hintValue = that.currentValue + suggestion.value.substr(that.currentValue.length);
+ }
+ if (that.hintValue !== hintValue) {
+ that.hintValue = hintValue;
+ that.hint = suggestion;
+ (this.options.onHint || $.noop)(hintValue);
+ }
+ },
+
+ verifySuggestionsFormat: function (suggestions) {
+ // If suggestions is string array, convert them to supported format:
+ if (suggestions.length && typeof suggestions[0] === 'string') {
+ return $.map(suggestions, function (value) {
+ return { value: value, data: null };
+ });
+ }
+
+ return suggestions;
+ },
+
+ validateOrientation: function(orientation, fallback) {
+ orientation = $.trim(orientation || '').toLowerCase();
+
+ if($.inArray(orientation, ['auto', 'bottom', 'top']) === -1){
+ orientation = fallback;
+ }
+
+ return orientation;
+ },
+
+ processResponse: function (result, originalQuery, cacheKey) {
+ var that = this,
+ options = that.options;
+
+ result.suggestions = that.verifySuggestionsFormat(result.suggestions);
+
+ // Cache results if cache is not disabled:
+ if (!options.noCache) {
+ that.cachedResponse[cacheKey] = result;
+ if (options.preventBadQueries && !result.suggestions.length) {
+ that.badQueries.push(originalQuery);
+ }
+ }
+
+ // Return if originalQuery is not matching current query:
+ if (originalQuery !== that.getQuery(that.currentValue)) {
+ return;
+ }
+
+ that.suggestions = result.suggestions;
+ that.suggest();
+ },
+
+ activate: function (index) {
+ var that = this,
+ activeItem,
+ selected = that.classes.selected,
+ container = $(that.suggestionsContainer),
+ children = container.find('.' + that.classes.suggestion);
+
+ container.find('.' + selected).removeClass(selected);
+
+ that.selectedIndex = index;
+
+ if (that.selectedIndex !== -1 && children.length > that.selectedIndex) {
+ activeItem = children.get(that.selectedIndex);
+ $(activeItem).addClass(selected);
+ return activeItem;
+ }
+
+ return null;
+ },
+
+ selectHint: function () {
+ var that = this,
+ i = $.inArray(that.hint, that.suggestions);
+
+ that.select(i);
+ },
+
+ select: function (i) {
+ var that = this;
+ that.hide();
+ that.onSelect(i);
+ },
+
+ moveUp: function () {
+ var that = this;
+
+ if (that.selectedIndex === -1) {
+ return;
+ }
+
+ if (that.selectedIndex === 0) {
+ $(that.suggestionsContainer).children('.' + that.classes.suggestion).first().removeClass(that.classes.selected);
+ that.selectedIndex = -1;
+ that.ignoreValueChange = false;
+ that.el.val(that.currentValue);
+ that.findBestHint();
+ return;
+ }
+
+ that.adjustScroll(that.selectedIndex - 1);
+ },
+
+ moveDown: function () {
+ var that = this;
+
+ if (that.selectedIndex === (that.suggestions.length - 1)) {
+ return;
+ }
+
+ that.adjustScroll(that.selectedIndex + 1);
+ },
+
+ adjustScroll: function (index) {
+ var that = this,
+ activeItem = that.activate(index);
+
+ if (!activeItem) {
+ return;
+ }
+
+ var offsetTop,
+ upperBound,
+ lowerBound,
+ heightDelta = $(activeItem).outerHeight();
+
+ offsetTop = activeItem.offsetTop;
+ upperBound = $(that.suggestionsContainer).scrollTop();
+ lowerBound = upperBound + that.options.maxHeight - heightDelta;
+
+ if (offsetTop < upperBound) {
+ $(that.suggestionsContainer).scrollTop(offsetTop);
+ } else if (offsetTop > lowerBound) {
+ $(that.suggestionsContainer).scrollTop(offsetTop - that.options.maxHeight + heightDelta);
+ }
+
+ if (!that.options.preserveInput) {
+ // During onBlur event, browser will trigger "change" event,
+ // because value has changed, to avoid side effect ignore,
+ // that event, so that correct suggestion can be selected
+ // when clicking on suggestion with a mouse
+ that.ignoreValueChange = true;
+ that.el.val(that.getValue(that.suggestions[index].value));
+ }
+
+ that.signalHint(null);
+ },
+
+ onSelect: function (index) {
+ var that = this,
+ onSelectCallback = that.options.onSelect,
+ suggestion = that.suggestions[index];
+
+ that.currentValue = that.getValue(suggestion.value);
+
+ if (that.currentValue !== that.el.val() && !that.options.preserveInput) {
+ that.el.val(that.currentValue);
+ }
+
+ that.signalHint(null);
+ that.suggestions = [];
+ that.selection = suggestion;
+
+ if ($.isFunction(onSelectCallback)) {
+ onSelectCallback.call(that.element, suggestion);
+ }
+ },
+
+ getValue: function (value) {
+ var that = this,
+ delimiter = that.options.delimiter,
+ currentValue,
+ parts;
+
+ if (!delimiter) {
+ return value;
+ }
+
+ currentValue = that.currentValue;
+ parts = currentValue.split(delimiter);
+
+ if (parts.length === 1) {
+ return value;
+ }
+
+ return currentValue.substr(0, currentValue.length - parts[parts.length - 1].length) + value;
+ },
+
+ dispose: function () {
+ var that = this;
+ that.el.off('.autocomplete').removeData('autocomplete');
+ $(window).off('resize.autocomplete', that.fixPositionCapture);
+ $(that.suggestionsContainer).remove();
+ }
+ };
+
+ // Create chainable jQuery plugin:
+ $.fn.devbridgeAutocomplete = function (options, args) {
+ var dataKey = 'autocomplete';
+ // If function invoked without argument return
+ // instance of the first matched element:
+ if (!arguments.length) {
+ return this.first().data(dataKey);
+ }
+
+ return this.each(function () {
+ var inputElement = $(this),
+ instance = inputElement.data(dataKey);
+
+ if (typeof options === 'string') {
+ if (instance && typeof instance[options] === 'function') {
+ instance[options](args);
+ }
+ } else {
+ // If instance already exists, destroy it:
+ if (instance && instance.dispose) {
+ instance.dispose();
+ }
+ instance = new Autocomplete(this, options);
+ inputElement.data(dataKey, instance);
+ }
+ });
+ };
+
+ // Don't overwrite if it already exists
+ if (!$.fn.autocomplete) {
+ $.fn.autocomplete = $.fn.devbridgeAutocomplete;
+ }
+}));
diff --git a/core/media/jui/js/jquery.autocomplete.min.js b/core/media/jui/js/jquery.autocomplete.min.js
index d1687ec9..f56296ca 100644
--- a/core/media/jui/js/jquery.autocomplete.min.js
+++ b/core/media/jui/js/jquery.autocomplete.min.js
@@ -1,8 +1,8 @@
-/**
-* Ajax Autocomplete for jQuery, version 1.4.7
-* (c) 2017 Tomas Kirda
-*
-* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
-* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
-*/
+/**
+* Ajax Autocomplete for jQuery, version 1.4.7
+* (c) 2017 Tomas Kirda
+*
+* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
+* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
+*/
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend({},b.defaults,d),e.classes={selected:"autocomplete-selected",suggestion:"autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"$1 ").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/<(\/?strong)>/g,"<$1>")}function f(a,b){return''+b+"
"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('
').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange()},onBlur:function(){var a=this;a.blurTimeoutId=setTimeout(function(){a.hide()},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.lengthh&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+=''+f(b,g,a)+"
"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,eg&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.autocomplete||(a.fn.autocomplete=a.fn.devbridgeAutocomplete)});
\ No newline at end of file
diff --git a/deployed/EUCookieDirectiveLite/plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php b/deployed/EUCookieDirectiveLite/plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php
index 0bb774a9..10610845 100644
--- a/deployed/EUCookieDirectiveLite/plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php
+++ b/deployed/EUCookieDirectiveLite/plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite.php
@@ -1,166 +1,166 @@
-EU Cookie Directive .
-Version: 1.0.5
-Author: Channel Computing
-Author URI: http://www.channelcomputing.co.uk
-
-Copyright (C) 2011-2012, Channel Computing
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// no direct access
-defined( '_JEXEC' ) or die( 'Restricted access' );
-
-jimport( 'joomla.plugin.plugin' );
-
-/**
- * Joomla! EU Cookie Directive plugin
- *
- * @package Joomla
- * @subpackage System
- */
-class plgSystemEUCookieDirectiveLite extends JPlugin
-{
- /**
- * Constructor
- *
- * For php4 compatability we must not use the __constructor as a constructor for plugins
- * because func_get_args ( void ) returns a copy of all passed arguments NOT references.
- * This causes problems with cross-referencing necessary for the observer design pattern.
- *
- * @access protected
- * @param object $subject The object to observe
- * @param array $config An array that holds the plugin configuration
- * @since 1.0
- */
- function plgSystemEUCookieDirectiveLite(& $subject, $config)
- {
- parent::__construct($subject, $config);
-
- }
-
- /**
- * Start the output
- *
- */
- function onAfterRender()
- {
-
- global $mainframe, $database;
-
- //get Params
- $message = $this->params->get('warningMessage', '');
- $privacyLink = $this->params->get('detailsUrl', 'index.php');
- $width = $this->params->get('width', '0');
-
- //deal with the width options
- if ($width == "0") {
- $width = "100%";
- } else {
- $width = $width . "px";
- }
-
- $document = JFactory::getDocument();
- $doctype = $document->getType();
- $app = JFactory::getApplication();
-
- $ICON_FOLDER = JURI::root() . 'plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite/images/';
-
- if ( $app->getClientId() === 0 ) {
-
- $strOutputHTML = "";
- $style = '';
-
- $hide = "\n".''."\n";
-
- //Define paths for portability
- //$SCRIPTS_FOLDER = JURI::root() . 'plugins/system/EUCookieDirective/';
- $SCRIPTS_FOLDER = JURI::root() . 'plugins/system/EUCookieDirectiveLite/EUCookieDirectiveLite/';
- $cookiescript = ''."\n";
-
- $strOutputHTML = "";
- $strOutputHTML .= '';
- $strOutputHTML .= '
';
- $strOutputHTML .= '
';
- $strOutputHTML .= '';
- $strOutputHTML .= '';
- $strOutputHTML .= '';
- $strOutputHTML .= '
' . $message . ' To find out more about the cookies we use and how to delete them, see our privacy policy .
';
- $strOutputHTML .= '
';
- $strOutputHTML .= ' ';
- $strOutputHTML .= ' ';
- $strOutputHTML .= '';
- $strOutputHTML .= ' ';
- $strOutputHTML .= 'I accept cookies from this site. ';
- $strOutputHTML .= 'Agree
';
- $strOutputHTML .= ' ';
- $strOutputHTML .= '';
- $strOutputHTML .= '';
- $strOutputHTML .= ' ';
- $strOutputHTML .= ' ';
- $strOutputHTML .= '
';
- $strOutputHTML .= '
';
- $strOutputHTML .= '
';
-
- //Only write the HTML Output if the cookie has not been set as "accepted"
- if(!isset($_COOKIE['cookieAcceptanceCookie']) || $_COOKIE['cookieAcceptanceCookie'] != "accepted")
- {
-
- $body = JResponse::getBody();
- $body = str_replace('', $style.'', $body);
- $body = str_replace('