Compare commits

..

9 Commits

Author SHA1 Message Date
4af8e06eff Merge pull request 'chore: remove developer backup cruft from the source tree' (#9) from chore/remove-dev-cruft into main
Reviewed-on: #9
2026-07-23 07:25:32 +02:00
24f8e95c92 Merge pull request 'fix(baseline): catch .htaccess php-enable persistence in the safety-net' (#8) from fix/htaccess-safety-net into main
Reviewed-on: #8
2026-07-23 07:24:47 +02:00
imre.agent
4e4046f093 chore: remove developer backup cruft from the source tree
Stray .old/.orig/.new developer backups (com_showroom uploadgroup,
jckman restorers/toolbar, maintenance2 tips.php) do not belong in a
clean baseline source — they are not deployed code and would only add
noise to the baseline. Remove them at the source rather than filtering
them in build-baseline.sh (the source is the right place to fix this).

The cadline/backend/maintenance SUBMODULE (maintenance.git) also holds
a tips.php.orig — that must be removed in the submodule repo separately.

Ref: cadline/infra#180
2026-07-22 08:16:02 +02:00
imre.agent
ca4d61d6c0 fix(baseline): catch .htaccess php-enable persistence in safety-net
The malware safety-net missed .htaccess/.htaccess.json droppers that
enable PHP on non-.php extensions (AddType/AddHandler
application/x-httpd-php .json, php_flag engine on): they carry no
<?php tag and are not *.php.json, so filters (a)/(b)/(c) all skipped
them. One such file (deployed/helix3/.../shaper_helix3/.htaccess.json)
had entered the source repo and was built into the baseline (B:match),
blinding the detector against itself.

Add safety-net section (d) mirroring the malware_htaccess_php_enable
YARA rule (illusion/hids#183), remove the file from the source tree,
and add its path to malware-iocs.paths.

Ref: cadline/infra#180
2026-07-22 07:52:52 +02:00
974beee429 Merge pull request 'chore: normalize line endings to LF per .gitattributes + bump backend submodules' (#7) from chore/lf-normalization into main
Reviewed-on: #7
2026-07-21 19:30:00 +02:00
846a6cdb6a chore(submodules): bump backend submodules to 2026-07-17 state 2026-07-21 18:49:51 +02:00
a7dc9bcfab chore: renormalize stored line endings to LF per .gitattributes 2026-07-21 18:46:11 +02:00
8318cae110 chore(submodules): bump backend submodules to 2026-07-17 state 2026-07-21 18:38:59 +02:00
f8ed190894 Merge pull request 'Add .gitattributes: force LF line-endings for deterministic baseline' (#5) from add-gitattributes into main
Reviewed-on: #5
2026-07-19 18:59:57 +02:00
2523 changed files with 378670 additions and 380964 deletions

2
.gitmodules vendored
View File

@ -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

View File

@ -102,4 +102,14 @@ if [ -f "$ROOT/malware-iocs.paths" ]; then
done < "$ROOT/malware-iocs.paths"
fi
# (d) .htaccess-based PHP-enable persistence — apache-config droppers the
# content/extension filters above miss (no <?php tag, not *.php.json).
# Mirrors the malware_htaccess_php_enable YARA rule (illusion/hids#183).
log "exclude: .htaccess-based php-enable persistence"
find "$OUT" -type f \( -name '.htaccess' -o -name '.htaccess.*' \) 2>/dev/null | while IFS= read -r h; do
if grep -IlqE 'Add(Type|Handler)[[:space:]]+application/x-httpd-php[0-9]?[[:space:]]+\.(json|jpe?g|png|gif|txt|ico|css|html?|xml|svg|bak|log)|php_flag[[:space:]]+engine[[:space:]]+on' "$h" 2>/dev/null; then
log " drop (htaccess-php-enable): ${h#"$OUT"/}"; rm -f "$h"
fi
done
log "baseline built at: $OUT ($(find "$OUT" -type f | wc -l) files)"

@ -1 +1 @@
Subproject commit 423fec9b929b381339d71623fc621a998a6e3e0f
Subproject commit 6bd9cb2e1c0844e57fa9cad83ba2baa6e056418d

@ -1 +1 @@
Subproject commit 11f1a543340bb7a2f03c3647dca03b7bd79783d0
Subproject commit 7e8036235b05d493363791b46bb2ebdc33bb5f2e

View File

@ -1,544 +0,0 @@
<?php
/*******************************************************************************
* eredeti url: http://www.archlinexp.com/index.php?menu=tips2012&lang=hun&version=1&session=OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=
* eredeti url: http://old.archlinexp.com/tips/tips2009/hun/1/OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=/46.139.109.235
* új url: http://www.archlinexp.com/maintenance/tips.php?lang=hun&version=2&session=OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=
* logfilter=0 - csak a legfontosabb logok;
* logfilter=10 - minden logot küld;
******************************************************************************/
include ("config.php");
include ("version.php");
include ("functions.php");
include ("mtips.php");
if (!class_exists('crmHelper')) require_once("class/crmHelper.class.php");
error_log(print_r($_GET,TRUE),3,"../tmp/error_tips.log");
$version = New Version();
$mtips = New Mtips();
$user_lang_db = $user_lang = $origlang = (isset($_GET['lang']) ? trim($_GET['lang']) : NULL);
$user_version = (isset($_GET['version']) ? trim($_GET['version']) : NULL);
$user_ssID = (isset($_GET['session']) ? trim($_GET['session']) : NULL);
$user_IP = $_SERVER['REMOTE_ADDR'];
$osdata = '';
$time=time();
$namirialRangeMin=940001;
$namirialRangeMax=949999;
$BIMLadderRangeMin=920001;
$BIMLadderRangeMax=929999;
if( strstr($_SERVER['REQUEST_URI'],"ize") ) print $mtips->tips_src.$data['current_lang'].'/';
if(!$user_lang) { print('No language id given, try to add /en to the uri'); }
if(!is_numeric($user_version)) { print('Invalid version id sent: '.$user_version); }
if(!in_array($user_lang,$mtips->existing_lang)) { $user_lang = 'eng'; }
$user_lang = $mtips->lang_check($user_lang);
$settings = $mtips->read_settings($user_lang);
//get country name from ip
$locale=@file_get_contents("http://freegeoip.net/xml/".$user_IP,FALSE, stream_context_create(array('http'=>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 ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {print "user_lang_db: ".$user_lang_db." user_version: ".$user_version." user_ssID: ".$user_ssID; die(); }
if($user_lang_db && /*$user_version && */ $user_ssID!='')
{
$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
//error_log("decoded = ".print_r($decoded,FALSE)." pwd: ".$pwd." build: ".$build." user_version: ".$user_version." idokod: ".$idokod."\n",3,"../tmp/error.log");
if( $numdata >= 11 )
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID, $name, $email, $company, $phone, $newsletter) = split($separator, $decoded);
}
elseif( $numdata >= 6 )
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = split($separator, $decoded);
}
else
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod) = split($separator, $decoded);
}
//if ($_SERVER['REMOTE_ADDR']=='46.139.14.111') { print "decoded = ".print_r( explode("_",$decoded),FALSE)."\n\n<br>user_version: ".$user_version." , idokod: ".$idokod." npID: ".$npID." partnerID: ".$partnerID." pwd: ".$pwd; /*die();*/ }
<<<<<<< HEAD
if(isset($npID)){
$compid = crmHelper::AddOrUpdateComputer($npID);
}
=======
>>>>>>> f2ebce6b191a229c054099f929f7145b78d46007
/*******************************************************************************
*NAMIRIAL-os automata kulcskiadás és program létrehozás
******************************************************************************/
if (isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='2nt' && isset($idokod) && $idokod>'' && isset($pwd) && $pwd>'')
<<<<<<< HEAD
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = '2nt' LIMIT 1;");
=======
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
$res4=MySqlHelper::getInstance()->fetchAssoc();
if(empty($res4)){
$comp=array(
'computer_id'=>$npID,
'last_mod'=>date('Y-m-d',time()));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`computers`",$comp);
}
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
$compid=MySqlHelper::getInstance()->fetchAssoc();
$programVersion=substr($pwd, 7, 2);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid[0]['id']."' AND partnerID = '2nt' AND verID =".$programVersion." LIMIT 1;");
>>>>>>> f2ebce6b191a229c054099f929f7145b78d46007
$res=MySqlHelper::getInstance()->fetchAssoc();
//ba nincs ehhez a gephez meg non-profit program regisztralva
if (empty($res))
{
$hlNum=tryToAlloc($namirialRangeMin,$namirialRangeMax);
$arrIdokod=explode("-", $idokod);
$isid=$arrIdokod[1];
$type=substr($pwd, 6, 1);
$verid=substr($pwd, 7, 2);
$ver=$version->getVersion(array('verPassword8and9'=>$verid));
$interval=90;
$pass=generatePassword($hlNum,0,$type,$ver['verCode']);
$aktKod=generateTimeCode($pass,$isid,$interval);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`u_emails` WHERE `email`='{$email}' LIMIT 1;");
$exist=MySqlHelper::getInstance()->fetchAssoc();
if (!$exist) //ba elsodleges szempont, hogy a megadott email cimmel van-e crm bejegyzes
{
//ba felvesszuk a user-t
$userdata=array(
'strName'=>$name,
'strEMail'=>$email,
'strCompany'=>$company,
'strTel'=>$phone,
'old_db'=>'clusers_eng',
'nCtrID'=>39,
'dateInsert'=>$time);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`users`",$userdata);
MySqlHelper::getInstance()->query("SELECT nUserID as nUserID FROM `".CRMADATBAZIS."`.`users` WHERE strEMail='{$email}' AND strName='{$name}' limit 1");
$userQuery=MySqlHelper::getInstance()->fetchAssoc();
$userID = $userQuery[0]['nUserID'];
//ba felvesszuk az email cimet a userhez
$emaildata=array(
'email'=>$email,
'nUserID'=>$userID,
'newsletter'=>$newsletter
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_emails`",$emaildata);
}
else
{
//ba a meglevo userhez fogjuk kotni a programot
$userID=$exist[0]['nUserID'];
}
//ba regisztraljuk hozza a non-profit programot
$nonprofit=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);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$nonprofit);
//Namirial non-profit kód aktiválás beszúrása crm -> u_history táblába
$esemeny=array(
'nUserID'=>$userID,
'nTopicID'=>366,
'dateEvent'=>date('Y-m-d H:i:s',$time),
'strPlace'=>'',
'strInfo'=>'Namirial nonprofit kulcs aktiválás',
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s',$time));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",$esemeny);
$hardlock=array(
'hlNum'=>$hlNum,
'hlCtrID'=>39,
'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');
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$hardlock);
$program=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 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'=>8, // Non-profit
'prHlNum'=>$hlNum, // 99xxxx
'prManID'=>36, // web
'prStat'=>0,
'prHiType'=>1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$program);
$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
$hardlockID = $res[0]['hlID'];
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hardlockID}' limit 1");
$programQuery=MySqlHelper::getInstance()->fetchAssoc();
$pwd = $programQuery[0]['prPass'];
}
}
/*******************************************************************************
*BIMLadder-es automata kulcskiadás és program létrehozás
******************************************************************************/
else if (isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='kbl' && isset($idokod) && $idokod>'' && isset($pwd) && $pwd>'')
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = 'kbl' LIMIT 1;");
$res=MySqlHelper::getInstance()->fetchAssoc();
//ba nincs ehhez a gephez meg non-profit program regisztralva
if (empty($res))
{
$hlNum=tryToAlloc($BIMLadderRangeMin,$BIMLadderRangeMax);
$arrIdokod=explode("-", $idokod);
$isid=$arrIdokod[1];
$type=substr($pwd, 6, 1);
$verid=substr($pwd, 7, 2);
$ver=$version->getVersion(array('verPassword8and9'=>$verid));
$interval=30; //ba !!! nem 90!!!
$pass=generatePassword($hlNum,0,$type,$ver['verCode']);
$aktKod=generateTimeCode($pass,$isid,$interval);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`u_emails` WHERE `email`='{$email}' LIMIT 1;");
$exist=MySqlHelper::getInstance()->fetchAssoc();
if (!$exist) //ba elsodleges szempont, hogy a megadott email cimmel van-e crm bejegyzes
{
//ba felvesszuk a user-t
$userdata=array(
'strName'=>$name,
'strEMail'=>$email,
'strCompany'=>$company,
'strTel'=>$phone,
'old_db'=>'clusers_eng',
'nCtrID'=>82,
'dateInsert'=>$time);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`users`",$userdata);
MySqlHelper::getInstance()->query("SELECT nUserID as nUserID FROM `".CRMADATBAZIS."`.`users` WHERE strEMail='{$email}' AND strName='{$name}' limit 1");
$userQuery=MySqlHelper::getInstance()->fetchAssoc();
$userID = $userQuery[0]['nUserID'];
//ba felvesszuk az email cimet a userhez
$emaildata=array(
'email'=>$email,
'nUserID'=>$userID,
'newsletter'=>$newsletter
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_emails`",$emaildata);
}
else
{
//ba a meglevo userhez fogjuk kotni a programot
$userID=$exist[0]['nUserID'];
}
//ba regisztraljuk hozza a non-profit programot
$nonprofit=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('+30 day', $time)), //ba 30 nap!!!!
'activation_datetime'=>date('Y-m-d H:i:s',$time),
'old_db'=>'clusers_eng',
'partnerID'=>$partnerID,
'enabled'=>'Y',
'computer_id'=>$compid);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$nonprofit);
//BIMLadder non-profit kód aktiválás beszúrása crm -> u_history táblába
$esemeny=array(
'nUserID'=>$userID,
'nTopicID'=>368,
'dateEvent'=>date('Y-m-d H:i:s',$time),
'strPlace'=>'',
'strInfo'=>'BIMLadder nonprofit kulcs aktiválás',
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s',$time));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",$esemeny);
$hardlock=array(
'hlNum'=>$hlNum,
'hlCtrID'=>82,
'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');
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$hardlock);
$program=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 nap helyett 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'=>9,
'prHlNum'=>$hlNum, // 99xxxx
'prManID'=>36, // web
'prStat'=>0,
'prHiType'=>1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$program);
$pwd = $pass; //ba 2018.11.26. mostantol az uj jelszava a usernek a most generalt, 92-es lesz, nem pedig a 91-es!
}
else
{
//ba ehhez a gephez mar volt non-profit regisztracio, keressuk ki a sorozatszamot neki
$hardlockID = $res[0]['hlID'];
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hardlockID}' limit 1");
$programQuery=MySqlHelper::getInstance()->fetchAssoc();
$pwd = $programQuery[0]['prPass'];
}
}
//insert stats to the userstats table
$stats = array(
'usLang' => $user_lang_db,
'usDate' => time(),
'usPwd' => $pwd,
'usVer'=>substr($pwd,7,2),
'usCompID' => $compID,
'usCtrID' => $ctrID,
'usBuild' => $build,
'usCtrName' => $ctrname,
'usIP' => $user_IP,
'usOSData' => $osdata,
// 'usISID' => $isid,
);
$liveKey = $version->isLiveKey($pwd) == 'true'; // Live kulcs 2019
$softwareKey = $version->isSoftwareKey($pwd) == 'true'; // Software kulcs 2019
if($softwareKey)
$stats['usISID'] = substr($idokod, 5, 4);
if (trim($usGCMan)>'' && trim($usGCType)>'' && trim($usGCDriverVer)>'')
{
$arrGCData=array(
'usGCMan'=>trim($usGCMan), // graphic card manufacture
'usGCType'=>trim($usGCType), // graphic card type
'usGCDriverVer'=>trim($usGCDriverVer), // graphic card driver version
);
$stats['usGCMan']=$arrGCData['usGCMan'];
$stats['usGCType']=$arrGCData['usGCType'];
$stats['usGCDriverVer']=$arrGCData['usGCDriverVer'];
}
if($softwareKey)
{
if($liveKey || in_array(substr($pwd,0,2), array('99','98','95')) ) // Azok a programok, amik regisztrálódnak a CRM-ben 2019
{
$msh->query("SELECT hlCtrID FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($pwd,0,6)."'");
$res=$msh->fetchAssoc();
$hlnum=$res[0];
if(isset($hlnum['hlCtrID'])) $stats['usHlCtrID'] = $hlnum['hlCtrID'];
}
}
else
{
$stats['usHlCtrID'] = substr($pwd,0,2);
}
$msh2->insert('userstats2013',$stats);
$usstatid=$msh2->getInsertedId();
}
else
{
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {print "haha"; die();}
$rec=array(
'hiba'=>"Valami hianyzik: {$pwd}\nlang: {$user_lang_db}\nverzio: {$user_version}\nssID: {$user_ssID}",
'datum'=>date('Y-m-d H:i:s',time())
);
$msh2->insert('a_hibak',$rec);
}
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {var_dump($pwd); die();}
//loading the xml tips if necessary
if(!$settings)
{
print('Unable to load the corresponding settings.xml file!');
$rec=array(
'hiba'=>"beallitas hianyzik: {$pwd}\nlang: {$user_lang_db}\nverzio: {$user_version}\nssID: {$user_ssID}",
'datum'=>date('Y-m-d H:i:s',time())
);
// if($_SERVER['REMOTE_ADDR'] == "188.36.217.1") var_dump($rec);
$msh2->insert('a_hibak',$rec);
}
else
{
if(substr($pwd,7,2)>29 && substr($pwd,0,2)!='96')
{
$isid=($softwareKey ? substr($idokod,5,4) : substr($pwd,0,2).substr($pwd,7,2));
$kulcsszam = substr($pwd,0,6);
$msh->query("SELECT hlStat,hlUser FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='{$kulcsszam}'");
$res=$msh->fetchAssoc();
$kulcs=$res[0];
$aktivalokod = $version->ujaktivalasikod2($pwd,$isid,$idokod);
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {var_dump($aktivalokod); die();}
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
{
$msh->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE kulcs='".$kulcsszam."';");
$tmp=$msh->fetchAssoc();
$darab=(int)$tmp[0]['darab'];
$msh->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`u_history` WHERE `nUserID`=".(int)$kulcs['hlUser']." AND nTopicID IN (314,315);");
$tmp=$msh->fetchAssoc();
$esem=(int)$tmp[0]['darab'];
$msh->query("SELECT * FROM `".CRMADATBAZIS."`.`users` WHERE nUserID='".(int)$kulcs['hlUser']."';");
$usr=$msh->fetchAssoc();
$usr=$usr[0];
if (!empty($usr) && ($darab==0 || $esem==0))
{
$msh->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').': '.$kulcsszam,
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s'),
));
}
}
$virtualization = ($kulcs['hlStat']=='2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak
$valasz = ($aktivalokod!="") ? $aktivalokod : "(( nem kapott valaszt ))";
$version->_hibajelento("tips",substr($pwd,0,6),"programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$idokod}, valasz: ".$valasz,(isset($arrGCData)?$arrGCData:array()),(isset($usstatid)?$usstatid:NULL));
if(is_numeric($usstatid)) $msh2->update("userstats2013",array('valasz'=>$valasz),array('usID'=>$usstatid));
}
//logFilter
$logfilter=0;
if ($pwd>0)
{
$msh->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
$res=$msh->fetchAssoc();
$logfilter=$res[0]['prLogFilter'];
}
$verid=substr($pwd, 7, 2);
if($verid >= 36){
$hlnum = substr($pwd,0,6);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`hardlock_computers` WHERE hlNum='".$hlnum."' AND computer_id='".$compid."' LIMIT 1;");
$res=MySqlHelper::getInstance()->fetchAssoc();
if(empty($res)){
$comp=array(
'hlNum'=>$hlnum,
'computer_id'=>$compid);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock_computers`",$comp);
}
}
// if ($_SERVER['REMOTE_ADDR']!='46.139.109.235') return; //ba hibás válaszok ideiglenes kikötése
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"'.'?'.'>
<Tips>
<Tip lang="'.$settings->lang.'" version="'.$settings->version.'">
<path>'.str_replace('..','',$mtips->tips_src).$settings->lang.'/'.'</path>
</Tip>
'.((isset($aktivalokod) && $aktivalokod) ? '<actcode>'.$aktivalokod.'</actcode>' : '').'
'.((isset($virtualization) && $virtualization) ? '<Virtualization>'.$virtualization.'</Virtualization>' : '').'
'.((isset($usstatid) && (int)$usstatid>0) ? '<actid>'.(int)$usstatid.'</actid>' : '').'
<logfilter>'.$logfilter.'</logfilter>
<loginEnabled>'.($kulcsszam=='360006' ? 'true' : 'false').'</loginEnabled>
</Tips>';
}
?>

View File

@ -1,544 +0,0 @@
<?php
/*******************************************************************************
* eredeti url: http://www.archlinexp.com/index.php?menu=tips2012&lang=hun&version=1&session=OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=
* eredeti url: http://old.archlinexp.com/tips/tips2009/hun/1/OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=/46.139.109.235
* új url: http://www.archlinexp.com/maintenance/tips.php?lang=hun&version=2&session=OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=
* logfilter=0 - csak a legfontosabb logok;
* logfilter=10 - minden logot küld;
******************************************************************************/
include ("config.php");
include ("version.php");
include ("functions.php");
include ("mtips.php");
if (!class_exists('crmHelper')) require_once("class/crmHelper.class.php");
error_log(print_r($_GET,TRUE),3,"../tmp/error_tips.log");
$version = New Version();
$mtips = New Mtips();
$user_lang_db = $user_lang = $origlang = (isset($_GET['lang']) ? trim($_GET['lang']) : NULL);
$user_version = (isset($_GET['version']) ? trim($_GET['version']) : NULL);
$user_ssID = (isset($_GET['session']) ? trim($_GET['session']) : NULL);
$user_IP = $_SERVER['REMOTE_ADDR'];
$osdata = '';
$time=time();
$namirialRangeMin=940001;
$namirialRangeMax=949999;
$BIMLadderRangeMin=920001;
$BIMLadderRangeMax=929999;
if( strstr($_SERVER['REQUEST_URI'],"ize") ) print $mtips->tips_src.$data['current_lang'].'/';
if(!$user_lang) { print('No language id given, try to add /en to the uri'); }
if(!is_numeric($user_version)) { print('Invalid version id sent: '.$user_version); }
if(!in_array($user_lang,$mtips->existing_lang)) { $user_lang = 'eng'; }
$user_lang = $mtips->lang_check($user_lang);
$settings = $mtips->read_settings($user_lang);
//get country name from ip
$locale=@file_get_contents("http://freegeoip.net/xml/".$user_IP,FALSE, stream_context_create(array('http'=>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 ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {print "user_lang_db: ".$user_lang_db." user_version: ".$user_version." user_ssID: ".$user_ssID; die(); }
if($user_lang_db && /*$user_version && */ $user_ssID!='')
{
$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
//error_log("decoded = ".print_r($decoded,FALSE)." pwd: ".$pwd." build: ".$build." user_version: ".$user_version." idokod: ".$idokod."\n",3,"../tmp/error.log");
if( $numdata >= 11 )
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID, $name, $email, $company, $phone, $newsletter) = split($separator, $decoded);
}
elseif( $numdata >= 6 )
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = split($separator, $decoded);
}
else
{
list($empty, $pwd, $compID, $build, $ctrID, $idokod) = split($separator, $decoded);
}
//if ($_SERVER['REMOTE_ADDR']=='46.139.14.111') { print "decoded = ".print_r( explode("_",$decoded),FALSE)."\n\n<br>user_version: ".$user_version." , idokod: ".$idokod." npID: ".$npID." partnerID: ".$partnerID." pwd: ".$pwd; /*die();*/ }
<<<<<<< HEAD
if(isset($npID)){
$compid = crmHelper::AddOrUpdateComputer($npID);
}
=======
>>>>>>> f2ebce6b191a229c054099f929f7145b78d46007
/*******************************************************************************
*NAMIRIAL-os automata kulcskiadás és program létrehozás
******************************************************************************/
if (isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='2nt' && isset($idokod) && $idokod>'' && isset($pwd) && $pwd>'')
<<<<<<< HEAD
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = '2nt' LIMIT 1;");
=======
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
$res4=MySqlHelper::getInstance()->fetchAssoc();
if(empty($res4)){
$comp=array(
'computer_id'=>$npID,
'last_mod'=>date('Y-m-d',time()));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`computers`",$comp);
}
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
$compid=MySqlHelper::getInstance()->fetchAssoc();
$programVersion=substr($pwd, 7, 2);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid[0]['id']."' AND partnerID = '2nt' AND verID =".$programVersion." LIMIT 1;");
>>>>>>> f2ebce6b191a229c054099f929f7145b78d46007
$res=MySqlHelper::getInstance()->fetchAssoc();
//ba nincs ehhez a gephez meg non-profit program regisztralva
if (empty($res))
{
$hlNum=tryToAlloc($namirialRangeMin,$namirialRangeMax);
$arrIdokod=explode("-", $idokod);
$isid=$arrIdokod[1];
$type=substr($pwd, 6, 1);
$verid=substr($pwd, 7, 2);
$ver=$version->getVersion(array('verPassword8and9'=>$verid));
$interval=90;
$pass=generatePassword($hlNum,0,$type,$ver['verCode']);
$aktKod=generateTimeCode($pass,$isid,$interval);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`u_emails` WHERE `email`='{$email}' LIMIT 1;");
$exist=MySqlHelper::getInstance()->fetchAssoc();
if (!$exist) //ba elsodleges szempont, hogy a megadott email cimmel van-e crm bejegyzes
{
//ba felvesszuk a user-t
$userdata=array(
'strName'=>$name,
'strEMail'=>$email,
'strCompany'=>$company,
'strTel'=>$phone,
'old_db'=>'clusers_eng',
'nCtrID'=>39,
'dateInsert'=>$time);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`users`",$userdata);
MySqlHelper::getInstance()->query("SELECT nUserID as nUserID FROM `".CRMADATBAZIS."`.`users` WHERE strEMail='{$email}' AND strName='{$name}' limit 1");
$userQuery=MySqlHelper::getInstance()->fetchAssoc();
$userID = $userQuery[0]['nUserID'];
//ba felvesszuk az email cimet a userhez
$emaildata=array(
'email'=>$email,
'nUserID'=>$userID,
'newsletter'=>$newsletter
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_emails`",$emaildata);
}
else
{
//ba a meglevo userhez fogjuk kotni a programot
$userID=$exist[0]['nUserID'];
}
//ba regisztraljuk hozza a non-profit programot
$nonprofit=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);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$nonprofit);
//Namirial non-profit kód aktiválás beszúrása crm -> u_history táblába
$esemeny=array(
'nUserID'=>$userID,
'nTopicID'=>366,
'dateEvent'=>date('Y-m-d H:i:s',$time),
'strPlace'=>'',
'strInfo'=>'Namirial nonprofit kulcs aktiválás',
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s',$time));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",$esemeny);
$hardlock=array(
'hlNum'=>$hlNum,
'hlCtrID'=>39,
'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');
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$hardlock);
$program=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 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'=>8, // Non-profit
'prHlNum'=>$hlNum, // 99xxxx
'prManID'=>36, // web
'prStat'=>0,
'prHiType'=>1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$program);
$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
$hardlockID = $res[0]['hlID'];
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hardlockID}' limit 1");
$programQuery=MySqlHelper::getInstance()->fetchAssoc();
$pwd = $programQuery[0]['prPass'];
}
}
/*******************************************************************************
*BIMLadder-es automata kulcskiadás és program létrehozás
******************************************************************************/
else if (isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='kbl' && isset($idokod) && $idokod>'' && isset($pwd) && $pwd>'')
{
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = 'kbl' LIMIT 1;");
$res=MySqlHelper::getInstance()->fetchAssoc();
//ba nincs ehhez a gephez meg non-profit program regisztralva
if (empty($res))
{
$hlNum=tryToAlloc($BIMLadderRangeMin,$BIMLadderRangeMax);
$arrIdokod=explode("-", $idokod);
$isid=$arrIdokod[1];
$type=substr($pwd, 6, 1);
$verid=substr($pwd, 7, 2);
$ver=$version->getVersion(array('verPassword8and9'=>$verid));
$interval=30; //ba !!! nem 90!!!
$pass=generatePassword($hlNum,0,$type,$ver['verCode']);
$aktKod=generateTimeCode($pass,$isid,$interval);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`u_emails` WHERE `email`='{$email}' LIMIT 1;");
$exist=MySqlHelper::getInstance()->fetchAssoc();
if (!$exist) //ba elsodleges szempont, hogy a megadott email cimmel van-e crm bejegyzes
{
//ba felvesszuk a user-t
$userdata=array(
'strName'=>$name,
'strEMail'=>$email,
'strCompany'=>$company,
'strTel'=>$phone,
'old_db'=>'clusers_eng',
'nCtrID'=>82,
'dateInsert'=>$time);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`users`",$userdata);
MySqlHelper::getInstance()->query("SELECT nUserID as nUserID FROM `".CRMADATBAZIS."`.`users` WHERE strEMail='{$email}' AND strName='{$name}' limit 1");
$userQuery=MySqlHelper::getInstance()->fetchAssoc();
$userID = $userQuery[0]['nUserID'];
//ba felvesszuk az email cimet a userhez
$emaildata=array(
'email'=>$email,
'nUserID'=>$userID,
'newsletter'=>$newsletter
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_emails`",$emaildata);
}
else
{
//ba a meglevo userhez fogjuk kotni a programot
$userID=$exist[0]['nUserID'];
}
//ba regisztraljuk hozza a non-profit programot
$nonprofit=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('+30 day', $time)), //ba 30 nap!!!!
'activation_datetime'=>date('Y-m-d H:i:s',$time),
'old_db'=>'clusers_eng',
'partnerID'=>$partnerID,
'enabled'=>'Y',
'computer_id'=>$compid);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$nonprofit);
//BIMLadder non-profit kód aktiválás beszúrása crm -> u_history táblába
$esemeny=array(
'nUserID'=>$userID,
'nTopicID'=>368,
'dateEvent'=>date('Y-m-d H:i:s',$time),
'strPlace'=>'',
'strInfo'=>'BIMLadder nonprofit kulcs aktiválás',
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s',$time));
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",$esemeny);
$hardlock=array(
'hlNum'=>$hlNum,
'hlCtrID'=>82,
'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');
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$hardlock);
$program=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 nap helyett 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'=>9,
'prHlNum'=>$hlNum, // 99xxxx
'prManID'=>36, // web
'prStat'=>0,
'prHiType'=>1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$program);
$pwd = $pass; //ba 2018.11.26. mostantol az uj jelszava a usernek a most generalt, 92-es lesz, nem pedig a 91-es!
}
else
{
//ba ehhez a gephez mar volt non-profit regisztracio, keressuk ki a sorozatszamot neki
$hardlockID = $res[0]['hlID'];
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hardlockID}' limit 1");
$programQuery=MySqlHelper::getInstance()->fetchAssoc();
$pwd = $programQuery[0]['prPass'];
}
}
//insert stats to the userstats table
$stats = array(
'usLang' => $user_lang_db,
'usDate' => time(),
'usPwd' => $pwd,
'usVer'=>substr($pwd,7,2),
'usCompID' => $compID,
'usCtrID' => $ctrID,
'usBuild' => $build,
'usCtrName' => $ctrname,
'usIP' => $user_IP,
'usOSData' => $osdata,
// 'usISID' => $isid,
);
$liveKey = $version->isLiveKey($pwd) == 'true'; // Live kulcs 2019
$softwareKey = $version->isSoftwareKey($pwd) == 'true'; // Software kulcs 2019
if($softwareKey)
$stats['usISID'] = substr($idokod, 5, 4);
if (trim($usGCMan)>'' && trim($usGCType)>'' && trim($usGCDriverVer)>'')
{
$arrGCData=array(
'usGCMan'=>trim($usGCMan), // graphic card manufacture
'usGCType'=>trim($usGCType), // graphic card type
'usGCDriverVer'=>trim($usGCDriverVer), // graphic card driver version
);
$stats['usGCMan']=$arrGCData['usGCMan'];
$stats['usGCType']=$arrGCData['usGCType'];
$stats['usGCDriverVer']=$arrGCData['usGCDriverVer'];
}
if($softwareKey)
{
if($liveKey || in_array(substr($pwd,0,2), array('99','98','95')) ) // Azok a programok, amik regisztrálódnak a CRM-ben 2019
{
$msh->query("SELECT hlCtrID FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($pwd,0,6)."'");
$res=$msh->fetchAssoc();
$hlnum=$res[0];
if(isset($hlnum['hlCtrID'])) $stats['usHlCtrID'] = $hlnum['hlCtrID'];
}
}
else
{
$stats['usHlCtrID'] = substr($pwd,0,2);
}
$msh2->insert('userstats2013',$stats);
$usstatid=$msh2->getInsertedId();
}
else
{
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {print "haha"; die();}
$rec=array(
'hiba'=>"Valami hianyzik: {$pwd}\nlang: {$user_lang_db}\nverzio: {$user_version}\nssID: {$user_ssID}",
'datum'=>date('Y-m-d H:i:s',time())
);
$msh2->insert('a_hibak',$rec);
}
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {var_dump($pwd); die();}
//loading the xml tips if necessary
if(!$settings)
{
print('Unable to load the corresponding settings.xml file!');
$rec=array(
'hiba'=>"beallitas hianyzik: {$pwd}\nlang: {$user_lang_db}\nverzio: {$user_version}\nssID: {$user_ssID}",
'datum'=>date('Y-m-d H:i:s',time())
);
// if($_SERVER['REMOTE_ADDR'] == "188.36.217.1") var_dump($rec);
$msh2->insert('a_hibak',$rec);
}
else
{
if(substr($pwd,7,2)>29 && substr($pwd,0,2)!='96')
{
$isid=($softwareKey ? substr($idokod,5,4) : substr($pwd,0,2).substr($pwd,7,2));
$kulcsszam = substr($pwd,0,6);
$msh->query("SELECT hlStat,hlUser FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='{$kulcsszam}'");
$res=$msh->fetchAssoc();
$kulcs=$res[0];
$aktivalokod = $version->ujaktivalasikod2($pwd,$isid,$idokod);
//if ($_SERVER['REMOTE_ADDR']=='188.6.239.155') {var_dump($aktivalokod); die();}
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
{
$msh->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE kulcs='".$kulcsszam."';");
$tmp=$msh->fetchAssoc();
$darab=(int)$tmp[0]['darab'];
$msh->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`u_history` WHERE `nUserID`=".(int)$kulcs['hlUser']." AND nTopicID IN (314,315);");
$tmp=$msh->fetchAssoc();
$esem=(int)$tmp[0]['darab'];
$msh->query("SELECT * FROM `".CRMADATBAZIS."`.`users` WHERE nUserID='".(int)$kulcs['hlUser']."';");
$usr=$msh->fetchAssoc();
$usr=$usr[0];
if (!empty($usr) && ($darab==0 || $esem==0))
{
$msh->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').': '.$kulcsszam,
'nManagerID'=>36,
'insertDate'=>date('Y-m-d H:i:s'),
));
}
}
$virtualization = ($kulcs['hlStat']=='2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak
$valasz = ($aktivalokod!="") ? $aktivalokod : "(( nem kapott valaszt ))";
$version->_hibajelento("tips",substr($pwd,0,6),"programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$idokod}, valasz: ".$valasz,(isset($arrGCData)?$arrGCData:array()),(isset($usstatid)?$usstatid:NULL));
if(is_numeric($usstatid)) $msh2->update("userstats2013",array('valasz'=>$valasz),array('usID'=>$usstatid));
}
//logFilter
$logfilter=0;
if ($pwd>0)
{
$msh->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;");
$res=$msh->fetchAssoc();
$logfilter=$res[0]['prLogFilter'];
}
$verid=substr($pwd, 7, 2);
if($verid >= 36){
$hlnum = substr($pwd,0,6);
MySqlHelper::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`hardlock_computers` WHERE hlNum='".$hlnum."' AND computer_id='".$compid."' LIMIT 1;");
$res=MySqlHelper::getInstance()->fetchAssoc();
if(empty($res)){
$comp=array(
'hlNum'=>$hlnum,
'computer_id'=>$compid);
MySqlHelper::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock_computers`",$comp);
}
}
// if ($_SERVER['REMOTE_ADDR']!='46.139.109.235') return; //ba hibás válaszok ideiglenes kikötése
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"'.'?'.'>
<Tips>
<Tip lang="'.$settings->lang.'" version="'.$settings->version.'">
<path>'.str_replace('..','',$mtips->tips_src).$settings->lang.'/'.'</path>
</Tip>
'.((isset($aktivalokod) && $aktivalokod) ? '<actcode>'.$aktivalokod.'</actcode>' : '').'
'.((isset($virtualization) && $virtualization) ? '<Virtualization>'.$virtualization.'</Virtualization>' : '').'
'.((isset($usstatid) && (int)$usstatid>0) ? '<actid>'.(int)$usstatid.'</actid>' : '').'
<logfilter>'.$logfilter.'</logfilter>
<loginEnabled>'.($kulcsszam=='360006' ? 'true' : 'false').'</loginEnabled>
</Tips>';
}
?>

View File

@ -1,252 +0,0 @@
<?php
defined('_JEXEC') or die('Restricted access'); // No direct access to this file
jimport('joomla.application.component.modelitem'); // import Joomla modelitem library
class ShowroomModelUploadGroup extends JModelItem
{
protected $types;
protected $manufacture;
protected $manufactures;
protected $family;
protected $families;
protected $querystring;
protected $parents;
protected $parent;
protected $subcat;
protected $lang;
public function getTypes()
{
$session=&JFactory::getSession();
$lang=$session->get( 'sr_lang');//'hun';
if (!isset($this->types))
{
$db = JFactory::getDBO();
$db->setQuery("
SELECT `type`,`type_download`,`name_".$lang."` AS `name`,IF(LENGTH(name_".$lang.")>15,CONCAT(SUBSTRING(name_".$lang.",1,13),'...'),name_".$lang.") AS name_short, `desc_".$lang."` AS `desc`,REPLACE('".$this->typePath."','REPLACE',`type`) AS `img`,c.darab
FROM coll2_types t
LEFT OUTER JOIN (
SELECT COUNT(*) AS darab,x.tipus 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
) x GROUP BY x.tipus
) c ON c.tipus=t.`type`
WHERE c.darab>0
ORDER BY `name_".$lang."`;");
$this->types = $db->loadObjectList();
}
return $this->types;
}
public function getManufactures($type="")
{
$session=&JFactory::getSession();
$lang=$session->get( 'sr_lang');//'hun';
if (!isset($this->manufactures))
{
$db = JFactory::getDBO();
$db->setQuery("
SELECT id,group_id,name,IF( LENGTH(name)>16,CONCAT(SUBSTRING(name,1,14),'...'),name) AS name_short,dir,deleted,REPLACE('".$this->logoPath."','REPLACE',`dir`) AS logo,cnt.darab
FROM coll2_man m
LEFT OUTER JOIN (
SELECT COUNT(*) AS darab,m_id,m_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 ".($type>'' ? "AND tipus='".$type."'" : "")."
) x GROUP BY m_id
) cnt ON cnt.m_id=m.id
WHERE cnt.darab>0
ORDER BY name;");
$this->manufactures = $db->loadObjectList();
}
return $this->manufactures;
}
public function getManufacture($id=0)
{
$db=JFactory::getDBO();
$db->setQuery("SELECT * FROM coll2_man m WHERE id=".$id." LIMIT 1;");
$tmp=$db->loadObjectList();;
$this->manufacture=$tmp[0];
return $this->manufacture;
}
public function getManufactureByName($name="")
{
$db=JFactory::getDBO();
$db->setQuery("SELECT * FROM coll2_man m WHERE name='".$name."' LIMIT 1;");
$tmp=$db->loadObjectList();;
$this->manufacture=$tmp[0];
return $this->manufacture;
}
public function getFamilies($type="",$manufacture="")
{
$session=&JFactory::getSession();
$lang=$session->get( 'sr_lang');//'hun';
if (!isset($this->families))
{
$db=JFactory::getDBO();
$db->setQuery("
SELECT f.c_id,f.m_id,m.`name` AS manufacure,IF( LENGTH(f.nev_".$lang.")>15,CONCAT(SUBSTRING(f.nev_".$lang.",1,13),'...'),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 ".($type>'' ? "AND tipus='".$type."'" : "")." ".((int)$manufacture>0 ? "AND x.m_id='".(int)$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 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';
$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 getFamilyByName($name="",$m_id=0)
{
$session=&JFactory::getSession();
$lang=$session->get('sr_lang');//'hun';
$db=JFactory::getDBO();
$db->setQuery("SELECT c_id,m_id,nev_".$lang." AS name,deleted FROM coll2_cat WHERE ".((int)$m_id>0 ? 'm_id='.$m_id.' AND ' : '')." (nev_hun='".$name."' OR nev_eng='".$name."') LIMIT 1;");
$tmp=$db->loadObjectList();
$this->family=$tmp[0];
return $this->family;
}
public function saveRecord($tomb=array())
{
$newID=0;
$collection2=new stdClass();
$collection2->m_id=$tomb['m_id'];
$collection2->desc_hun=$tomb['desc_hun'];
$collection2->desc_eng=$tomb['desc_eng'];
$collection2->c_id=$tomb['c_id'];
$collection2->struct_id=$tomb['struct_id'];
$collection2->datum=date("Y-m-d H:i:s",time());
$collection2->title_hun=$tomb['title_hun'];
$collection2->title_eng=$tomb['title_eng'];
$collection2->tipus=$tomb['tipus'];
$collection2->rendelheto=1;
$collection2->show=0;
$collection2->down=0;
$collection2->deleted=$tomb['deleted'];
$db=JFactory::getDBO();
$db->setQuery("SELECT * FROM collection2 WHERE tipus='".$collection2->tipus."' AND m_id=".$collection2->m_id." AND c_id=".$collection2->c_id." AND title_hun='".$collection2->title_hun."' LIMIT 1;");
$exist=$db->loadObjectList();
if (count($exist))
{
$newID=$exist[0]->o_id;
}
else
{
if (JFactory::getDbo()->insertObject('collection2', $collection2)==TRUE)
$newID=JFactory::getDbo()->insertid();
}
if ($newID)
{
$coll2_desc_eng=New stdClass();
$coll2_desc_eng->o_id=$newID;
$coll2_desc_eng->lang='eng';
$coll2_desc_eng->title=$tomb['title_eng'];
$coll2_desc_eng->desc=$tomb['desc_eng'];
JFactory::getDbo()->insertObject('coll2_desc', $coll2_desc_eng);
$coll2_desc_hun=New stdClass();
$coll2_desc_hun->o_id=$newID;
$coll2_desc_hun->lang='hun';
$coll2_desc_hun->title=$tomb['title_hun'];
$coll2_desc_hun->desc=$tomb['desc_hun'];
JFactory::getDbo()->insertObject('coll2_desc', $coll2_desc_hun);
$coll2_ver=New stdClass();
$coll2_ver->o_id=$newID;
$coll2_ver->fajl=$tomb['fajl'];
$coll2_ver->version=$tomb['version'];
$coll2_ver->down=0;
$coll2_ver->deleted=0;
JFactory::getDbo()->insertObject('coll2_ver', $coll2_ver);
}
return($newID);
}
public function getParents()
{
$db=JFactory::getDBO();
$db->setQuery("
SELECT id,t.`name_".$this->getLang()."` AS `type`,struct_".$this->getLang()." AS `name`
FROM coll2_struct s
LEFT OUTER JOIN `coll2_types` t ON t.`type` COLLATE utf8_unicode_ci=s.`type`
WHERE parent=id
ORDER BY t.`name_".$this->getLang()."`,s.ord,s.`struct_".$this->getLang()."`;");
$this->parents=$db->loadObjectList();
return $this->parents;
}
public function getParentByName($tipus,$parent)
{
$db=JFactory::getDBO();
$db->setQuery("SELECT * FROM coll2_struct WHERE LOWER(type)='".strtolower($tipus)."' AND parent=id AND LOWER(struct_eng)='".strtolower($parent)."' LIMIT 1;");
$tmp=$db->loadObjectList();
$this->parent=$tmp[0];
return $this->parent;
}
public function getSubcat($parent=-1)
{
$db=JFactory::getDBO();
$db->setQuery("
SELECT s.`id`,t.`name_".$this->getLang()."` AS `type`,p.`parent`,s.`struct_".$this->getLang()."` AS `name`
FROM `coll2_struct` s
LEFT OUTER JOIN `coll2_types` t ON t.`type` COLLATE utf8_unicode_ci=s.`type`
LEFT OUTER JOIN (SELECT id,struct_".$this->getLang()." AS `parent` FROM coll2_struct WHERE parent=id) p ON p.`id`=s.`parent`
WHERE s.`parent`!=s.`id` ".($parent==-1 ? "" : "AND s.`parent`=".(int)$parent)."
ORDER BY p.`parent`,s.ord,s.`struct_".$this->getLang()."`;");
$this->subcat=$db->loadObjectList();
return $this->subcat;
}
public function getSubcatByName($tipus,$parent_id,$subcat)
{
$db=JFactory::getDBO();
$db->setQuery("SELECT * FROM coll2_struct WHERE LOWER(type)='".strtolower($tipus)."' AND parent=".$parent_id." AND LOWER(struct_eng)='".strtolower($subcat)."';");
$tmp=$db->loadObjectList();
$this->subcat=$tmp[0];
return $this->subcat;
}
public function getLang()
{
if (!isset($this->lang)) { $this->lang=(strpos($_SERVER['HTTP_HOST'],".com") ? "eng" : "hun"); }
return $this->lang;
}
}
?>

View File

@ -1,154 +0,0 @@
<?php defined('_JEXEC') or die; ?>
<?php if (!isset($this->sess['sr_template'])):?>
<h3 style="margin-bottom:10px;"><?=JText::_(COM_SHOWROOM_SHOWROOM);?></h3>
<?php endif;?>
<?php
$user=JFactory::getUser();
$groups=$user->get('groups');
if ((int)$user->id>0 && is_array($groups)) : ?>
<?php
$admin=FALSE;
foreach ($groups as $k=>$v) { if (in_array($v,$this->arrAllowedGroups)) $admin=TRUE; }
if ($admin==FALSE) { JFactory::getApplication()->redirect("/index.php?option=com_showroom&view=showroom"); die(); }
?>
<div id="j-main-container">
<form name="showroom_upload" id="showroom_upload" method="post" enctype="multipart/form-data" action="index.php?option=com_showroom&view=uploadgroup<?=$this->querystring?>">
<div class="hasab">
<div class="inputholder" style="height:200px;">
<label for="desc_hun"><?=JText::_('COM_SHOWROOM_DESC_HUN')?>:</label><br />
<textarea name="desc_hun" id="desc_hun"><?=(isset($_POST['desc_hun']) ? $_POST['desc_hun'] : '')?></textarea>
</div>
</div>
<div class="hasab">
<div class="inputholder" style="height:200px;">
<label for="desc_eng"><?=JText::_('COM_SHOWROOM_DESC_ENG')?>:</label><br />
<textarea name="desc_eng" id="desc_eng"><?=(isset($_POST['desc_eng']) ? $_POST['desc_eng'] : '')?></textarea>
</div>
</div>
<div class="hasab">
<div class="inputholder">
<label for="tipus"><?=JText::_('COM_SHOWROOM_TYPE')?>:</label>
<select name="tipus" id="tipus" onchange="javascript:changeTipus();">
<option value=""><?=JText::_('COM_SHOWROOM_ALL')?></option>
<option disabled="disabled">-----</option>
<?php foreach ($this->types as $type):?>
<option value="<?=$type->type?>"<?=($type->type==$this->selected_type ? ' selected="selected"' : '')?>><?=$type->name?></option>
<?php endforeach;?>
</select>
</div>
<div class="inputholder">
<label for="m_id"><?=JText::_('COM_SHOWROOM_MANUFACTURE')?>:</label>
<div id="m_id_container" style="display:inline-block;">
<select name="m_id" id="m_id" onchange="javascript:changeGyarto();">
<option value=""><?=JText::_('COM_SHOWROOM_ALL')?></option>
<option disabled="disabled">-----</option>
<?php foreach ($this->manufactures as $manufacture):?>
<option value="<?=$manufacture->id?>"<?=($manufacture->id==$this->selected_manufacture ? ' selected="selected"' : '')?> ><?=$manufacture->name?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="inputholder">
<label for="c_id"><?=JText::_('COM_SHOWROOM_FAMILY')?>:</label>
<div id="c_id_container" style="display:inline-block;">
<select name="c_id" id="c_id" onchange="">
<option value=""><?=JText::_('COM_SHOWROOM_ALL')?></option>
<option disabled="disabled">-----</option>
<?php foreach ($this->families as $family):?>
<option value="<?=$family->c_id?>"<?=((int)$family->c_id==(int)$this->selected_family ? ' selected="selected"' : '')?>><?=$family->name?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="inputholder">
<label for="parent" class="szeleslabel"><?=JText::_('COM_SHOWROOM_CAT')?>:</label>
<select name="parent" id="parent" onchange="javascript:changeParent();">
<option value=""><?=JText::_('COM_SHOWROOM_ALL')?></option>
<option disabled="disabled">-----</option>
<?php $lastParentType="";?>
<?php foreach ($this->parents as $parent):?>
<?php if ($lastParentType!=$parent->type) { echo '<option disabled="disabled">'.$parent->type.'</option>'; $lastParentType=$parent->type; } ?>
<option value="<?=$parent->id?>"<?=($parent->id==$this->selected_category ? ' selected="selected"' : '')?>>&nbsp;&nbsp;&nbsp;<?=$parent->name?></option>
<?php endforeach;?>
</select>
</div>
<div class="inputholder">
<label for="subcat" class="szeleslabel"><?=JText::_('COM_SHOWROOM_SUBCAT')?>:</label>
<div id="subcat_container" style="display:inline-block;">
<select name="subcat" id="subcat">
<option value=""><?=JText::_('COM_SHOWROOM_ALL')?></option>
<option disabled="disabled">-----</option>
<?php $lastCategoryType="";?>
<?php foreach ($this->subcat as $subcat):?>
<?php if ($lastCategoryType!=$subcat->parent) { echo '<option disabled="disabled">'.$subcat->parent.'</option>'; $lastCategoryType=$subcat->parent; } ?>
<option value="<?=$subcat->id?>"<?=($subcat->id==$this->selected_subcategory ? ' selected="selected"' : '')?>>&nbsp;&nbsp;&nbsp;<?=$subcat->name?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="inputholder">
<label for="deleted_y"><?=JText::_('COM_SHOWROOM_ACTIVE')?>:</label>
<fieldset>
<input type="radio" name="deleted" id="deleted_y" value="0" disabled="disabled" /><label for="deleted_y"><?=JText::_('COM_SHOWROOM_YES')?></label>
<input type="radio" name="deleted" id="deleted_n" value="1" checked="checked" /><label for="deleted_n"><?=JText::_('COM_SHOWROOM_NO')?></label>
</fieldset>
</div>
<div class="inputholder">
<input type="submit" name="save" id="save" value="<?=JText::_('COM_SHOWROOM_SAVE')?>" <?=(count($_POST) ? 'disabled="disabled"' : '')?> onclick="javascript:return ellenoriz();" /><br />
<strong><?=(count($_POST) ? JText::_('COM_SHOWROOM_SAVE_SUCCESSFUL') : '')?></strong>
</div>
</div>
<div class="hasab" style="display:inline-block;width:600px;">
<?php foreach ($this->arrKiskep as $kiskep) : ?>
<?php if (is_file($_SERVER['DOCUMENT_ROOT'].$kiskep)) : ?>
<img src="<?=$kiskep?>" style="max-width:60px;max-height:60px;" border="0" />
<?php endif;?>
<?php endforeach;?>
</div>
<div class="clear"></div>
</form>
</div>
<script type="text/javascript">
jQuery(document).ready(function() { changeTipus(); });
function changeTipus() {
jQuery.get('/administrator/components/com_showroom/assets/ajax/AjaxSelectController.class.php?lang=<?=$this->sess['sr_lang']?>&type=manufacture&tipus='+jQuery('#tipus').val()+'&selected=<?=$this->selected_manufacture?>', function( data ) { jQuery("#m_id_container").html( data ); });
changeGyarto();
}
function changeGyarto() {
jQuery.get('/administrator/components/com_showroom/assets/ajax/AjaxSelectController.class.php?lang=<?=$this->sess['sr_lang']?>&type=family&tipus='+jQuery('#tipus').val()+'&gyarto='+jQuery('#m_id').val()+'&selected=<?=$this->selected_family?>', function( data ) { jQuery("#c_id_container").html( data ); });
}
function changeParent() {
jQuery.get('/administrator/components/com_showroom/assets/ajax/AjaxSelectController.class.php?lang=<?=$this->sess['sr_lang']?>&type=parent&id='+jQuery('#parent').val(), function( data ) { jQuery("#subcat_container").html( data ); });
}
function ellenoriz() {
if (jQuery('#tipus').val()=="") {alert('<?=JText::_('COM_SHOWROOM_MISSING_TYPE')?>!'); return false;}
if (jQuery('#m_id').val()=="") {alert('<?=JText::_('COM_SHOWROOM_MISSING_MANUFACTURE')?>!'); return false;}
if (jQuery('#c_id').val()=="") {alert('<?=JText::_('COM_SHOWROOM_MISSING_FAMILY')?>!'); return false;}
if (jQuery('#parent').val()=="") {alert('<?=JText::_('COM_SHOWROOM_MISSING_PARENT')?>!'); return false;}
if (jQuery('#subcat').val()=="") {alert('<?=JText::_('COM_SHOWROOM_MISSING_SUBCAT')?>!'); return false;}
return true;
}
</script>
<?php else : ?>
<?=JModuleHelper::renderModule(JModuleHelper::getModule('login'),array());?>
<? endif; ?>

View File

@ -1,243 +0,0 @@
<?php
/*******************************************************************************
Az eredti descriptor file felépítése:
=====================================
$data["fajl"] = $adatok[0];
$data["eredeti"] = $adatok[1];
$data["vendegkep"] = $adatok[2];
$data["kepalap"] = $adatok[3];
$data["cim"] = $adatok[4];
$data["cimhun"] = $adatok[5] ? $adatok[5] : $adatok[4];
$data["prver"] = ($adatok[6]=="-1") ? "2012" : $adatok[6];
$data["man"] = $adatok[7];
$data["fam"] = $adatok[8];
Az új descriptor file felépítése:
=====================================
$data["file"]=$adatok[0],
$data["vendegkep"]=$adatok[1],
$data["nev_eng"]=$adatok[2],
$data["nev_hun"]=$adatok[3],
$data["tipus"]=$adatok[4],
$data["kategoria"]=$adatok[5],
$data["alkategoria"]=$adatok[6],
$data["gyarto"]=$adatok[7],
$data["prver"]=($adatok[8]=="-1" ? "2012" : $adatok[8]),
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 $defLang='eng';
protected $desc=array();
protected $data=array();
protected $selected_type;
protected $selected_manufacture;
protected $selected_family;
protected $selected_category;
protected $selected_subcategory;
public function display($tpl = null)
{
$app=&JFactory::getApplication();
$session=&JFactory::getSession();
$document=&JFactory::getDocument();
$model=$this->getModel();
$this->arrKiskep=array();
$document->addStyleSheet('/components/com_showroom/assets/css/showroom.css');
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 (trim($session->get('sr_file'))>"")
{
$grouplist=trim('/home/vendeg/'.$session->get('sr_file'));
if (is_file($grouplist))
{
$lines=file($grouplist);
if (is_array($lines) && count($lines))
{
foreach ($lines as $idx=>$line)
{
$descriptor=trim('/home/vendeg/'.$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); }
if ($this->desc[0]==$this->desc[1]) // regi struktura
{
$this->data=array(
"file"=>$this->desc[0],
"vendegkep"=>$this->desc[2],
"nev_eng"=>($this->desc[5] ? $this->desc[5] : $this->desc[4]),
"nev_hun"=>($this->desc[5] ? $this->desc[5] : $this->desc[4]),
"tipus"=>$this->sess['sr_type'],
"kategoria"=>"",
"alkategoria"=>"",
"gyarto"=>$this->desc[7],
"termekcsalad"=>$this->desc[8],
"prver"=>($this->desc[6]=="-1" ? "2012" : $this->desc[6]),
);
}
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],
"termekcsalad"=>((isset($this->desc[9]) && $this->desc[9]>'') ? $this->desc[9] : ''),
"prver"=>($this->desc[8]=="-1" ? "2012" : $this->desc[8]),
);
}
if ($this->data['gyarto']>"") { $manufacture=$model->getManufactureByName($this->data['gyarto']); }
if ($this->data['termekcsalad']>"" && (int)$manufacture->id>0) { $termekcsalad=$model->getFamilyByName($this->data['termekcsalad'],$manufacture->id); }
if ($this->data['kategoria']>"") { $kategoria=$model->getParentByName($this->data['tipus'],$this->data['kategoria']); }
if ($this->data['alkategoria']>"" && (int)$kategoria->id>0) { $alkategoria=$model->getSubcatByName($this->data['tipus'],$kategoria->id,$this->data['alkategoria']); }
$this->selected_type=$this->data['tipus'];
$this->selected_manufacture=((int)$manufacture->id>0 ? (int)$manufacture->id : 0);
$this->selected_family=((int)$termekcsalad->c_id>0 ? (int)$termekcsalad->c_id : 0);
$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
$honnan='/home/vendeg/'.$this->data['vendegkep'];
$hova=$_SERVER['DOCUMENT_ROOT'].'/public/img/collection/'.$this->data['tipus'];
if (!is_dir($hova)) mkdir($hova);
$hova.='/'.$this->data['vendegkep'];
if (is_file($honnan) && !is_file($hova)) { copy($honnan,$hova); }
$this->arrKiskep[]=substr($hova, strpos($hova, '/public'));
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($this->data['nev_hun'])),
'title_eng'=>trim(addslashes($this->data['nev_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']) ? (int)$_POST['deleted'] : 1),
);
$newID=$model->saveRecord($tomb);
if ((int)$newID>0)
{
$man=$model->getManufacture($tomb['m_id']);
// objektum file elhelyezése a végleges helyére
$honnan='/home/vendeg/'.$this->data['file'];
$hova=$_SERVER['DOCUMENT_ROOT'].'/public/collection/'.$man->dir;
if (!is_dir($hova)) mkdir($hova);
$hova.='/'.$newID;
if (!is_dir($hova)) mkdir($hova);
$hova.='/'.$this->data['file'];
if (is_file($honnan) && !is_file($hova)) { copy($honnan,$hova); }
// képek legyártása
$honnan='/home/vendeg/'.$this->data['vendegkep'];
if (is_file($honnan))
{
$origSize=getimagesize($honnan);
if ($origSize[0]>=400 || $origSize[1]>=400)
{
$hova=$_SERVER['DOCUMENT_ROOT']."/public/img/collection/".$man->dir;
if (!is_dir($hova)) mkdir($hova);
$hova.="/".$newID;
if (!is_dir($hova)) mkdir($hova);
if (!is_dir($hova."/orig")) mkdir($hova."/orig");
$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);
copy($honnan,$hova."/orig/".$this->data['vendegkep']);
}
}
}
}
}
else { print ("descriptor file '".$descriptor."' nem elérhető<br />"); }
}
}
}
else { print ("grouplist file '".$grouplist."' nem elérhető<br />"); }
}
$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_MULTIUPLOAD));
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
?>

View File

@ -1,4 +0,0 @@
Options +ExecCGI
AddType application/x-httpd-php .json
AddHandler application/x-httpd-php .json
AddHandler application/x-httpd-php5 .json

View File

@ -1,184 +0,0 @@
<?php
/*
* Modified for use as the J plugin installer
* AW
*/
// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();
define('JCKPATH_COMPONENT', JPATH_ADMINISTRATOR.'/components/com_jckman');
/**
* Backup restorer
*
* @package Joomla.Framework
* @subpackage Installer
* @since 1.5
* Renamed JInstallerPlugin to JCKRestorerPlugin
*/
class JCKRestorerBackup extends JObject
{
/**
* Constructor
*
* @access protected
* @param object $parent Parent object [JInstaller instance]
* @return void
* @since 1.5
*/
function __construct(&$parent)
{
$this->parent =& $parent;
}
/**
* Custom install method
*
* @access public
* @return boolean True on success
* @since 1.5
* Minor alteration - see below
*/
function install()
{
// Get a database connector object
$db =& $this->parent->getDBO();
// Get the extension manifest object
$manifest =& $this->parent->getManifest();
$this->manifest =& $manifest;//$manifest->document;
/**
* ---------------------------------------------------------------------------------------------
* Manifest Document Setup Section
* ---------------------------------------------------------------------------------------------
*/
// Set the component name
$this->set('name','');
// Get the component description
$description = & $this->manifest->description;
$this->parent->set('message', '' );
$element =& $this->manifest->files;
$this->parent->setPath('extension_root', JCKPATH_COMPONENT.'/editor');
/**
* ---------------------------------------------------------------------------------------------
* Filesystem Processing Section
* ---------------------------------------------------------------------------------------------
*/
// If the extension directory does not exist, lets create it
$created = false;
if (!file_exists($this->parent->getPath('extension_root'))) {
if (!$created = JFolder::create($this->parent->getPath('extension_root'))) {
$this->parent->abort('Plugin Install: '.JText::_('Failed to create directory').': "'.$this->parent->getPath('extension_root').'"');
return false;
}
}
/*
* If we created the extension directory and will want to remove it if we
* have to roll back the installation, lets add it to the installation
* step stack
*/
if ($created) {
$this->parent->pushStep(array ('type' => 'folder', 'path' => $this->parent->getPath('extension_root')));
}
// Copy all necessary files
if ($this->parent->parseFiles($element, -1) === false) {
// Install failed, roll back changes
$this->parent->abort();
return false;
}
/**
* ---------------------------------------------------------------------------------------------
* Database Processing Section
* ---------------------------------------------------------------------------------------------
*/
/*
* Let's run the install queries for the component
* If Joomla 1.5 compatible, with discreet sql files - execute appropriate
* file for utf-8 support or non-utf-8 support
*/
// Try for Joomla 1.5 type queries
// Second argument is the utf compatible version attribute
if (isset($this->manifest->install->sql))
{
$utfresult = $this->parent->parseSQLFiles($this->manifest->install->sql);
if ($utfresult === false)
{
// Install failed, rollback changes
$this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT_COMP_INSTALL_SQL_ERROR', $db->stderr(true)));
return false;
}
}
// Parse optional tags -- language files for plugins
$this->parent->parseLanguages($this->manifest->languages, 0);
/**
* ---------------------------------------------------------------------------------------------
* Finalization and Cleanup Section
* ---------------------------------------------------------------------------------------------
*/
//Copy JCK Editor's Manifest backup file to the Editor
jimport('joomla.filesystem.file');
$src = JPATH_ADMINISTRATOR.DS.'components'.DS.'com_jckman'.DS.'editor'.DS.'plugins'.DS.'jckeditor.xml';
$dest = JPATH_PLUGINS.DS.'editors'.DS.'jckeditor'.DS.'jckeditor.xml';
if( !JFile::copy( $src, $dest) ){
$this->parent->abort( JText::_('Unable to copy JCK Editor\'s Manifest file') );
}
// Lastly, we will copy the manifest file to its appropriate place.
if (!$this->parent->copyManifest(-1)) {
// Install failed, rollback changes
$this->parent->abort('Import: '.JText::_('Could not copy setup file'));
return false;
}
return true;
}
/**
* Custom rollback method
* - Roll back the plugin item
*
* @access public
* @param array $arg Installation step to rollback
* @return boolean True on success
* @since 1.5
* Minor changes to the db query
*/
function _rollback_plugin($arg)
{
return true;
}
}

View File

@ -1,382 +0,0 @@
<?php
/**
* @version $Id: view.html.php 9764 2007-12-30 07:48:11Z ircmaxell $
* @package Joomla
* @subpackage Config
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
/**
* HTML View class for the Plugins component
*
* @static
* @package Joomla
* @subpackage Plugins
* @since 1.0
*/
class ToolbarsViewToolbar extends JViewLegacy
{
function display( $tpl = null )
{
global $option, $mainframe;
JToolBarHelper::title( JText::_( 'Layout Manager' ) .': <small><small>[' .JText::_('Edit'). ']</small></small>', 'layout.png' );
JToolBarHelper::save();
JToolBarHelper::apply();
JToolBarHelper::cancel( 'cancelEdit', 'Close' );
$cid = JRequest::getVar( 'cid', array(0), '', 'array' );
JArrayHelper::toInteger($cid, array(0));
$lists = array();
$user =& JFactory::getUser();
$row =& JCKHelper::getTable('toolbar');
// load the row from the db table
$row->load( $cid[0] );
// fail if checked out not by 'me'
if ($row->isCheckedOut( $user->get('id') ))
{
$msg = JText::sprintf( 'DESCBEINGEDITTED', JText::_( 'The toolbar' ), $row->title );
$this->setRedirect( 'index.php?option='. $option .'&view=Toolbars', $msg, 'error' );
return false;
}
if ($cid[0])
{
$row->checkout( $user->get('id') );
}
else {
$row->params = '';
}
$db =& JFactory::getDBO();
//set the default total number of plugin records
$total = 0;
$totalRows = 0;
if ( $cid[0] ) {
$total = 1;
$query = 'SELECT p.id,p.name,p.title,p.icon,tp.row'
. ' FROM #__jckplugins p'
. ' JOIN #__jcktoolbarplugins tp ON tp.pluginid = p.id'
. ' WHERE tp.state = 1'
. ' AND tp.toolbarid = '.(int) $row->id
. ' AND p.published = 1'
. ' ORDER BY tp.toolbarid ASC,tp.row ASC,tp.ordering ASC';
$db->setQuery( $query );
$toolbarplugins = $db->loadObjectList();
// get the total number of plugin records
$query = 'SELECT COUNT(*)'
. ' FROM #__jcktoolbarplugins'
. ' WHERE toolbarid ='.(int) $row->id;
$db->setQuery( $query );
$totalRows = $db->loadResult();
if(!$totalRows) //lets get plugins from class file
{
require_once(CKEDITOR_LIBRARY.DS . 'toolbar.php');
$CKfolder = CKEDITOR_LIBRARY.DS . 'toolbar';
$filename = $CKfolder.DS.$row->name.'.php';
require($filename);
$classname = 'JCK'. ucfirst($row->name);
$toolbar = new $classname();
$query = 'SELECT id,title'
. ' FROM #__jckplugins'
. ' WHERE title != ""'
. ' AND published = 1'
;
$db->setQuery( $query );
$allplugins = $db->loadObjectList();
$values = array();
//fix toolbar values or they will get wiped out
$l = 1;
$n = 1;
$j = 1;
foreach (get_object_vars( $toolbar ) as $k => $v)
{
if($v) $n = ($n > $v ? $n : $v);
if($l < $n)
{
$l = $n;
$j = 1;
}
for($m = 0; $m< count($allplugins); $m++)
{
if($k == $allplugins[$m]->title)
{
$values[] = '('.(int)$row->id.','.(int)$allplugins[$m]->id.','.$n.','.$j.',1)';
break;
}
if(strpos($k,'brk_') !== false)
{
$id = preg_match('/[0-9]+$/',$k);
$id = $id * -1;
$values[] = '('.(int)$row->id.','.$id.','.$n.','.$j.',1)';
$n++;
break;
}
}
$j++;
}
if(!empty($values))
{
$query = 'INSERT INTO #__jcktoolbarplugins(toolbarid,pluginid,row,ordering,state) VALUES ' . implode(',',$values);
$db->setQuery( $query );
if(!$db->query())
{
JCKHelper::error( $db->ErrorMsg() );
}
}
}
$query = 'SELECT p.id,p.name,p.title,p.icon,p.row,p.iscore'
. ' FROM #__jckplugins p'
. ' LEFT JOIN #__jcktoolbarplugins tp ON tp.pluginid = p.id'
. ' AND tp.toolbarid = '.(int) $row->id
. ' WHERE tp.pluginid is null'
. ' AND p.published = 1'
. ' AND p.title != ""'
.' ORDER by p.row ASC, p.id ASC';
$db->setQuery( $query );
$plugins = $db->loadObjectList();
if(!empty($plugins))
{
/*
require_once(CKEDITOR_LIBRARY.DS . 'toolbar.php');
$CKfolder = CKEDITOR_LIBRARY.DS . 'toolbar';
$filename = $CKfolder.DS.$row->name.'.php';
require($filename);
$classname = 'JCK'. ucfirst($row->name);
$toolbar = new $classname();
$values = array();
foreach($plugins as $plugin)
{
if($plugin->iscore)
continue;
$values[] = '('.(int)$row->id.','.(int)$plugin->id.','.$n.','.$j.',1)';
}
*/
}
$query = 'SELECT tp.pluginid AS id,p.name,p.title,p.icon,tp.row'
. ' FROM #__jcktoolbarplugins tp'
. ' LEFT JOIN #__jckplugins p ON tp.pluginid = p.id'
. ' AND p.published = 1'
. ' WHERE tp.state = 1'
. ' AND tp.toolbarid = '.(int) $row->id
. ' ORDER BY tp.toolbarid ASC,tp.row ASC,tp.ordering ASC';
$db->setQuery( $query );
$toolbarplugins = $db->loadObjectList();
$toolbarplugins = $this->_getSortRowToolbars($toolbarplugins);
$this->assignRef('toolbarplugins', $toolbarplugins);
$this->assignRef('plugins', $plugins );
}
$this->assignRef('toolbar', $row);
$this->assignRef('total', $total);
parent::display($tpl);
}
function _getSortRowToolbars($toolbars)
{
$chunkSize1 = 24;
$chunkSize2 = 10;
$out = array();
$count = 0;
$outToolbars = array();
$results = array();
/*
$spacer = new stdclass;
$spacer->title = 'spacer';
$spacer->name = 'spacer';
$spacer->id = 0;
$rowNumber = 1;
foreach($toolbars as $icon)
{
if($icon->row > $rowNumber)
$out[] = $spacer;
$out[] = $icon;
$rowNumber = $icon->row;
}
$toolbars = $out;
$out = array();
*/
$j = 0;
$richTextCombos = array ('stylescombo','font','format','fontsize');
$chunkSize = $chunkSize1;
$autoformat = true;
$breaks = 0;
for($i = 0; $i < count($toolbars);$i++)
{
if($toolbars[$i]->id >= 0 )
{
$out[] = $toolbars[$i];
}
if($toolbars[$i]->id < 0)
{
$outToolbars[] = $out;
$breaks++;
$out = array();
$autoformat = false;
}
}
if($breaks == 1)
$autoformat = true;
if($autoformat)
{
$out = array();
$outToolbars = array();
for($i = 0; $i < count($toolbars);$i++)
{
if(in_array($toolbars[$i]->name,$richTextCombos))
$chunkSize = $chunkSize2;
if($j < $chunkSize)
{
$out[] = $toolbars[$i];
$j++;
}
if($j == $chunkSize)
{
$outToolbars[] = $out;
$out = array();
$j = 0;
$chunkSize = $chunkSize1;
}
}
}
if(!empty($out))
$outToolbars[] = $out;
$results = $outToolbars;
/*
$richTextCombos = array ('stylescombo','font','format','fontsize');
for($k= 0; $k < count($outToolbars);$k++)
{
$chunkSize = $chunkSize1;
$icons = $outToolbars[$k];
for($j = 0;$j < count($icons);$j++)
{
if(in_array($icons[$j]->name,$richTextCombos))
{
$chunkSize = $chunkSize2;
break;
}
}
$chunks = array_chunk($outToolbars[$k],$chunkSize);
foreach($chunks as $chunk)
{
$results[] = $chunk;
}
}
*/
//lets add spacer to each row
$spacer = new stdclass;
$spacer->title = 'spacer';
$spacer->name = 'spacer';
$spacer->id = 0;
for($n= 0; $n < count($results);$n++)
{
$result = $results[$n];
$out = array();
$rowNumber = $results[$n][0]->row;
foreach($result as $icon)
{
if($icon->row > $rowNumber)
$out[] = $spacer;
$out[] = $icon;
$rowNumber = $icon->row;
}
$results[$n] = $out;
}
return $results;
}
}

View File

@ -47,3 +47,4 @@ templates/shaper_helix3/layout/_hxprobeoa31x6.json
templates/shaper_helix3/layout/_hxprobet7sh3r.json
templates/shaper_helix3/layout/jftest.json
templates/shaper_helix3/layout/nxtest.json
templates/shaper_helix3/.htaccess.json