diff --git a/admin/survey/SurveyAdminAjax.php b/admin/survey/SurveyAdminAjax.php
index 40c5d1d1f..5b56afc35 100644
--- a/admin/survey/SurveyAdminAjax.php
+++ b/admin/survey/SurveyAdminAjax.php
@@ -579,6 +579,13 @@ class SurveyAdminAjax {
if (!$sql)
echo mysqli_error($GLOBALS['connect_db']);
}
+
+ // Save app settings
+ foreach($_POST as $what => $value){
+ if(substr($what, 0, 3) == 'as_'){
+ AppSettings::getInstance()->saveSetting(substr($what, 3), $value);
+ }
+ }
}
elseif ($_GET['m'] == 'global_user_settings') {
if (isset ($_POST['language'])) {
diff --git a/admin/survey/SurveyAdminSettings.php b/admin/survey/SurveyAdminSettings.php
index a25045452..947d9e2b5 100644
--- a/admin/survey/SurveyAdminSettings.php
+++ b/admin/survey/SurveyAdminSettings.php
@@ -4817,6 +4817,7 @@ class SurveyAdminSettings {
/**
* @desc prikaze dropdown z nastavitvami ankete (globalne, za celo 1ko) -- Prva stran -> Nastavitve -> Sistemske nastavitve
+ * Sistemske nastavitve: mora biti admin da ima dostop
*/
function anketa_nastavitve_system() {
global $lang;
@@ -4825,95 +4826,119 @@ class SurveyAdminSettings {
global $admin_type;
global $global_user_id;
- /* ** Sistemske nastavitve: mora biti admin da ima dostop *** */
- echo '
' . "\n\r";
- if ($admin_type == 0) {
+ // Ni admin - nima pravic
+ if ($admin_type != 0) {
- echo '
';
+ echo '';
+
+
+ // Missingi
+ $smv = new SurveyMissingValues();
+ $smv->SystemFilters();
+
+
+ // save gumb
+ echo '
';
+
+ echo '
';
+
+ // div za prikaz uspešnosti shranjevanja
+ if ($_GET['s'] == '1') {
+ echo '
';
+ echo '';
+ }
+
+
+ echo '
';
}
/**
diff --git a/admin/survey/classes/class.AppSettings.php b/admin/survey/classes/class.AppSettings.php
index 82c2b9c96..5268066c7 100644
--- a/admin/survey/classes/class.AppSettings.php
+++ b/admin/survey/classes/class.AppSettings.php
@@ -4,87 +4,7 @@
Class ki skrbi za vse globalne nastavitve aplikacije (ki so bile vcasih v settings_optional.php)
Spremenljivke:
- 'debug' => 0,
-
- // INSTALLATION TYPE (0->lastna, 1->www, 2->aai, 3->virtualka)
- 'installation_type' => 0,
-
- // APP SETTINGS
- 'app_settings_app_name' => '',
- 'app_settings_admin_email' => '',
- 'app_settings_owner' => '',
- 'app_settings_owner_website' => '',
- 'app_settings_footer_custom' => 0,
- 'app_settings_footer_text' => '',
- 'app_settings_footer_survey_custom' => 0,
- 'app_settings_footer_survey_text' => '',
- 'app_settings_email_signature_custom'=> 0,
- 'app_settings_email_signature_text' => '',
- 'app_settings_survey_finish_url' => '',
- 'app_settings_export_type' => 'new',
- 'app_settings_commercial_packages' => 0,
-
- APP LIMITS
- 'app_limits_clicks_per_minute_limit'=> '',
- 'app_limits_question_count_limit' => '',
- 'app_limits_response_count_limit' => '',
- 'app_limits_invitation_count_limit' => '',
- 'app_limits_admin_allow_only_ip' => '',
-
- SMTP SETTINGS
- 'email_server_settings_SMTPFrom' => '',
- 'email_server_settings_SMTPFromNice'=> '',
- 'email_server_settings_SMTPReplyTo' => '',
- 'email_server_settings_SMTPHost' => '',
- 'email_server_settings_SMTPPort' => '',
- 'email_server_settings_SMTPSecure' => '',
- 'email_server_settings_SMTPAuth' => '',
- 'email_server_settings_SMTPUsername'=> '',
- 'email_server_settings_SMTPPassword'=> '',
- 'email_server_fromSurvey' => '',
-
- 'confirm_registration' => 0,
- 'confirm_registration_admin' => '',
- 'gdpr_admin_email' => '',
-
- 'meta_admin_ids' => '',
-
- GOOGLE
- 'google_recaptcha_sitekey' => '',
- 'google_secret_captcha' => '',
- 'google_login_client_id' => '',
- 'google_login_client_secret' => '',
- 'google_maps_API_key' => '',
-
- FACEBOOK
- 'facebook_appid' => '',
- 'facebook_appsecret' => '',
-
- MODULE MAZA
- 'maza_FCM_server_key' => '',
- 'maza_APP_special_login_key' => '',
- 'maza_NextPinMainToken' => '',
- 'maza_NextPinMainPassword' => '',
-
- MODULE HIERARHIJA
- 'hierarhija_folder_id' => '',
- 'hierarhija_default_id' => '',
-
- SQUALO MAIL
- 'squalo_user' => '',
- 'squalo_key' => '',
-
- CEBELICA PAYMENTS
- 'cebelica_api' => '',
-
- STRIPE PAYMENTS
- 'stripe_key' => '',
- 'stripe_secret' => '',
-
- PAYPAL PAYMENTS
- 'paypal_account' => '',
- 'paypal_client_id' => '',
- 'paypal_secret' => '',
+
*/
@@ -94,6 +14,103 @@ class AppSettings {
private static $instance = null;
private $settings = array();
+
+ private $variables = array(
+
+ 'basic' => array(
+ 'debug',
+
+ // INSTALLATION TYPE (0->lastna, 1->www, 2->aai, 3->virtualka)
+ 'installation_type',
+
+ 'confirm_registration',
+ 'confirm_registration_admin',
+
+ 'gdpr_admin_email',
+
+ 'meta_admin_ids',
+ ),
+
+ // APP SETTINGS
+ 'info' => array(
+ 'app_settings-app_name',
+ 'app_settings-admin_email',
+ 'app_settings-owner',
+ 'app_settings-owner_website',
+ 'app_settings-footer_custom',
+ 'app_settings-footer_text',
+ 'app_settings-footer_survey_custom',
+ 'app_settings-footer_survey_text',
+ 'app_settings-email_signature_custom',
+ 'app_settings-email_signature_text',
+ 'app_settings-survey_finish_url',
+ 'app_settings-export_type',
+ 'app_settings-commercial_packages',
+ ),
+
+ // APP LIMITS
+ 'limits' => array(
+ 'app_limits-clicks_per_minute_limit',
+ 'app_limits-question_count_limit',
+ 'app_limits-response_count_limit',
+ 'app_limits-invitation_count_limit',
+ 'app_limits-admin_allow_only_ip',
+ ),
+
+ // SMTP SETTINGS
+ 'smtp' => array(
+ 'email_server_settings-SMTPFrom',
+ 'email_server_settings-SMTPFromNice',
+ 'email_server_settings-SMTPReplyTo',
+ 'email_server_settings-SMTPHost',
+ 'email_server_settings-SMTPPort',
+ 'email_server_settings-SMTPSecure',
+ 'email_server_settings-SMTPAuth',
+ 'email_server_settings-SMTPUsername',
+ 'email_server_settings-SMTPPassword',
+ 'email_server_fromSurvey',
+ ),
+
+ 'modules' => array(
+
+ // GOOGLE
+ 'google-recaptcha_sitekey',
+ 'google-secret_captcha',
+ 'google-login_client_id',
+ 'google-login_client_secret',
+ 'google-maps_API_key',
+
+ // FACEBOOK
+ 'facebook-appid',
+ 'facebook-appsecret',
+
+ // MODULE MAZA
+ 'maza-FCM_server_key',
+ 'maza-APP_special_login_key',
+ 'maza-NextPinMainToken',
+ 'maza-NextPinMainPassword',
+
+ // MODULE HIERARHIJA
+ 'hierarhija-folder_id',
+ 'hierarhija-default_id',
+
+ // SQUALO MAIL
+ 'squalo-user',
+ 'squalo-key',
+
+ // CEBELICA PAYMENTS
+ 'cebelica_api',
+
+ // STRIPE PAYMENTS
+ 'stripe-key',
+ 'stripe-secret',
+
+ // PAYPAL PAYMENTS
+ 'paypal-account',
+ 'paypal-client_id',
+ 'paypal-secret'
+ )
+ );
private function __construct(){
@@ -125,15 +142,6 @@ class AppSettings {
}
- // Get all app settings
- public function getAllSettings(){
-
- if(isset($this->settings[$what]))
- return $this->settings;
- else
- return false;
- }
-
// Get app setting
public function getSetting($what){
@@ -161,11 +169,33 @@ class AppSettings {
public function saveSetting($what, $value){
global $site_domain;
- $sqlSetting = sisplet_query("UPDATE app_settings SET value='".$value."' WHERE what='".$what."' domain='".$site_domain."'");
+ $sqlSetting = sisplet_query("UPDATE app_settings SET value='".$value."' WHERE what='".$what."' AND domain='".$site_domain."'");
$this->settings[$what] = $value;
+ }
- //AppSettings::getInstance()->getSetting('app_settings-commercial_packages') === true
+
+ // Display app settings
+ public function displaySettingsGroup($group){
+
+ echo ' ';
+
+ $setting_variables = $this->variables[$group];
+
+ foreach($setting_variables as $what){
+ $this->displaySetting($what);
+ }
+ }
+
+ // Display app single setting
+ public function displaySetting($what){
+ global $lang;
+
+ echo ''.$lang['as_'.$what].': ';
+
+ echo ' ';
+
+ echo ' ';
}
}
diff --git a/admin/survey/classes/class.SurveyCheck.php b/admin/survey/classes/class.SurveyCheck.php
index 30bd2703a..4ad9346f2 100644
--- a/admin/survey/classes/class.SurveyCheck.php
+++ b/admin/survey/classes/class.SurveyCheck.php
@@ -88,6 +88,8 @@ class SurveyCheck {
// Obvestilo (mail adminu) posljemo pri dosezeni stevilki
if($stevilo_odgovorov == AppSettings::getInstance()->getSetting('app_limits-response_count_limit')){
$this->sendAlert($alert_type='limit_responses', $stevilo_odgovorov);
+
+ // Deaktiviramo anketo, ce je aktivna ?
}
// Ce je na anketo ze vec responsov kot je limit
@@ -160,26 +162,26 @@ class SurveyCheck {
return true;
// Preverimo ce je id ankete ustrezno nastavljen
- if(!isset($_GET['anketa']) || $_GET['anketa'] <= 0)
+ if(!isset($this->anketa) || $this->anketa <= 0)
return true;
$click_time = time();
- $sql = sisplet_query("SELECT click_count, click_time FROM srv_clicks WHERE ank_id='".$_GET['anketa']."'");
+ $sql = sisplet_query("SELECT click_count, click_time FROM srv_clicks WHERE ank_id='".$this->anketa."'");
if (mysqli_num_rows($sql) > 0) {
list($click_count, $first_click_time) = mysqli_fetch_array($sql);
// Ce nismo znotraj minute vse resetiramo in pustimo naprej
if($click_time - $first_click_time > 60){
- $sqlI = sisplet_query("UPDATE srv_clicks SET click_count='1', click_time='".$click_time."' WHERE ank_id='".$_GET['anketa']."'");
+ $sqlI = sisplet_query("UPDATE srv_clicks SET click_count='1', click_time='".$click_time."' WHERE ank_id='".$this->anketa."'");
return true;
}
// Click count je ok - pustimo naprej
if($click_count <= AppSettings::getInstance()->getSetting('app_limits-clicks_per_minute_limit')){
- $sqlI = sisplet_query("UPDATE srv_clicks SET click_count=click_count+1 WHERE ank_id='".$_GET['anketa']."'");
+ $sqlI = sisplet_query("UPDATE srv_clicks SET click_count=click_count+1 WHERE ank_id='".$this->anketa."'");
// Dosegli smo limit - posljemo mail adminu
if($click_count == AppSettings::getInstance()->getSetting('app_limits-clicks_per_minute_limit')){
@@ -202,7 +204,7 @@ class SurveyCheck {
}
}
else{
- $sqlI = sisplet_query("INSERT INTO srv_clicks (ank_id, click_count, click_time) VALUES ('".$_GET['anketa']."', '1', '".$click_time."')");
+ $sqlI = sisplet_query("INSERT INTO srv_clicks (ank_id, click_count, click_time) VALUES ('".$this->anketa."', '1', '".$click_time."')");
}
return true;
diff --git a/admin/survey/classes/class.SurveyMissingValues.php b/admin/survey/classes/class.SurveyMissingValues.php
index c88cced30..56c7cdf98 100644
--- a/admin/survey/classes/class.SurveyMissingValues.php
+++ b/admin/survey/classes/class.SurveyMissingValues.php
@@ -44,14 +44,19 @@ class SurveyMissingValues
* @param mixed $anketa
*/
function __construct ($anketa = 0) {
+
if (self::$anketa == null) {
- if (isset ($_GET['anketa']) && (int)$_GET['anketa'] > 0) {
- self::$anketa = $_GET['anketa'];
- } elseif (isset ($_POST['anketa']) && (int)$_POST['anketa'] > 0) {
- self::$anketa = $_POST['anketa'];
- } elseif ((int)$anketa > 0) {
+
+ if ((int)$anketa > 0) {
self::$anketa = (int)$anketa;
}
+ elseif (isset ($_GET['anketa']) && (int)$_GET['anketa'] > 0) {
+ self::$anketa = $_GET['anketa'];
+ }
+ elseif (isset ($_POST['anketa']) && (int)$_POST['anketa'] > 0) {
+ self::$anketa = $_POST['anketa'];
+ }
+
# polovimo nastavitve ankete če obstaja
if (self::$anketa != null && (int)self::$anketa > 0) {
diff --git a/function.php b/function.php
index a96fecb3b..e9a7ecd7a 100644
--- a/function.php
+++ b/function.php
@@ -239,8 +239,11 @@ require_once('admin/survey/classes/class.AppSettings.php');
require_once('admin/survey/classes/class.SurveyCheck.php');
// Preverimo klike na minuto pri izpolnjevanju anekte da se ne zapolni sql
-if(isset($_GET['anketa']) && $_GET['anketa'] > 0){
- $survey_check = new SurveyCheck($_GET['anketa']);
+if(isset($_GET['anketa'])){
+
+ $anketa_id = getSurveyIdFromHash($_GET['anketa']);
+
+ $survey_check = new SurveyCheck($anketa_id);
$survey_check->checkClicksPerMinute();
}
diff --git a/lang/1.php b/lang/1.php
index 24cc66de9..8732a3659 100644
--- a/lang/1.php
+++ b/lang/1.php
@@ -7448,6 +7448,84 @@ $lang = array (
+ // APP SETTINGS //
+ 'as_basic' => "Osnovne nastavitve",
+ 'as_info' => "Info aplikacije",
+ 'as_limits' => "Omejitve aplikacije",
+ 'as_smtp' => "Nastavitve email strežnika (SMTP)",
+ 'as_modules' => "Nastavitve dodatnih modulov",
+
+ 'as_debug' => "Debug mode",
+ 'as_installation_type' => "Tip namestitve (0-lastna, 1-www, 2-aai, 3-virtualka)",
+
+ 'as_app_settings-app_name' => "Ime aplikacije",
+ 'as_app_settings-admin_email' => "Email administratorja",
+ 'as_app_settings-owner' => "Ime lastnika",
+ 'as_app_settings-owner_website' => "Spletna stran lastnika",
+ 'as_app_settings-footer_custom' => "Noga po meri",
+ 'as_app_settings-footer_text' => "Besedilo v nogi",
+ 'as_app_settings-footer_survey_custom' => "Noga v anketi po meri",
+ 'as_app_settings-footer_survey_text' => "Besedilo v nogi ankete",
+ 'as_app_settings-email_signature_custom'=> "Podpis v emailih po meri",
+ 'as_app_settings-email_signature_text' => "Besedilo podpisa v emailih",
+ 'as_app_settings-survey_finish_url' => "Skok na URL po koncu ankete",
+ 'as_app_settings-export_type' => "Tip izvoza (\"new\" ali \"old\")",
+ 'as_app_settings-commercial_packages' => "Plačljivi paketi",
+
+ 'as_app_limits-clicks_per_minute_limit' => "Max klikov na minuto",
+ 'as_app_limits-question_count_limit' => "Max vprašanj v anketi",
+ 'as_app_limits-response_count_limit' => "Max odgovorov na anketo",
+ 'as_app_limits-invitation_count_limit' => "Max poslanih vabil v anketi",
+ 'as_app_limits-admin_allow_only_ip' => "Prijava v aplikacijo možna samo iz IP",
+
+ 'as_email_server_settings-SMTPFrom' => "SMTPFrom",
+ 'as_email_server_settings-SMTPFromNice' => "SMTPFromNice",
+ 'as_email_server_settings-SMTPReplyTo' => "SMTPReplyTo",
+ 'as_email_server_settings-SMTPHost' => "SMTPHost",
+ 'as_email_server_settings-SMTPPort' => "SMTPPort",
+ 'as_email_server_settings-SMTPSecure' => "SMTPSecure",
+ 'as_email_server_settings-SMTPAuth' => "SMTPAuth",
+ 'as_email_server_settings-SMTPUsername' => "SMTPUsername",
+ 'as_email_server_settings-SMTPPassword' => "SMTPPassword",
+ 'as_email_server_fromSurvey' => "Uporabi isti SMTP tudi za pošiljanje iz ankete",
+
+ 'as_confirm_registration' => "Administrator potrdi novo registracijo",
+ 'as_confirm_registration_admin' => "Email obveščanja o novi registraciji",
+ 'as_gdpr_admin_email' => "Email za GDPR",
+ 'as_meta_admin_ids' => "Meta admin id",
+
+ 'as_google-recaptcha_sitekey' => "Google recaptcha key",
+ 'as_google-secret_captcha' => "Google recaptcha secret",
+ 'as_google-login_client_id' => "Google login id",
+ 'as_google-login_client_secret' => "Google login secret",
+ 'as_google-maps_API_key' => "Google maps api key",
+
+ 'as_facebook-appid' => "Facebook id",
+ 'as_facebook-appsecret' => "Facebook secret",
+
+ 'as_maza-FCM_server_key' => "MAZA server key",
+ 'as_maza-APP_special_login_key' => "MAZA login key",
+ 'as_maza-NextPinMainToken' => "MAZA token",
+ 'as_maza-NextPinMainPassword' => "MAZA main password",
+
+ 'as_hierarhija-folder_id' => "Hierarhija folder id",
+ 'as_hierarhija-default_id' => "Hierarhija default id",
+
+ 'as_squalo-user' => "Squalo user",
+ 'as_squalo-key' => "Squalo key",
+
+ 'as_cebelica_api' => "Čebelica api key",
+
+ 'as_stripe-key' => "Stripe key",
+ 'as_stripe-secret' => "Stripe secret",
+
+ 'as_paypal-account' => "Paypal account",
+ 'as_paypal-client_id' => "Paypal client id",
+ 'as_paypal-secret' => "Paypal secret",
+
+
+
+
// SQUALO //
'srv_squalo' => "Squalo",
'srv_squalo_sending' => "Pošiljaj preko aplikacije Squalo",
diff --git a/lang/2.php b/lang/2.php
index fdc495ce1..c36893bd1 100644
--- a/lang/2.php
+++ b/lang/2.php
@@ -7333,6 +7333,83 @@ $lang = array (
+ // APP SETTINGS //
+ 'as_basic' => "Basic settings",
+ 'as_info' => "App info",
+ 'as_limits' => "App limits",
+ 'as_smtp' => "Email server (SMTP)",
+ 'as_modules' => "Modules settings",
+
+ 'as_debug' => "Debug mode",
+ 'as_installation_type' => "Installation type (0-lastna, 1-www, 2-aai, 3-virtualka)",
+
+ 'as_app_settings-app_name' => "App name",
+ 'as_app_settings-admin_email' => "Admin email",
+ 'as_app_settings-owner' => "Owner name",
+ 'as_app_settings-owner_website' => "Owner website",
+ 'as_app_settings-footer_custom' => "Custom footer",
+ 'as_app_settings-footer_text' => "Footer text",
+ 'as_app_settings-footer_survey_custom' => "Custom survey ",
+ 'as_app_settings-footer_survey_text' => "Survey footer text",
+ 'as_app_settings-email_signature_custom'=> "Custom email signature",
+ 'as_app_settings-email_signature_text' => "Email signature text",
+ 'as_app_settings-survey_finish_url' => "URL after survey finish",
+ 'as_app_settings-export_type' => "Export type (\"new\" or \"old\")",
+ 'as_app_settings-commercial_packages' => "Commercial packages",
+
+ 'as_app_limits-clicks_per_minute_limit' => "Max clicks per minute",
+ 'as_app_limits-question_count_limit' => "Max questions in survey",
+ 'as_app_limits-response_count_limit' => "Max responses per survey",
+ 'as_app_limits-invitation_count_limit' => "Max invitations per survey",
+ 'as_app_limits-admin_allow_only_ip' => "Login allowed only for IP",
+
+ 'as_email_server_settings-SMTPFrom' => "SMTPFrom",
+ 'as_email_server_settings-SMTPFromNice' => "SMTPFromNice",
+ 'as_email_server_settings-SMTPReplyTo' => "SMTPReplyTo",
+ 'as_email_server_settings-SMTPHost' => "SMTPHost",
+ 'as_email_server_settings-SMTPPort' => "SMTPPort",
+ 'as_email_server_settings-SMTPSecure' => "SMTPSecure",
+ 'as_email_server_settings-SMTPAuth' => "SMTPAuth",
+ 'as_email_server_settings-SMTPUsername' => "SMTPUsername",
+ 'as_email_server_settings-SMTPPassword' => "SMTPPassword",
+ 'as_email_server_fromSurvey' => "Use this smtp for emails from survey",
+
+ 'as_confirm_registration' => "Admin confirms registration",
+ 'as_confirm_registration_admin' => "Email for registration notification",
+ 'as_gdpr_admin_email' => "GDPR email",
+ 'as_meta_admin_ids' => "Meta admin id",
+
+ 'as_google-recaptcha_sitekey' => "Google recaptcha key",
+ 'as_google-secret_captcha' => "Google recaptcha secret",
+ 'as_google-login_client_id' => "Google login id",
+ 'as_google-login_client_secret' => "Google login secret",
+ 'as_google-maps_API_key' => "Google maps api key",
+
+ 'as_facebook-appid' => "Facebook id",
+ 'as_facebook-appsecret' => "Facebook secret",
+
+ 'as_maza-FCM_server_key' => "MAZA server key",
+ 'as_maza-APP_special_login_key' => "MAZA login key",
+ 'as_maza-NextPinMainToken' => "MAZA token",
+ 'as_maza-NextPinMainPassword' => "MAZA main password",
+
+ 'as_hierarhija-folder_id' => "Hierarchy folder id",
+ 'as_hierarhija-default_id' => "Hierarchy default id",
+
+ 'as_squalo-user' => "Squalo user",
+ 'as_squalo-key' => "Squalo key",
+
+ 'as_cebelica_api' => "Čebelica api key",
+
+ 'as_stripe-key' => "Stripe key",
+ 'as_stripe-secret' => "Stripe secret",
+
+ 'as_paypal-account' => "Paypal account",
+ 'as_paypal-client_id' => "Paypal client id",
+ 'as_paypal-secret' => "Paypal secret",
+
+
+
// SQUALO //
'srv_squalo' => "Squalo",