diff --git a/audit/store-cleanup-2026-07-19.md b/audit/store-cleanup-2026-07-19.md
new file mode 100644
index 0000000..11eb8ce
--- /dev/null
+++ b/audit/store-cleanup-2026-07-19.md
@@ -0,0 +1,295 @@
+# Store cleanup — 281 legit false-positives removed (2026-07-19)
+
+The HIDS quarantine misclassified 281 legit files as malware. Removed here;
+the real malware (729 droppers + the injections event/joomla/storage/helix3) stays.
+
+## Evidence
+- **251 EOL-only**: live docroot was CRLF, baseline LF (old deploy artifact).
+ `diff --strip-trailing-cr` = 0 bytes → byte-identical modulo line endings.
+- **30 com_users (archlinexp.eu)**: Joomla 2018→2019 point-release drift
+ (copyright + Referrer-Policy security header). 0 malware markers in added lines.
+
+Fully revertable (`git revert`). Root cause tracked in illusion/hids#128 + illusion3-salt#894.
+
+## Removed files (content, 281)
+var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.db.php
+var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.php
+var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php
+var/www/hosting/archline.hu/www/common_cadline_libraries/crm_users.class.php
+var/www/hosting/archline.hu/www/maintenance/activate_90_days_active.php
+var/www/hosting/archline.hu/www/maintenance/activate_server.php
+var/www/hosting/archline.hu/www/maintenance/aktivalasikod.php
+var/www/hosting/archline.hu/www/maintenance/al.php
+var/www/hosting/archline.hu/www/maintenance/alprograms.php
+var/www/hosting/archline.hu/www/maintenance/banner.php
+var/www/hosting/archline.hu/www/maintenance/beolvas2.php
+var/www/hosting/archline.hu/www/maintenance/class/actcode.class.php
+var/www/hosting/archline.hu/www/maintenance/class/codegen.helper.class.php
+var/www/hosting/archline.hu/www/maintenance/class/crmHelper.class.php
+var/www/hosting/archline.hu/www/maintenance/class/hardlock.helper.class.php
+var/www/hosting/archline.hu/www/maintenance/class/iptocountry.helper.class.php
+var/www/hosting/archline.hu/www/maintenance/class/program.helper.class.php
+var/www/hosting/archline.hu/www/maintenance/class/selectedprogram.php
+var/www/hosting/archline.hu/www/maintenance/class/selectprogram.class.php
+var/www/hosting/archline.hu/www/maintenance/clusers.php
+var/www/hosting/archline.hu/www/maintenance/config.course.php
+var/www/hosting/archline.hu/www/maintenance/config.crm.php
+var/www/hosting/archline.hu/www/maintenance/config.db.php
+var/www/hosting/archline.hu/www/maintenance/config.mail.php
+var/www/hosting/archline.hu/www/maintenance/config.php
+var/www/hosting/archline.hu/www/maintenance/config.tce.php
+var/www/hosting/archline.hu/www/maintenance/crashadmin.php
+var/www/hosting/archline.hu/www/maintenance/cron_check.php
+var/www/hosting/archline.hu/www/maintenance/cron_check_server.php
+var/www/hosting/archline.hu/www/maintenance/cron_one_minute.php
+var/www/hosting/archline.hu/www/maintenance/css/bootstrap.min.css
+var/www/hosting/archline.hu/www/maintenance/css/style.css
+var/www/hosting/archline.hu/www/maintenance/css/ticker-style.css
+var/www/hosting/archline.hu/www/maintenance/downloademail.php
+var/www/hosting/archline.hu/www/maintenance/elofizexcelcheck.php
+var/www/hosting/archline.hu/www/maintenance/elofizurites.php
+var/www/hosting/archline.hu/www/maintenance/email.php
+var/www/hosting/archline.hu/www/maintenance/emailsending.php
+var/www/hosting/archline.hu/www/maintenance/encodetest.php
+var/www/hosting/archline.hu/www/maintenance/followedlinks.php
+var/www/hosting/archline.hu/www/maintenance/functions.php
+var/www/hosting/archline.hu/www/maintenance/geopluginlink.php
+var/www/hosting/archline.hu/www/maintenance/getdef.php
+var/www/hosting/archline.hu/www/maintenance/getserialanddaycode.php
+var/www/hosting/archline.hu/www/maintenance/get_subscriptions.php
+var/www/hosting/archline.hu/www/maintenance/.gitignore
+var/www/hosting/archline.hu/www/maintenance/google_redirect.php
+var/www/hosting/archline.hu/www/maintenance/handshake.php
+var/www/hosting/archline.hu/www/maintenance/hibasprograminditasok.php
+var/www/hosting/archline.hu/www/maintenance/.htaccess
+var/www/hosting/archline.hu/www/maintenance/index.html
+var/www/hosting/archline.hu/www/maintenance/ipc_sample_test.php
+var/www/hosting/archline.hu/www/maintenance/js/clipboard.min.js
+var/www/hosting/archline.hu/www/maintenance/js/download2.js
+var/www/hosting/archline.hu/www/maintenance/js/jquery.min.js
+var/www/hosting/archline.hu/www/maintenance/js/jquery.ticker.js
+var/www/hosting/archline.hu/www/maintenance/js/jszip/jszip.js
+var/www/hosting/archline.hu/www/maintenance/js/jszip/jszip-utils.js
+var/www/hosting/archline.hu/www/maintenance/js/site.js
+var/www/hosting/archline.hu/www/maintenance/languages/lang.eng.php
+var/www/hosting/archline.hu/www/maintenance/languages/lang.hun.php
+var/www/hosting/archline.hu/www/maintenance/leads/BIID_2016.csv
+var/www/hosting/archline.hu/www/maintenance/leads/Gyarto_lista_05_19.csv
+var/www/hosting/archline.hu/www/maintenance/leads_imported.csv
+var/www/hosting/archline.hu/www/maintenance/leads/kimeno.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads-20160918.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads-20160919.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads-20160920.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads-20160921.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads_imported.csv
+var/www/hosting/archline.hu/www/maintenance/leads/leads_imported-utf8.txt
+var/www/hosting/archline.hu/www/maintenance/leads/Letoltott_szamlazz.hu_kimeno_szamlak_2018_Erika.csv
+var/www/hosting/archline.hu/www/maintenance/leads/RIBA_2016.csv
+var/www/hosting/archline.hu/www/maintenance/leads/szamlazz.csv
+var/www/hosting/archline.hu/www/maintenance/leiratkozas.php
+var/www/hosting/archline.hu/www/maintenance/libraries/Excel2/oleread.php
+var/www/hosting/archline.hu/www/maintenance/libraries/Excel2/reader.php
+var/www/hosting/archline.hu/www/maintenance/libraries/mmail/htmlMimeMail.php
+var/www/hosting/archline.hu/www/maintenance/libraries/mmail/mimePart.php
+var/www/hosting/archline.hu/www/maintenance/libraries/mmail/RFC822.php
+var/www/hosting/archline.hu/www/maintenance/libraries/mmail/smtp.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/class.phpmailer.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/class.pop3.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/class.smtp.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/composer.json
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/extras/class.html2text.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/extras/EasyPeasyICS.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/extras/htmlfilter.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/extras/ntlm_sasl_client.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/extras/README.md
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/language/phpmailer.lang-hu.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/language/phpmailer.lang-uk.php
+var/www/hosting/archline.hu/www/maintenance/libraries/phpmailer/PHPMailerAutoload.php
+var/www/hosting/archline.hu/www/maintenance/messages_email.php
+var/www/hosting/archline.hu/www/maintenance/misi.php
+var/www/hosting/archline.hu/www/maintenance/mtips.php
+var/www/hosting/archline.hu/www/maintenance/mycommerce.php
+var/www/hosting/archline.hu/www/maintenance/MySqlHelper.class.php
+var/www/hosting/archline.hu/www/maintenance/newclick.php
+var/www/hosting/archline.hu/www/maintenance/nonprofit.php
+var/www/hosting/archline.hu/www/maintenance/PasswordHash.php
+var/www/hosting/archline.hu/www/maintenance/piracy.php
+var/www/hosting/archline.hu/www/maintenance/pofiles/createPO.php
+var/www/hosting/archline.hu/www/maintenance/pofiles/LiveLanguageResources_eng.json
+var/www/hosting/archline.hu/www/maintenance/ProjectStart.html
+var/www/hosting/archline.hu/www/maintenance/pro_live_bundle.php
+var/www/hosting/archline.hu/www/maintenance/public/css/jquery-ui.css
+var/www/hosting/archline.hu/www/maintenance/public/css/smoothDivScroll.css
+var/www/hosting/archline.hu/www/maintenance/public/css/style.css
+var/www/hosting/archline.hu/www/maintenance/public/js/8132d19a66.js
+var/www/hosting/archline.hu/www/maintenance/public/js/jquery-1.12.4.min.js
+var/www/hosting/archline.hu/www/maintenance/public/js/jquery.mousewheel.min.js
+var/www/hosting/archline.hu/www/maintenance/public/js/jquery.smoothdivscroll-1.3-min.js
+var/www/hosting/archline.hu/www/maintenance/public/js/jquery-ui-1.12.1.min.js
+var/www/hosting/archline.hu/www/maintenance/read_server_txt.php
+var/www/hosting/archline.hu/www/maintenance/redirect_login.php
+var/www/hosting/archline.hu/www/maintenance/regisztracio.php
+var/www/hosting/archline.hu/www/maintenance/render_ellenorzo.sh
+var/www/hosting/archline.hu/www/maintenance/render/log.txt
+var/www/hosting/archline.hu/www/maintenance/startchangedhardlock.php
+var/www/hosting/archline.hu/www/maintenance/supportupload.php
+var/www/hosting/archline.hu/www/maintenance/sw.php
+var/www/hosting/archline.hu/www/maintenance/sw_secondary.php
+var/www/hosting/archline.hu/www/maintenance/sync_downgrade.php
+var/www/hosting/archline.hu/www/maintenance/sync_download.php
+var/www/hosting/archline.hu/www/maintenance/sync_emailtopartners.php
+var/www/hosting/archline.hu/www/maintenance/sync_fizetes.php
+var/www/hosting/archline.hu/www/maintenance/sync_history.php
+var/www/hosting/archline.hu/www/maintenance/sync_honapkepe.php
+var/www/hosting/archline.hu/www/maintenance/sync_ita_email.php
+var/www/hosting/archline.hu/www/maintenance/sync_maintenance.php
+var/www/hosting/archline.hu/www/maintenance/sync_nonprofit.php
+var/www/hosting/archline.hu/www/maintenance/sync_palyazat.php
+var/www/hosting/archline.hu/www/maintenance/sync.php
+var/www/hosting/archline.hu/www/maintenance/sync_sendemail.php
+var/www/hosting/archline.hu/www/maintenance/sync_states.php
+var/www/hosting/archline.hu/www/maintenance/sync_switch.php
+var/www/hosting/archline.hu/www/maintenance/sync_workshop.php
+var/www/hosting/archline.hu/www/maintenance/szamlazz.php
+var/www/hosting/archline.hu/www/maintenance/test_API.php
+var/www/hosting/archline.hu/www/maintenance/test.php
+var/www/hosting/archline.hu/www/maintenance/tests/get-builds.php
+var/www/hosting/archline.hu/www/maintenance/tests/scripts/jquery-1.11.1.min.js
+var/www/hosting/archline.hu/www/maintenance/tests/scripts/jquery.treeview.min.js
+var/www/hosting/archline.hu/www/maintenance/tests/scripts/scripts.js
+var/www/hosting/archline.hu/www/maintenance/tests/scripts/uploader.js
+var/www/hosting/archline.hu/www/maintenance/tests/showTest.php
+var/www/hosting/archline.hu/www/maintenance/tests/styles/jquery.treeview.css
+var/www/hosting/archline.hu/www/maintenance/tests/styles/styles.css
+var/www/hosting/archline.hu/www/maintenance/teszt.php
+var/www/hosting/archline.hu/www/maintenance/tips.php
+var/www/hosting/archline.hu/www/maintenance/tips.php.orig
+var/www/hosting/archline.hu/www/maintenance/tm.php
+var/www/hosting/archline.hu/www/maintenance/tooltip.html
+var/www/hosting/archline.hu/www/maintenance/unsubscribe.php
+var/www/hosting/archline.hu/www/maintenance/updatecrm.php
+var/www/hosting/archline.hu/www/maintenance/updateget.php
+var/www/hosting/archline.hu/www/maintenance/update.php
+var/www/hosting/archline.hu/www/maintenance/updatexml.php
+var/www/hosting/archline.hu/www/maintenance/upload_file.php
+var/www/hosting/archline.hu/www/maintenance/url_redirect.php
+var/www/hosting/archline.hu/www/maintenance/users.php
+var/www/hosting/archline.hu/www/maintenance/viewerlejartaktorlese.php
+var/www/hosting/archline.hu/www/maintenance/warehousedownloadlink.php
+var/www/hosting/archline.hu/www/maintenance/warehousegetfileformat.php
+var/www/hosting/archline.hu/www/maintenance/warehouseparsesource.php
+var/www/hosting/archline.hu/www/maintenance/webform/ai_render_upload.php
+var/www/hosting/archline.hu/www/maintenance/webform/al_login.php
+var/www/hosting/archline.hu/www/maintenance/webform/blank_result.php
+var/www/hosting/archline.hu/www/maintenance/webform/cloud_library_upload.php
+var/www/hosting/archline.hu/www/maintenance/webform/custom_page_test.php
+var/www/hosting/archline.hu/www/maintenance/webform/error_message.php
+var/www/hosting/archline.hu/www/maintenance/webform/exchange_registration.php
+var/www/hosting/archline.hu/www/maintenance/webform/floating_licence.php
+var/www/hosting/archline.hu/www/maintenance/webform/get_protocol.php
+var/www/hosting/archline.hu/www/maintenance/webform/get_result.php
+var/www/hosting/archline.hu/www/maintenance/webform/get_serial.php
+var/www/hosting/archline.hu/www/maintenance/webform/get_user_params.php
+var/www/hosting/archline.hu/www/maintenance/webform/hello.php
+var/www/hosting/archline.hu/www/maintenance/webform/hl_pin.php
+var/www/hosting/archline.hu/www/maintenance/webform/installers.php
+var/www/hosting/archline.hu/www/maintenance/webform/ita_selectprogramdialog_test.php
+var/www/hosting/archline.hu/www/maintenance/webform/languages/eng.php
+var/www/hosting/archline.hu/www/maintenance/webform/languages/esp.php
+var/www/hosting/archline.hu/www/maintenance/webform/languages/hun.php
+var/www/hosting/archline.hu/www/maintenance/webform/login.php
+var/www/hosting/archline.hu/www/maintenance/webform/loginresult.php
+var/www/hosting/archline.hu/www/maintenance/webform/mobileviewer_create.php
+var/www/hosting/archline.hu/www/maintenance/webform/nonprofit.php
+var/www/hosting/archline.hu/www/maintenance/webform/public/css/bootstrap-datepicker.min.css
+var/www/hosting/archline.hu/www/maintenance/webform/public/css/style.css
+var/www/hosting/archline.hu/www/maintenance/webform/public/js/bootstrap-datepicker.min.js
+var/www/hosting/archline.hu/www/maintenance/webform/public/js/main.js
+var/www/hosting/archline.hu/www/maintenance/webform/regsuccess.php
+var/www/hosting/archline.hu/www/maintenance/webform/result.php
+var/www/hosting/archline.hu/www/maintenance/webform/sample.php
+var/www/hosting/archline.hu/www/maintenance/webform/select_dealer.php
+var/www/hosting/archline.hu/www/maintenance/webform/selectprogramdialog.php
+var/www/hosting/archline.hu/www/maintenance/webform/startQuery.php
+var/www/hosting/archline.hu/www/maintenance/webform/test_result.php
+var/www/hosting/archline.hu/www/maintenance/zendesk/get_zendesk_articles.php
+var/www/hosting/archline.hu/www/maintenance/zendesk/update_crc.php
+var/www/hosting/archline.hu/www/maintenance/zendesk/zendesk.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controller.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile_base_json.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.json.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/profile.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/remind.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/reset.php
+var/www/hosting/archlinexp.eu/www/components/com_users/controllers/user.php
+var/www/hosting/archlinexp.eu/www/components/com_users/helpers/html/users.php
+var/www/hosting/archlinexp.eu/www/components/com_users/helpers/legacyrouter.php
+var/www/hosting/archlinexp.eu/www/components/com_users/helpers/route.php
+var/www/hosting/archlinexp.eu/www/components/com_users/layouts/joomla/form/renderfield.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/profile.xml
+var/www/hosting/archlinexp.eu/www/components/com_users/models/forms/registration.xml
+var/www/hosting/archlinexp.eu/www/components/com_users/models/login.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/profile.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/registration.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/remind.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/reset.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/loginuniquefield.php
+var/www/hosting/archlinexp.eu/www/components/com_users/models/rules/logoutuniquefield.php
+var/www/hosting/archlinexp.eu/www/components/com_users/router.php
+var/www/hosting/archlinexp.eu/www/components/com_users/users.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_login.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default_logout.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/login/tmpl/default.xml
+var/www/hosting/archlinexp.eu/www/components/com_users/views/login/view.html.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_core.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_custom.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default_params.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/profile/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/components/com_users/views/registration/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/helper.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/de-DE/de-DE.mod_al_newsletter.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/en-GB/en-GB.mod_al_newsletter.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/language/hu-HU/hu-HU.mod_al_newsletter.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/mod_al_newsletter.xml
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_newsletter/tmpl/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/images/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/newstyle.css
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/css/style.css
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/assets/js/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/helper.php
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.php
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/mod_alusers.xml
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/modules/mod_alusers/tmpl/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/helper.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/de-DE/de-DE.mod_al_vote.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/en-GB/en-GB.mod_al_vote.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/language/hu-HU/hu-HU.mod_al_vote.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/mod_al_vote.xml
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/modules/mod_al_vote/tmpl/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/helper.php
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/index.html
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/en-GB/en-GB.mod_course_list.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/language/hu-HU/hu-HU.mod_course_list.sys.ini
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.php
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/mod_course_list.xml
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/default.php
+var/www/hosting/archlinexp.eu/www/modules/mod_course_list/tmpl/index.html
diff --git a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.db.php b/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.db.php
deleted file mode 100644
index eb6b904..0000000
--- a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.db.php
+++ /dev/null
@@ -1,24 +0,0 @@
- quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.db.php)",
- "original_sha256": "b6bf5ac201bca1880d594fc4f0bd22a57c44014ae49d9c1b79096ba474277b45",
- "original_stat": {
- "gid": 30037,
- "mtime": 1772622166,
- "size": 1111,
- "uid": 12425
- },
- "rel_path": "common_cadline_libraries/crm_config.db.php",
- "result": "quarantined",
- "timestamp": "20260718T160241Z",
- "vhost": "www.archline.hu"
-}
diff --git a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.php b/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.php
deleted file mode 100644
index d8f2ab0..0000000
--- a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.php
+++ /dev/null
@@ -1,133 +0,0 @@
- quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_config.php)",
- "original_sha256": "2a4e7009a1bc1ead4599bd32b35f69ee3bcb585732fe6259783ac80923bdf4ee",
- "original_stat": {
- "gid": 30037,
- "mtime": 1755185334,
- "size": 6206,
- "uid": 12425
- },
- "rel_path": "common_cadline_libraries/crm_config.php",
- "result": "quarantined",
- "timestamp": "20260718T160241Z",
- "vhost": "www.archline.hu"
-}
diff --git a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php b/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php
deleted file mode 100644
index 491dd08..0000000
--- a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php
+++ /dev/null
@@ -1,616 +0,0 @@
-connection = false;
- $this->host = '';
- $this->user = '';
- $this->pass = '';
- $this->name = '';
- $this->writelog = false;
- }
-
- public static function getInstance()
- {
- if (!empty(self::$msh)) {
- return self::$msh;
- }
-
- self::$msh = new crm_database();
- self::$msh->init();
-
- return self::$msh;
- }
-
- public static function escapeString($str = "")
- {
- $ret = mysqli_real_escape_string($this->connection, $str);
- return $ret;
- }
-
- public function init($host = _DB_HOST, $name = _DB_NAME, $user = _DB_USER, $pass = _DB_PASS)
- {
- $this->host = $host;
- $this->name = $name;
- $this->user = $user;
- $this->pass = $pass;
- }
-
- 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(mysqli_error($this->connection));
- }
- }
-
- public function getQueryString()
- {
- return $this->queryString;
- }
-
- public function query($query, $getID = false)
- {
- $this->connect();
- $this->AddSemicolonToQueryString($query);
- $this->queryString = $query;
-
- if ($this->is_write_type($query) === true) {
- $boolWrite = true;
- $arrSkip = array('h_aktivalas_infok', 'h_history', 'u_history', 'u_userstatus_history', 'cl_hlusers.userstats2013', 'cl_hlusers.switch', 'cl_hlusers.writelog');
-
- foreach ($arrSkip as $tabla) {
- if (strpos($query, $tabla)) {
- $boolWrite = false;
- break;
- }
- }
-
- if ($boolWrite) {
- mysqli_query($this->connection, "INSERT INTO `cl_hlusers`.`writelog` (`user`,`datum`,`ip`,`url`,`func`,`sql`) VALUES (
- '" . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.archlinexp.com') . "',
- '" . date("Y-m-d H:i:s", time()) . "',
- '" . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1') . "',
- '" . (isset($_SERVER['SERVER_NAME']) ? addslashes($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']) : '') . "',
- '" . addslashes("function: " . __FUNCTION__ . " method: " . __METHOD__) . "','" . addslashes($query) . "');");
- }
- }
-
- $this->queryResult = mysqli_query($this->connection, $query);
- if (mysqli_error($this->connection)) {
- throw new Exception(mysqli_error($this->connection) . ' Query: ' . $query);
- }
-
- if ($getID) return $this->getInsertedId();
- }
-
- public function AddSemicolonToQueryString(&$query)
- {
- $query = rtrim($query);
-
- if (substr($query, -1) != ';') {
- $query = $query . ";";
- }
- }
-
- 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 . ');', true);
- }
-
- 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;
- }
-
- public function is_write_type($sql)
- {
- if (!preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) {
- return false;
- }
-
- return true;
- }
-
- public function getConnection()
- {
- return ($this->connection);
- }
-
- public function setConnect()
- {
- $this->connect();
- }
-}
-
-class Database
-{
- private $host = _DB_HOST;
- private $username = _DB_USER;
- private $password = _DB_PASS;
-
- private $queryResult;
- private $queryString;
-
- private static $msh;
- protected $connection;
-
- private static $arrSkip = array(
- "cl_hlusers.h_aktivalas_infok",
- "cl_hlusers.h_history",
- "cl_hlusers.u_history",
- "cl_hlusers.u_userstatus_history",
- "cl_hlusers.userstats2013",
- "cl_hlusers.switch",
- "cl_hlusers.writelog",
- "cl_hlusers.telemetria",
- "cl_hlusers.computers",
- "cl_hlusers.debug_table"
- );
-
- public function __construct()
- {
- if (!isset($this->connection)) {
- $this->connection = new mysqli($this->host, $this->username, $this->password);
-
- if (!$this->connection) {
- echo 'Cannot connect to database!';
- exit;
- }
- }
-
- unset($this->queryResult);
-
- $this->connection->set_charset("utf8");
- return $this->connection;
- }
-
- public static function getInstance()
- {
- if (!empty(self::$msh)) return self::$msh;
- self::$msh = new Database();
- return self::$msh;
- }
-
- public function query($query, $params = null, $isClosed = false, $getID = false)
- {
- // $params = array("ss","string_1","string_2");
- $this->addSemicolonToQueryString($query);
-
- $imp = '';
- if ($params != null) $imp = implode(", ", $params);
- $this->queryString = "{$query} ($imp)";
-
- if ($this->isWriteType($query)) {
- $boolWrite = true;
-
- foreach (self::$arrSkip as $tabla) {
- if (strpos($query, $tabla)) {
- $boolWrite = false;
- break;
- }
- }
-
- // A nagios test ne irja tele a cl_hlusers.writelog tablat
- if (strpos($_SERVER['REQUEST_URI'], 'nagios_monitor.php') !== false || strpos($_SERVER['REQUEST_URI'], 'maintenance/test_API.php') !== false || $_SERVER['SERVER_NAME'] == 'secondary.cadline.hu')
- $boolWrite = false;
-
- // A tesztek futtatasakor ne logolja a modositasokat (majd a webformos)
- if (strpos($_SERVER['REQUEST_URI'], 'maintenance/tips.php') /*&& $_SERVER['REMOTE_ADDR'] == '185.43.206.63'*/) {
- $paramIndex = 5;
- if ((substr($params[$paramIndex], 0, 7) == '3710018') || (substr($params[$paramIndex], 0, 7) == '3710028')
- || (substr($params[$paramIndex], 0, 7) == '3710038') || (substr($params[$paramIndex], 0, 7) == '3700078')
- || (substr($params[$paramIndex], 0, 7) == '3700018')
- ) {
- $boolWrite = false;
- }
- }
-
- $func = addslashes("function: " . __FUNCTION__ . " method: " . __METHOD__)/*.' --> '.$params[$paramIndex]*/;
-
- if ($boolWrite) {
- mysqli_query($this->connection, "INSERT INTO `cl_hlusers`.`writelog` (`user`,`datum`,`ip`,`url`,`func`,`sql`) VALUES (
- '" . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.archlinexp.com') . "',
- '" . date("Y-m-d H:i:s", time()) . "',
- '" . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1') . "',
- '" . (isset($_SERVER['SERVER_NAME']) ? addslashes($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']) : '') . "',
- '" . $func . "','" . addslashes($query) . "');");
- }
- }
-
- $this->queryResult = $this->connection->prepare($query);
-
- if ($params != null) {
- $tmp = array();
- foreach ($params as $key => $value) $tmp[$key] = &$params[$key];
- call_user_func_array(array($this->queryResult, 'bind_param'), $tmp);
- }
-
- $this->queryResult->execute();
- if (mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection) . ' Query: ' . $query);
-
- if ($getID) return $this->getInsertedId();
- if ($isClosed) $this->queryResult->close();
- }
-
- public function insert($table, $infoArr, $type, $needEscape = true)
- {
- $columArr = array();
- $bindArr = array();
- $endArr = array();
- $colums = '';
- $values = '';
-
- array_push($endArr, $type);
-
- foreach ($infoArr as $key => $value) {
- $columArr[] = "`{$key}`";
- $bindArr[] = "?";
-
- $string = !$needEscape && $key == 'versionInfo' ? $value : mysqli_real_escape_string($this->connection, $value);
- array_push($endArr, $string);
- }
-
- $colums = implode(',', $columArr);
- $values = implode(',', $bindArr);
-
- $sql = "INSERT INTO {$table} ({$colums}) VALUES ({$values});";
- return $this->query($sql, $endArr, false, true);
- }
-
- public function update($table, $infoArr, $where = false, $type, $needEscape = true)
- {
- if (!is_array($infoArr)) return false;
-
- $whereStr = '';
- $paramValue = array();
- $bindArr = array();
- $endArr = array();
- $data = '';
-
- array_push($endArr, $type);
-
- if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where, $paramValue);
- elseif ($where) $whereStr = "WHERE {$where}";
-
- foreach ($infoArr as $key => $value) {
- $bindArr[] = "`{$key}` = ?";
-
- $string = !$needEscape && $key == 'versionInfo' ? $value : mysqli_real_escape_string($this->connection, $value);
- array_push($endArr, $string);
- }
-
- foreach ($paramValue as $param) array_push($endArr, mysqli_real_escape_string($this->connection, $param));
-
- $data = implode(',', $bindArr);
-
- $query = "UPDATE {$table} SET {$data} {$whereStr};";
- return $this->query($query, $endArr, true);
- }
-
- public function delete($table, $where = false, $type)
- {
- $whereStr = '';
- $paramValue = array();
- $endArr = array();
-
- array_push($endArr, $type);
-
- if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where, $paramValue);
- elseif ($where) $whereStr = "WHERE {$where}";
-
- foreach ($paramValue as $param) array_push($endArr, mysqli_real_escape_string($this->connection, $param));
-
- $query = "DELETE FROM {$table} {$whereStr};";
- return $this->query($query, $endArr, true);
- }
-
- public function fetchNext()
- {
- $result = $this->get_row();
- $this->queryResult->free_result();
- $this->queryResult->close();
-
- return $result;
- }
-
- public function fetchAssoc()
- {
- $result = $this->get_result();
- $this->queryResult->free_result();
- $this->queryResult->close();
-
- return $result;
- }
-
- protected function get_result()
- {
- $result = array();
- $this->queryResult->store_result();
- for ($i = 0; $i < $this->queryResult->num_rows; $i++) {
- $metadata = $this->queryResult->result_metadata();
- $params = array();
- while ($field = $metadata->fetch_field()) $params[] = &$result[$i][$field->name];
- call_user_func_array(array($this->queryResult, 'bind_result'), $params);
- $this->queryResult->fetch();
- }
-
- if (!empty($result)) return $result;
- else return null;
- }
-
- protected function get_row()
- {
- $result = array();
- $this->queryResult->store_result();
-
- if ($this->queryResult->num_rows > 0) {
- for ($i = 0; $i < 1; $i++) {
- $metadata = $this->queryResult->result_metadata();
- $params = array();
- while ($field = $metadata->fetch_field()) $params[] = &$result[$i][$field->name];
- call_user_func_array(array($this->queryResult, 'bind_result'), $params);
- $this->queryResult->fetch();
- }
- }
-
- if (!empty($result)) return $result[0];
- else return null;
- }
-
- public function getInsertedId()
- {
- $id = $this->queryResult->insert_id;
- $this->queryResult->close();
-
- return $id;
- }
-
- private function addSemicolonToQueryString(&$query)
- {
- $query = rtrim($query);
-
- if (substr($query, -1) != ';') $query = "{$query};";
- }
-
- private function whereMakerPriv($where, &$paramValue = array())
- {
- 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}` = ? ";
- array_push($paramValue, $value);
- }
- }
- return $back;
- }
-
- private function isWriteType($sql)
- {
- if (!preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) {
- return false;
- }
- return true;
- }
-
- public function getQueryString()
- {
- return $this->queryString;
- }
- public function getQueryResult()
- {
- return $this->queryResult;
- }
-}
diff --git a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php.evidence.json b/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php.evidence.json
deleted file mode 100644
index d657f93..0000000
--- a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php.evidence.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "finding_ref": "7157",
- "log_excerpt": "[quarantine] www.archline.hu:common_cadline_libraries/crm_database.class.php -> quarantined (dest=/var/lib/web-hids/quarantine/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_database.class.php)",
- "original_sha256": "56e3117ed333988553caded835b34aa3575faa13dd50d2c08d9ed113ac50e307",
- "original_stat": {
- "gid": 30037,
- "mtime": 1740755110,
- "size": 19735,
- "uid": 12425
- },
- "rel_path": "common_cadline_libraries/crm_database.class.php",
- "result": "quarantined",
- "timestamp": "20260718T160241Z",
- "vhost": "www.archline.hu"
-}
diff --git a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_users.class.php b/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_users.class.php
deleted file mode 100644
index d2f5b62..0000000
--- a/var/www/hosting/archline.hu/www/common_cadline_libraries/crm_users.class.php
+++ /dev/null
@@ -1,1253 +0,0 @@
-query($query, array('i', (int)$nUserID));
- $crmUser = Database::getInstance()->fetchNext();
-
- if (empty($crmUser) || (int)$crmUser['nUserStatus'] >= (int)$newStatus) return false;
-
- $tomb = array(
- 'nUserID' => (int)$nUserID,
- 'val' => (int)$newStatus,
- 'changeDate' => date('Y-m-d H:i:s', time()),
- 'nManagerID' => _MANAGER_
- );
-
- Database::getInstance()->update(CRMADATBAZIS . ".users", array('nUserStatus' => (int)$newStatus), array('nUserID' => (int)$nUserID), 'ii');
- Database::getInstance()->insert(CRMADATBAZIS . ".u_userstatus_history", $tomb, 'iisi');
-
- return true;
- }
-
- public static function AddUser($tomb = array(), $newsletter = 1, $bind_type)
- {
- if (trim($tomb['strName']) == '' || trim($tomb['strEMail']) == '') return 0;
-
- $query = "SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE email = ?";
- Database::getInstance()->query($query, array('s', trim(addslashes($tomb['strEMail']))));
- $exist = Database::getInstance()->fetchNext();
- if (!$exist) { // ha nincs a crm-ben user rekordja, akkor létrehozza
- if (!isset($tomb['dateInsert'])) {
- $tomb['dateInsert'] = time();
- $bind_type .= 'i';
- }
- if (!isset($tomb['old_db'])) {
- $tomb['old_db'] = (strpos($_SERVER['HTTP_HOST'], ".com") ? 'clusers_eng' : 'clusers');
- $bind_type .= 's';
- }
-
- $nUserID = Database::getInstance()->insert(CRMADATBAZIS . ".users", $tomb, $bind_type);
-
- Database::getInstance()->insert(
- CRMADATBAZIS . ".u_emails",
- array(
- 'email' => trim(addslashes($tomb['strEMail'])),
- 'nUserID' => $nUserID,
- 'newsletter' => $newsletter
- ),
- 'sii'
- );
- } else {
- $nUserID = $exist['nUserID'];
- }
- return $nUserID;
- }
-
- public static function AddUserHistory($tomb = array())
- {
- if (!isset($tomb['nUserID']) || !isset($tomb['nTopicID'])) return false;
-
- //ezeket mindenképpen kitölti (kötelező mezők))
- $rec['nUserID'] = $tomb['nUserID'];
- $rec['nTopicID'] = $tomb['nTopicID'];
- $rec['dateEvent'] = (isset($tomb['dateEvent']) ? $tomb['dateEvent'] : date('Y-m-d', time()));
- $rec['strPlace'] = (isset($tomb['strPlace']) ? $tomb['strPlace'] : "web");
- $rec['strInfo'] = (isset($tomb['strInfo']) ? $tomb['strInfo'] : '');
- $rec['nManagerID'] = (isset($tomb['nManagerID']) ? $tomb['nManagerID'] : 36);
- $rec['insertDate'] = date('Y-m-d H:i:s', time());
- $rec['updateDate'] = date('Y-m-d H:i:s', time());
-
- $bind_type = 'iisssiss';
-
- //ezeket csak akkor tölti ki, ha megkapta az értékét, egyébként NULL
- if (isset($tomb['strTime'])) {
- $rec['strTime'] = $tomb['strTime'];
- $bind_type .= 's';
- }
- if (isset($tomb['strAccno'])) {
- $rec['strAccno'] = $tomb['strAccno'];
- $bind_type .= 's';
- }
- if (isset($tomb['datePaydate'])) {
- $rec['datePaydate'] = $tomb['datePaydate'];
- $bind_type .= 's';
- }
- if (isset($tomb['strAccno2'])) {
- $rec['strAccno2'] = $tomb['strAccno2'];
- $bind_type .= 's';
- }
- if (isset($tomb['datePaydate2'])) {
- $rec['datePaydate2'] = $tomb['datePaydate2'];
- $bind_type .= 's';
- }
- if (isset($tomb['bContract'])) {
- $rec['bContract'] = $tomb['bContract'];
- $bind_type .= 's';
- }
- if (isset($tomb['applicationID'])) {
- $rec['applicationID'] = $tomb['applicationID'];
- $bind_type .= 'i';
- }
-
- $newID = Database::getInstance()->insert(CRMADATBAZIS . ".u_history", $rec, $bind_type);
-
- return $newID;
- }
-
- public static function UpdateUserHistory($tomb = array(), $nEventID = 0, $bind_type)
- {
- if (empty($tomb) || (int)$nEventID == 0) return false;
-
- $tomb['updateDate'] = date('Y-m-d H:i:s', time());
- $bind_type .= 'si';
- Database::getInstance()->update(CRMADATBAZIS . ".u_history", $tomb, array('nEventID' => $nEventID), $bind_type);
-
- return true;
- }
-
- public static function GetValidLease($nUserID = 0, $level = 0)
- {
- $nTopicID = 0;
- $lease = false;
-
- switch ((int)$level) {
- case 1: {
- $nTopicID = _COURSE_PRICE_PRELIMINARY_;
- break;
- }
- case 2: {
- $nTopicID = _COURSE_PRICE_INTERMEDIATE_;
- break;
- }
- }
-
- if ((int)$nUserID == 0 || (int)$level == 0 || (int)$nTopicID == 0) return false;
-
- $query = "SELECT *, dateEvent AS validFrom, DATE_ADD(dateEvent, INTERVAL " . _LEASE_VALID_DAYS_ . " DAY) AS validThrough FROM `" . CRMADATBAZIS . "`.`u_history` WHERE nUserID = ? AND nTopicID = ? AND DATE_ADD(dateEvent, INTERVAL " . _LEASE_VALID_DAYS_ . " DAY) >= CURRENT_DATE ORDER BY nEventID DESC";
- Database::getInstance()->query($query, array('ii', (int)$nUserID, (int)$nTopicID));
- $lease = Database::getInstance()->fetchNext();
- return (($lease && count($lease)) ? $lease : false);
- }
-
- public static function levelesemeny($email, $osztaly, $fv, $topicid, $likeegyezes, $ujinfo, $nyelv = "", $hibainfo = "")
- {
- if (!is_numeric($topicid)) {
- Database::getInstance()->insert(
- JMLADATBAZIS . '.a_hibak',
- array(
- 'osztaly' => $osztaly,
- 'fv' => $fv,
- 'hiba' => "Hibas topic id: {$topicid}",
- 'datum' => date('Y-m-d H:i:s', time())
- ),
- 'ssss'
- );
- return "nincstopic";
- }
-
- $query = "SELECT nUserID FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE email = ? AND deleted = ?";
- Database::getInstance()->query($query, array('si', $email, 0));
- $user = Database::getInstance()->fetchAssoc();
-
- if (count($user)) {
- foreach ($user as $row) {
- self::levelbeszuras($row['nUserID'], $email, $osztaly, $fv, $topicid, $likeegyezes, $ujinfo, $nyelv, $hibainfo);
- }
- }
- }
-
- public static function levelbeszuras($nUserID, $email, $osztaly, $fv, $topicid, $likeegyezes, $ujinfo, $nyelv = "", $hibainfo = "")
- {
- $query = "SELECT * FROM `" . CRMADATBAZIS . "`.`u_history`
- WHERE dateEvent = ? AND nTopicID = ? AND nUserID = ? AND (strInfo = ? OR strInfo LIKE ?)";
- Database::getInstance()->query($query, array('siiss', date('Y-m-d', time()), $topicid, $nUserID, $likeegyezes, "%{$likeegyezes}%"));
- $res = Database::getInstance()->fetchAssoc();
-
- if (count($res) == 0) {
- self::AddUserHistory(array(
- 'nUserID' => $nUserID,
- 'nTopicID' => $topicid,
- 'strInfo' => $ujinfo
- ));
-
- // nUserStatus atallitasa
- self::SetUserStatus($nUserID, 1);
-
- // esely atallitasa
- $user2 = (object)$res[0];
-
- if ((int)$user2->nEsely < 2) {
- $query = "SELECT * FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE hlUser = ? AND SUBSTRING(hlNum, 1, 2) = ? AND hlStat = ?";
- Database::getInstance()->query($query, array('ssi', $nUserID, '36', 1));
- $felhasz = Database::getInstance()->fetchNext();
-
- if (empty($felhasz)) {
- $query = "SELECT count(nEventID) darab FROM `" . CRMADATBAZIS . "`.`u_history` WHERE nUserID = ?";
- Database::getInstance()->query($query, array('i', $nUserID));
- $res = Database::getInstance()->fetchNext();
- $levelesemenyekszama = (object)$res;
-
- if ($levelesemenyekszama->darab >= 2)
- Database::getInstance()->update(CRMADATBAZIS . ".users", array('nEsely' => 2), array('nUserID' => $nUserID), 'ii');
- elseif ($levelesemenyekszama->darab == 1)
- Database::getInstance()->update(CRMADATBAZIS . ".users", array('nEsely' => 1), array('nUserID' => $nUserID), 'ii');
- }
- }
- }
- }
-
- public static function deleteUser($nUserID)
- {
- Database::getInstance()->delete(CRMADATBAZIS . ".u_history", array('nUserID' => $nUserID), 'i');
- Database::getInstance()->delete(CRMADATBAZIS . ".u_userstatus_history", array('nUserID' => $nUserID), 'i');
- Database::getInstance()->delete(CRMADATBAZIS . ".u_emails", array('nUserID' => $nUserID), 'i');
- Database::getInstance()->delete(CRMADATBAZIS . ".users", array('nUserID' => $nUserID), 'i');
- }
-
- public static function getFirstDayEmailTemplate($email)
- {
- $url_1 = 'https://www.archlinexp.com/maintenance/followedlinks.php?id=' . base64_encode('?email=' . $email . '&alias=trial-first');
- $url_2 = 'https://www.archlinexp.com/maintenance/followedlinks.php?id=' . base64_encode('?email=' . $email . '&alias=trial-first-[2]');
-
- $template = array();
-
- $template['subject'] = "All the inspiration you need for your ARCHLine.XP project";
- $template['body'] = "
-
-
-
-
-
-
-
-
- Let's help you get started as quickly as possible.
-
-
- But before you jump in... Would you like to find out how you can get more out of ARCHLine.XP while saving yourself dozens of hours in the process.
-
-
- Check out our courses.
-
-
- Are you an architect? - ARCHITECTURAL MODELING COURSE
-
- Are you an interior designer? - INTERIOR DESIGN COURSE -
- - - - Start Exploring - - -
-
-
-
- You've opened the door to the ARCHLine.XP CAD/BIM design software.
-
-
- Many courses, case studies, tutorials are ready to guide on your next project, from floor plan to stunning visuals.
-
-
- It's time to start.
-
-
- Are you an architect? - 12 tips to design walls.
-
- Are you an interior designer? - Modern Kitchen Modelling -
- - - - Start Exploring - - -
-
-
-
- ARCHLine.XP gives you a lot more control over how your project look.
-
-
- Learn how to document, visualize or take quantity take-off.
-
-
- Learn quickly the main points.
-
-
- The Layout tool offers features that allow you to create high-quality documents about your project.
-
- Taking a good photo-realistic image is not the same as pressing a button.
-
-
- Learn how to render in ARCHLine.XP.
-
- *DLGSTR3250*
*DLGSTR3251*
*DLGSTR3262*
-