x

Основні розділи

  1. LimeSurvey Cloud проти LimeSurvey CE
  2. Короткий посібник із початку роботи - LimeSurvey 3.0+
  3. Встановлення - LimeSurvey CE
  4. Як створити хороше опитування (посібник)
  5. Початок роботи
  6. Адміністрування LimeSurvey
  7. Опитування - вступ
  8. Налаштування опитування
  9. Меню опитування
  10. Структура опитування
  11. Питання - вступ
  12. Групи питань - вступ
  13. Опитування - керування
  14. Параметри панелі інструментів опитування
  15. Багатомовне опитування
  16. ExpressionScript Engine - Короткий посібник
  17. Некатегоризовані та розширені функції
  18. Загальні поширені запитання
  19. Усунення несправностей
  20. Обхідні рішення
  21. Ліцензія
  22. Журнал змін версій
  23. Плагіни
 Actions

Додаткові налаштування

From LimeSurvey Manual

Ця сторінка, можливо, перекладена машинним способом і може містити помилки. Показати англійський оригінал · Покращити цей переклад
This page is a translated version of the page Optional settings and the translation is 100% complete.

Цей розділ призначений для тих, хто хоче змінити конфігураційні налаштування, які неможливо редагувати за допомогою графічного інтерфейсу (GUI) інсталяції LimeSurvey. Пам’ятайте, що всі зміни в кореневому каталозі LimeSurvey ви виконуєте на власний ризик. Проте якщо у вас виникли проблеми або потрібна додаткова допомога, приєднуйтеся до форумів обговорення, де вам допоможе спільнота LimeSurvey.

Вступ

Щоб змінити конфігураційні налаштування інсталяції, потрібно відредагувати додаткові налаштування. Їх можна знайти у файлі /application/config/config-defaults.php, який розташований у кореневому каталозі LimeSurvey. Стандартні налаштування звичайної інсталяції містяться в config-defaults.php. Деякі з них можна перевизначити в діалозі загальних налаштувань, а решту потрібно редагувати вручну.

  Якщо ви хочете змінити ці налаштування, не змінюйте їх у config-defaults.php, а скопіюйте потрібне налаштування/рядок до /application/config/config.php у 'config'=>array( ) і змініть його там. Усі нові або змінені налаштування з файлу config.php перевизначатимуть значення за замовчуванням із config-defaults.php.


Під час оновлення змінюються лише налаштування в config-defaults.php. Тому редагування файлу config.php збереже ваші власні налаштування.

Щоб оновити/додати налаштування LimeSurvey у /application/config/config.php, потрібно оновити масив config:

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'LimeSurveySetting'=>'New value', // Update default LimeSurvey config here
    )

Налаштування Yii

LimeSurvey використовує фреймворк Yii, який має власні конфігураційні параметри у файлах application/config/internal.php та application/config/config.php. Через конфігурацію Yii ви також можете отримати доступ до деяких специфічних конфігураційних налаштувань LimeSurvey.

Оскільки масив config.php зливається із загальною конфігурацією, ви можете замінити будь-які параметри Yii у файлі config.php.

Специфічні налаштування Yii задаються в масиві components:

    'components' => array(
        'db' => array(
            ....
        ),
        'Specific settings'=>array(
            ....
        ),
    ),
Додаткову інформацію про фреймворк Yii ви знайдете за цим посиланням.

Налаштування бази даних

Налаштування бази даних записуються до config.php файлом інсталятора, коли ви вперше встановлюєте LimeSurvey. За потреби ви можете змінити цю частину файлу config.php. Пам’ятайте, що ви робите це на власний ризик! Див. також документацію Yii та пам’ятайте, що LimeSurvey підтримує лише такі типи баз даних: mysql, pgsql, dblib, mssql і sqlsrv.

Налаштування сесій

Деякі параметри сесії можна задати в config.php (див. два приклади нижче). Ви можете розкоментувати/додати потрібну частину в config.php. Інші налаштування дивіться в документації Yii.

  Якщо вам потрібно змінити налаштування сесій, щоб на одному сервері працювало кілька екземплярів LimeSurvey, перевірте, чи не потрібно також змінити налаштування запитів для cookie csrf.


Використання сесій на основі таблиць

LimeSurvey може використовувати сесії на основі таблиць; закоментований фрагмент для цього є у згенерованому за замовчуванням файлі config.php. Щоб використовувати сесії на основі таблиць, видаліть // на початку кожного рядка.

        'session' => array (
            'class' => 'application.core.web.DbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => '{{sessions}}',
        ),
  Сесії на основі таблиць наразі не підтримуються на сервері MSSQL.


Інші зміни сесій

Якщо для вашої інсталяції LimeSurvey використовується SSL ('https'), додавання таких рядків до config.php підвищить безпеку сесії:

        // Set the cookie via SSL
        'session' => array (
            'cookieParams' => array(
                    'secure' => true, // use SSL for cookies
                    'httponly' => true // Cookies may not be used by other protocols - experimental
                ),
            ),

Якщо ви хочете зафіксувати домен для cookie, використовуйте в config.php такий синтаксис:

        // Set the domain for cookie
        'session' => array (
            'cookieParams' => array(
                    'domain' => '.example.org',
                ),
            ),

Якщо на одному сервері встановлено кілька інсталяцій, швидше й простіше задати різні назви сесій для кожного екземпляра LimeSurvey. Це може знадобитися для IE11 за певних умов (див. issue 12083)

        // Set the name of the session
        'session' => array (
            'sessionName' => "LimeSurveyN1",
            ),

Налаштування запитів

Налаштування запитів важливі, але налаштування за замовчуванням уже оптимізовані для використання з LimeSurvey. Докладніше про них читайте в документації Yii.

Наприклад, конфігурацію налаштувань запитів LimeSurvey можна змінити таким чином (на власний ризик):

        // Disable CSRF protection
        'request' => array(
            'enableCsrfValidation'=>false,    
            ),
        // Enforce a certain URL base 
        'request' => array(
            'hostInfo' => 'http://www.example.org/'  
            ),
        // Set the cookie domain name and path for CSRF protection, path is used if you have different instance on same domain
        'request' => array(
            'csrfCookie' => array( 
                'domain' => '.example.com',
                'path' => '/limesurvey/',
            )
        ),

Якщо вам потрібно змінити лише URL для електронних листів із токенами, задайте publicurl у файлі config.php.


Дозвіл на використання сесії та перевірки CSRF в iFrame

Увімкнення параметра Дозволено вбудовування iFrame у глобальних налаштуваннях безпеки лише дозволяє браузерам показувати ваші опитування в iframe. Щоб учасники могли заповнити й надіслати опитування в iframe, також потрібно змінити налаштування cookie сесії та CSRF у config.php, як описано нижче. Обидва cookie потрібно надсилати з SameSite=None, а браузери приймають такі cookie лише через дійсне HTTPS-з’єднання.

  Навіть з усіма цими налаштуваннями опитування в iframe можуть не працювати в деяких браузерах або за певних налаштувань браузера, наприклад у режимі приватного перегляду або коли сторонні cookie заблоковано. Ці налаштування було протестовано у Firefox з 81.0.2 до 115, Chromium з 85.0.4183.121 до 119 та Edge 119 із їхніми налаштуваннями за замовчуванням. LimeSurvey не надає підтримки для такої конфігурації, доступна лише підтримка спільноти.


Дозвіл на запуск сесії в iframe

Cookie сесії має бути захищеним (потрібне дійсне HTTPS-з'єднання) та httponly, а samesite має мати значення None. Ключі в cookieParams мають бути написані повністю малими літерами.

 		 'session' => array (
			'sessionName'=>'LS-VBXZZORFJZCAKGYI',
			// Uncomment the following lines if you need table-based sessions.
			// Note: Table-based sessions are currently not supported on MSSQL server.
			// 'class' => 'application.core.web.DbHttpSession',
			// 'connectionID' => 'db',
			// 'sessionTableName' => '{{sessions}}',
			'cookieParams' => array(
				'secure' => true,
				'httponly' => true,
				'samesite' => 'None',
			),
		 ),

Дозвіл CSRF cookie в iframe

Як і для cookie сесії, CSRF cookie має бути захищеним, а sameSite має мати значення None. Зверніть увагу, що тут ключ записується як sameSite. Додайте весь масив request на тому самому рівні, що й session.

		'request' => array(
			'enableCsrfValidation'=>true,
			'csrfCookie' => array(
				'sameSite' => 'None',
				'secure' => true,
			),
		),

Налаштування URL

  Якщо потрібно змінити лише URL-адресу для електронних листів із токенами та інших листів, вкажіть publicurl у файлі config.php.


Щоб змінити стандартні налаштування URL, оновіть urlManager:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'showScriptName' => false,
		),


Ви також можете додати .html після ID опитування таким чином:

       // Use short URL
		'urlManager' => array(
			'urlFormat' => 'path',
			'rules' => array (
			    '<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
			 ),
			'showScriptName' => false,
		),

Додаткову інформацію дивіться в документації Yii.

Налаштування журналювання

Yii пропонує різні рішення для створення журналів. Щоб дізнатися більше про них, перегляньте спеціальну тему про журналювання. LimeSurvey за умовчанням використовує '1' або '2', що дозволяє кожному веб-користувачу бачити журнали. Ви можете створити власні налаштування, використовуючи безпосередньо Yii.

Наприклад, швидке рішення для запису помилок і попереджень у файли таке:

return array(
	'components' => array(
		/* Other component part here 'db' for example */
		'log' => array(
			'routes' => array(
				'fileError' => array(
					'class' => 'CFileLogRoute',
					'levels' => 'warning, error',
					'except' => 'exception.CHttpException.404',
				),
			),
		),
		/* Other component part here 'urlManager' for example */
	),
	/* Final part (with 'runtimePath' 'config' for example) */
);
 Hint: За умовчанням файл зберігається в limesurvey/tmp/runtime/application.log, який розташований у кореневій папці LimeSurvey.
  Yii використовує шлях runtime. За умовчанням журнали доступні через веб. Вони можуть містити багато інформації з вашого сервера. Краще використовувати каталог, до якого немає доступу через веб. Ви можете задати його в routes або оновивши шлях Runtime.

.

Шлях Runtime

Шлях runtime має бути каталогом, доступним для читання та запису для «веб-користувача». Однак шлях runtime містить файли з потенційно конфіденційною інформацією, які розташовані в області публічного веб-доступу. LimeSurvey збирає ці файли в тимчасовому каталозі кореневого каталогу LimeSurvey. Щоб усунути доступ до таких важливих даних, ви можете задати шлях runtime поза публічним веб-доступом, відредагувавши відповідні рядки у файлі /application/config/config.php:

 
return array(
  'components' => array(
    […]
    'runtimePath'=>'/var/limesurvey/runtime/',
    'config'=>array(
    […]
    )
  )
)

Загальні налаштування

  • sitename: Задає назву вашому сайту опитувань. Ця назва відображатиметься в огляді списку опитувань та в заголовку адміністрування. Значення за умовчанням — 'LimeSurvey'; його можна змінити в діалоговому вікні загальні налаштування або відредагувати в config.php.
  • siteadminemail: Це електронна адреса адміністратора сайту за умовчанням, яка використовується для системних повідомлень та контактних опцій. Це налаштування використовується лише як значення за умовчанням і може бути змінене в діалоговому вікні загальні налаштування.
  • showEmailInError: Використовувати електронну адресу адміністратора сайту за умовчанням (siteadminemail) для посилання mailto на сторінці помилки. Вимкніть, щоб показувати лише ім'я адміністратора. За умовчанням увімкнено, щоб уникнути додаткового спаму на адресу адміністратора.
  • siteadminbounce: Це електронна адреса, на яку надсилатимуться повернуті листи. Це налаштування використовується лише як значення за умовчанням і може бути змінене в загальних налаштуваннях.
  • siteadminname: Справжнє ім'я адміністратора сайту. Це налаштування використовується лише як значення за умовчанням і може бути змінене в діалоговому вікні загальні налаштування).
  • proxy_host_name: Це ім'я хоста вашого проксі-сервера (його потрібно вказати, якщо ви працюєте за проксі та хочете оновлювати LimeSurvey за допомогою ComfortUpdate).
  • proxy_host_port: Це порт вашого проксі-сервера (його потрібно вказати, якщо ви працюєте за проксі та хочете оновлювати LimeSurvey за допомогою ComfortUpdate).

Безпека

  • maxLoginAttempt: Це кількість спроб, які має користувач для введення правильного пароля, перш ніж його IP-адресу буде заблоковано. Значення за умовчанням — 3; його можна змінити в config.php.
  • timeOutTime: Якщо користувач неправильно вводить пароль <maxLoginAttempt> разів, він блокується на <timeOutTime> секунд. Значення за умовчанням — 10 хвилин; його можна змінити в config.php.
  • maxLoginAttemptParticipants: Це кількість спроб, які має учасник для введення дійсного токена, перш ніж його IP-адресу буде заблоковано. Значення за умовчанням — 3; його можна змінити в config.php.
  • timeOutParticipants: Якщо учасник неправильно вводить токен <maxLoginAttemptParticipants> разів, він блокується на <timeOutParticipants> секунд. Значення за умовчанням — 10 хвилин; його можна змінити в config.php.
  • surveyPreview_require_Auth: За умовчанням встановлено true. Якщо встановити 'false', будь-яка особа зможе протестувати ваше опитування за URL-адресою опитування без входу до панелі адміністрування та без попередньої активації опитування. Це налаштування є значенням за умовчанням і може бути змінене в діалоговому вікні загальні налаштування або відредаговане в config.php.
  • usercontrolSameGroupPolicy: За умовчанням встановлено true. За умовчанням користувачі без прав адміністратора, визначені в інтерфейсі керування LimeSurvey, зможуть бачити лише тих користувачів, яких вони створили, або тих, що належать принаймні до однієї спільної групи. Значення за умовчанням можна змінити в діалоговому вікні загальні налаштування або відредагувати в config.php.
  • demoMode: Якщо цю опцію в config.php встановлено в 'true', LimeSurvey перейде в демонстраційний режим. Демонстраційний режим змінює таке:
    • Вимикає зміну деталей та пароля користувача-адміністратора;
    • Вимикає завантаження файлів у редакторі шаблонів;
    • Вимикає надсилання запрошень та нагадувань електронною поштою;
    • Вимикає створення дампа бази даних;
    • Вимикає можливість змінювати такі загальні налаштування: назва сайту, мова за умовчанням, режим HTML-редактора за умовчанням, XSS-фільтр.
  • forcedsuperadmin: Масив ID користувачів з усіма правами в усьому LimeSurvey. Це налаштування можна змінити лише у файлі config.php. Права цього користувача не можна редагувати в загальних дозволах користувача, навіть іншим примусовим суперадміністратором. За умовчанням користувач із такими правами — користувач з ID: 1, тобто перший користувач, створений одразу після встановлення.
  • force_ssl: Примушує LimeSurvey працювати через HTTPS або блокує HTTPS. Див. Вимагати HTTPS в адміністративному інтерфейсі загальних налаштувань.
  • ssl_emergency_override: Це налаштування примусово вимикає SSL. Якщо ви ввімкнули HTTPS/SSL у загальних налаштуваннях, але на вашому сервері HTTPS не увімкнено, єдиний спосіб вимкнути його — змінити значення безпосередньо в базі даних. Це дозволяє примусово вимкнути HTTPS, поки ви змінюєте загальні налаштування Force Secure. Воно завжди має бути false, окрім екстрених випадків, коли ви встановлюєте true, доки не усунете проблему. Це налаштування можна задати лише через файл config.php.
  • ssl_disable_alert: Вимикає сповіщення для суперадміністратора про непримусовий SSL, якщо ви справді не можете або не хочете примушувати SSL. Це налаштування можна задати лише через файл config.php.
  • allow_unserialize_attributedescriptions: Дозволяє десеріалізацію (за допомогою функції PHP unserialize) атрибутів токенів під час імпорту або читання об'єкта опитування. Дані атрибутів токенів зберігаються як JSON. Якщо ви імпортуєте файл опитування з дуже старої версії LimeSurvey і вам потрібно отримати його атрибути токенів, необхідно ввімкнути це налаштування. Попередження: десеріалізація може призвести до завантаження та виконання коду через створення об'єктів та автозавантаження, і зловмисник може скористатися цим.. Це налаштування можна задати лише через файл config.php.
  • allow_unserialize_attachments: Дозволяє десеріалізацію (за допомогою функції PHP unserialize) атрибутів вкладень під час імпорту опитування. У LimeSurvey 6.16.17 атрибут вкладень перейшов із serialize на json_encode. Якщо вам потрібно зберегти вкладення під час імпорту старого файлу LSS, необхідно це дозволити. Попередження: десеріалізація може призвести до завантаження та виконання коду через створення об'єктів та автозавантаження, і зловмисник може скористатися цим. Це налаштування можна задати лише через файл config.php.
  • twig_getConfig_extraallowlist: Дозволяє додати окремі елементи для функції getConfig у twig. LimeSurvey уже дозволяє більшість потрібних та поширених налаштувань, але вам можуть знадобитися додаткові. Якщо ви хочете дозволити 'securesetting' та 'anothersetting', встановіть ['securesetting','anothersetting'], наприклад так: 'twig_getConfig_extraallowlist' => ['securesetting','anothersetting']. Це налаштування можна задати лише через файл config.php.

Захист від міжсайтового скриптингу (XSS)

LimeSurvey не дозволяв жодного користувацького скрипту на сторінці адміністрування. Якщо ви знайшли спосіб додати XSS-скрипт на сторінку адміністрування від будь-якого користувача, ознайомтеся з нашою політикою безпеки.

Скриптами публічних сторінок керують налаштування XSS-фільтра.

  • filterxsshtml: Це налаштування вмикає фільтрацію підозрілих HTML-тегів у текстах опитувань, груп, питань і відповідей в інтерфейсі адміністрування. Залишайте 'false' лише якщо ви абсолютно довіряєте користувачам, яких створили для адміністрування LimeSurvey, і хочете дозволити їм використовувати Javascript, Flash-ролики тощо. HTML суперадміністраторів ніколи не фільтрується. Значення за умовчанням можна змінити в діалоговому вікні загальні налаштування.
  • filterxsshtml_forcedall: Примусово встановлює filterxsshtml у true для всіх користувачів, вимикає зміни в адміністративному інтерфейсі. Вмикає фільтрацію підозрілих HTML-тегів також для суперадміністратора.
  • filterxsshtml_allowforcedsuperadmin: Використовується лише якщо filterxsshtml_forcedall має значення true. Дозволяє додавати будь-який скрипт та HTML для forcedsuperadmin (за умовчанням користувач-адміністратор №1).
  • disablescriptwithxss: Дозволяє змінювати скрипт у питанні: за умовчанням true — дотримуватися правил XSS; встановіть false, щоб дозволити для всіх користувачів. Значення за умовчанням можна змінити в діалоговому вікні загальні налаштування.
  • filterxsshtml_enablescript: Використовується лише якщо filterxsshtml_forcedall має значення true. Вмикає скрипт питання для певного користувача: gui: дозволити зміну налаштування через графічний інтерфейс; superadmin: лише суперадміністратор; forcedsuperadmin: лише примусовий суперадміністратор; за умовчанням: жоден користувач і без дозволу зміни через графічний інтерфейс

Дозволене завантаження файлів

  • allowedthemeimageformats : Типи файлів зображень, дозволені для завантаження в розділі тем. За умовчанням файли SVG вимкнено через потенційну XSS-атаку.
  • allowedthemeuploads : Інші типи файлів, дозволені для завантаження в розділі тем (zip-файл)
  • allowedresourcesuploads : Типи файлів, дозволені для завантаження в розділі ресурсів та за допомогою HTML-редактора
  • allowedpluginuploads : Тип файлу, дозволений під час завантаження zip-файлу плагіна.

Просто введіть рядок розширень, розділених комами. Наприклад:

'allowedthemeimageformats' => 'jpg,jpeg,gif,png,webm,svg',

Попередження: завжди будьте обережні, дозволяючи завантаження файлів. Можливі зловмисні дії.

Плагіни

  • usePluginWhitelist : Якщо значення true, плагіни, яких немає в списку дозволених (див. 'pluginWhitelist'), не можна ні встановити, ні завантажити. Це може вимкнути вже встановлені плагіни.
  • pluginWhitelist : Список назв плагінів, які дозволено встановлювати та завантажувати, коли 'usePluginWhitelist' має значення true. Основні плагіни неявно входять до списку дозволених.
  • corePluginBlacklist : Список назв основних плагінів, які заборонені, коли 'usePluginWhitelist' має значення true.
  • disablePluginUpload : Якщо це налаштування має значення true, функцію «Завантаження плагіна» вимкнено

Керування хостами

  • allowedHosts : щоб уникнути атаки Host Header Injection, ви можете задати дозволені хости для всіх дій. Якщо ви використовуєте різні хости для публічної сторінки та сторінки адміністрування, потрібно вказати обидва як дозволені хости.
    'config'=>array(
            ....
,		// Update default LimeSurvey config here
		'allowedHosts' => [
			'survey.example.org',
			'proxy.survey.example.com',
			'example.limesurvey.org',
		],
    ),

Ресурси

  • iSessionExpirationTime: Визначає час у секундах, після якого сесія опитування завершується. Застосовується лише під час використання сесій у базі даних. Якщо ви використовуєте сесії в базі даних, змініть параметр у config.php або перевизначте значення за умовчанням у діалоговому вікні загальні налаштування.
  • memory_limit: Визначає, скільки пам'яті (у мегабайтах) може використовувати LimeSurvey. Значення за умовчанням — '256'. Якщо ви отримуєте помилки тайм-ауту або маєте проблеми зі створенням статистики чи експортом файлів, збільште це обмеження до '512' або більше. Якщо ваш вебсервер має вищий ліміт у php.ini, це налаштування буде проігноровано.
Зверніть увагу, що такі локальні налаштування завжди можуть бути перевизначені змінами, зробленими в діалоговому вікні загальних налаштувань.

Щоб збільшити ліміт пам'яті до 128M, ви також можете спробувати додати:

  • memory_limit = 128M до головного файлу php.ini вашого сервера (рекомендовано, якщо у вас є доступ)
  • memory_limit = 128M до файлу php.ini у кореневій папці LimeSurvey
  • php_value memory_limit 128M у файл .htaccess у кореневій папці LimeSurvey
  • max_execution_time: Задає кількість секунд, протягом яких скрипту дозволено виконуватися. Якщо цей час буде досягнуто, скрипт поверне фатальну помилку. Щоб дозволити експорт великих обсягів даних опитувань і статистики, LimeSurvey за умовчанням намагається встановити 1200 секунд. За потреби ви можете встановити більше або менше значення. Доступно лише через конфігураційний файл php.

Зовнішній вигляд

  • repeatheadings: У питаннях типу «Масив» зазвичай буває багато підпитань, які під час відображення на екрані займають більше однієї сторінки. Це налаштування дає змогу визначити, скільки підпитань відображати перед повторенням інформації заголовка питання. Хороше значення — приблизно 15. Якщо ви не хочете, щоб заголовки повторювалися взагалі, встановіть 0. Це налаштування перевизначається в діалоговому вікні загальні налаштування.
  • minrepeatheadings: Мінімальна кількість підпитань, що залишилися, необхідна для повторення заголовків у питаннях типу «Масив». Значення за умовчанням — 3, його можна змінити в config.php.
  • defaulttheme: Це налаштування визначає тему за умовчанням, яка використовується для «публічного списку» опитувань. Це налаштування можна перевизначити в діалоговому вікні загальні налаштування або змінити в config.php.
  • defaulthtmleditormode: Задає режим за умовчанням для вбудованого HTML редактора. Це налаштування можна перевизначити в діалоговому вікні загальні налаштування або змінити в config.php. Допустимі значення:
    • 'inline' — вбудована заміна полів HTML редактором. Повільно, але зручно та дружньо до користувача;
    • 'popup' — додає піктограму, яка за потреби запускає HTML редактор у спливаючому вікні. Швидше, але HTML-код відображається у формі;
    • 'none'- без HTML редактора;
  • column_style: Визначає, як відображаються стовпці для відповідей в опитуванні під час використання display_columns. Його можна змінити у файлі config.php. Допустимі значення:
    • 'css' — використовує один із різних методів CSS для створення стовпців (докладніше див. таблицю стилів шаблону);
    • 'ul' — стовпці відображаються як кілька плаваючих маркованих списків (за умовчанням);
    • 'table' — використовує традиційне табличне компонування;
    • NULL — вимикає використання стовпців.

Мова та час

  • defaultlang: Тут слід вказати мову за умовчанням, яка використовуватиметься у ваших адміністративних скриптах, а також налаштування мови за умовчанням у публічному списку опитувань. Це налаштування можна перевизначити в діалоговому вікні загальні налаштування або змінити в config.php.
  • timeadjust: Якщо ваш вебсервер розташований в іншому часовому поясі, ніж місце, де базуватимуться ваші опитування, вкажіть тут різницю між вашим сервером і вашим місцевим часовим поясом. Наприклад, я живу в Австралії, але використовую американський вебсервер. Вебсервер відстає від мого місцевого часового поясу на 14 годин. Тому моє налаштування тут — «14». Іншими словами, воно додає 14 годин до часу вебсервера. Це налаштування особливо важливе, коли опитування фіксують часові позначки відповідей. Це налаштування можна перевизначити в діалоговому вікні загальні налаштування або змінити в config.php.

Поведінка опитування

  • deletenonvalues: Використовуйте цю можливість обережно. За умовчанням (значення 1) нерелевантні питання записуються в базу даних як NULL. Це гарантує внутрішню узгодженість даних у вашій базі даних. Проте бувають рідкісні випадки, коли ви можете захотіти зберегти нерелевантні значення — тоді можна встановити значення 0. Наприклад, ви запитуєте чоловіка про його стать, і він випадково вказує «жіноча», а потім відповідає на деякі питання, специфічні для жінок (питання, умовою яких є жіноча стать, тож вони актуальні лише для жінок). Потім він помічає свою помилку, повертається назад, змінює стать на «чоловіча» та продовжує опитування. Тепер питання, специфічні для жінок, нерелевантні. Якщо $deletenonvalues==1, ці нерелевантні значення буде очищено (NULL) у базі даних. Якщо $deletenonvalues==0, його помилкові відповіді не буде видалено, тож вони залишаться в базі даних, коли ви її аналізуватимете.
  • shownoanswer: Коли питання типу перемикача/вибору, що містить редаговані відповіді (наприклад, питання типу «Список» або «Масив»), не є обов'язковим і 'shownoanswer' має значення 1, відображається додатковий пункт «Немає відповіді», щоб учасники могли не відповідати на питання. Деяким людям більше подобається, коли він недоступний. Це налаштування можна перевизначити в діалоговому вікні загальні налаштування або змінити в config.php. Допустимі значення:
    • '0': Ні;
    • '1': Так;
    • '2': Адміністратор опитування може вибрати.
  • printanswershonorsconditions: Це налаштування визначає, чи відображатиме функція printanswers записи з питань, які були приховані умовним розгалуженням (за умовчанням: 1 = приховувати відповіді на питання, приховані умовами).
  • showpopups: Показувати спливаючі повідомлення, якщо на обов'язкові або умовні питання відповіли неправильно:
    • '2' = визначається параметром теми (за умовчанням)
    • '1'= показувати спливаюче повідомлення;
    • '0'= натомість показувати повідомлення на сторінці;
    • '-1'= взагалі не показувати повідомлення (у цьому випадку користувачі все одно бачитимуть підказки до питань, що вказують, на які питання потрібно відповісти).

Поведінка числового типу питання

  • bFixNumAuto: Числові поля можуть автоматично фільтруватися для видалення всіх нечислових значень. За умовчанням це ввімкнено, але ви можете вимкнути це глобально. Це налаштування пов'язане з параметром Автоматично виправити числове значення в параметрах основної теми. Воно ввімкнене для Так, вимкнене для Для представлення та Ні.
  • bNumRealValue: Числові поля, що використовуються в менеджері виразів, можуть бути виправлені або ні. За умовчанням вони виправляються. Якщо NUMERIC є числовим питанням: вимкнено або 0 — {NUMERIC} з неправильними символами повертає '', увімкнено або 1 — {NUMERIC} повертає всі введені символи. Це налаштування пов'язане з параметром Автоматично виправити числове значення в параметрах основної теми. Воно ввімкнене для Так та Для представлення і вимкнене для Ні.

Розробка та налагодження

  • debug: За допомогою цього налаштування ви встановлюєте рівень звітування про помилки PHP на E_ALL. Це означає, що відображається кожне найменше повідомлення, попередження чи помилка, пов'язані зі скриптом. Це налаштування слід встановлювати на '1' лише якщо ви з будь-якої причини намагаєтеся налагодити застосунок. Якщо ви розробник, встановіть '2'. Не встановлюйте '1' або '2' у робочому середовищі, оскільки це може призвести до розкриття шляхів. Значення за умовчанням — '0', його можна змінити в config.php.
  • debugsql: Активуйте це налаштування, якщо хочете, щоб унизу кожної сторінки відображалися всі SQL-запити, виконані скриптом. Дуже корисно для оптимізації кількості запитів. Щоб активувати його, змініть значення за умовчанням на '1' у файлі config.php.
  • use_asset_manager: За умовчанням режим налагодження вимикає менеджер ресурсів (asset manager), але ви можете дозволити його використання з увімкненим режимом налагодження.

Якщо у вас виникає помилка в застосунку, ми наполегливо рекомендуємо активувати налаштування налагодження, щоб отримати детальнішу інформацію про помилку, яку можна надіслати разом зі звітом про помилку:

    'config'=>array(
        'debug'=>2,
        'debugsql'=>0,
    )

Якщо ви працюєте над плагіном і вам потрібен швидкий спосіб вивести змінні на екран, ви можете скористатися функцією traceVar. Якщо debug встановлено, ця функція використовує CWebLogRoute для відображення на HTML-сторінці. Використання: traceVar($MyVariable)

Налаштування повідомлень

Усі наведені нижче налаштування можна перевизначити в діалоговому вікні загальні налаштування.

  • 'emailmethod: Визначає, як надсилаються електронні листи. Доступні такі варіанти:
    • 'mail:' використовує внутрішній поштовий агент PHP;
    • 'sendmail:' використовує поштовий агент sendmail;
    • 'smtp:' використовує ретрансляцію SMTP. Використовуйте це налаштування, коли ви запускаєте LimeSurvey на хості, який не є вашим поштовим сервером.
  • 'emailsmtphost: Якщо ви використовуєте 'smtp' як $emailmethod, то тут потрібно вказати ваш SMTP-сервер. Якщо ви користуєтеся поштою Google, можливо, доведеться додати номер порту, наприклад $emailsmtphost = 'smtp.gmail.com:465'.
  • emailsmtpuser: Якщо вашому SMTP-серверу потрібна автентифікація, вкажіть тут ваше ім'я користувача, інакше залиште порожнім.
  • emailsmtppassword: Якщо вашому SMTP-серверу потрібна автентифікація, вкажіть тут ваш пароль, інакше залиште порожнім.
  • emailsmtpssl: Встановіть 'ssl' або 'tls', щоб використовувати SSL/TLS для SMTP-з'єднання.
  • maxemails: Під час надсилання запрошень або нагадувань учасникам опитування це налаштування визначає, скільки електронних листів можна надіслати за один раз. Різні вебсервери мають різну пропускну здатність для пошти, і якщо вашому скрипту потрібно забагато часу, щоб надіслати пачку листів, скрипт може перевищити ліміт часу та спричинити помилки. Більшість вебсерверів можуть надсилати 100 листів за раз у межах стандартного ліміту часу в 30 секунд для PHP-скрипта. Якщо ви отримуєте помилки тайм-ауту скрипта під час надсилання великої кількості листів, зменште число в цьому налаштуванні. Натискання кнопки «Надіслати запрошення» на панелі керування токенами (а не кнопки праворуч від кожного токена) надсилає <maxemails> запрошень, після чого відображається список адрес одержувачів і попередження про те, що є більше листів, що очікують відправки, ніж можна надіслати за один раз. Продовжіть надсилання, натиснувши нижче. Ще потрібно надіслати ### листів., а також кнопка «продовжити» для переходу до наступної пачки. Тобто користувач сам визначає, коли надсилати наступну пачку після відправки кожної. Не обов'язково чекати з відкритим цим екраном. Адміністратор може вийти із системи та повернутися пізніше, щоб надіслати наступну пачку запрошень.

Статистика та перегляд відповідей

  • filterout_incomplete_answers: Керує поведінкою за умовчанням щодо фільтрування незавершених відповідей під час перегляду або аналізу відповідей. Докладніше про незавершені відповіді див. у вікі про перегляд результатів опитування. Оскільки такі записи можуть спотворювати статистику, у кількох формах інтерфейсу передбачено можливість вмикати або вимикати цей фільтр. Параметр можна змінити в config.php. Доступні такі варіанти:
    • 'all': дозволяє переглядати і завершені, і незавершені відповіді;
    • 'complete': показує лише завершені відповіді;
    • 'incomplete': показує лише незавершені відповіді.
  • strip_query_from_referer_url: Цей параметр визначає, чи зберігає URL-адреса реферала параметри. Значення за умовчанням — 'false' (у цьому випадку URL-адреса реферала зберігає всі параметри). Також можна встановити значення 'true', і частину URL-адреси реферала з параметрами буде видалено.
  • showaggregateddata: якщо активовано, показуються додаткові статистичні значення, як-от середнє арифметичне та стандартне відхилення. Крім того, дані агрегуються для швидшого огляду. Наприклад, результати шкали 1+2 і 4+5 додаються, щоб отримати загальний рейтинг: «добре» (1/2), «середнє» (3) і «погано» (4/5). Це стосується лише типів питань "A" (масив із 5 варіантів) і "5" (вибір із 5 варіантів).
  • Налаштування експорту PDF: Ця функція активує експорт у PDF для друкованих опитувань і функції «Роздрукувати відповіді». Функція експорту в PDF є суто експериментальною, і результат далекий від досконалого. На жаль, наразі підтримка не надається — якщо ви хочете допомогти її виправити, зв'яжіться з нами.
    • 'pdfdefaultfont': Шрифт за умовчанням, який використовується функцією експорту в PDF. Значення за умовчанням — 'auto'. Щоб змінити його, потрібно вказати один із основних шрифтів PDF.
    • 'alternatepdffontfile': Це масив із ключами мов і відповідними шрифтами. Шрифт за умовчанням для кожної мови можна замінити у файлі config.php;
    • 'pdffontsize': розмір шрифту для звичайного тексту; для назви опитування він дорівнює <pdffontsize>+4, а для назви групи — <pdffontsize>+2. Його можна змінити у файлі config.php або в діалозі загальних налаштувань.
  • Налаштування графіків
    • 'chartfontfile': Задає ім'я файлу шрифту, який використовується для створення статистичних діаграм. Файл має розташовуватися в каталозі fonts у кореневій папці LimeSurvey. Його можна змінити у файлі config.php;
    • 'alternatechartfontfile': Це масив із ключами мов і відповідними шрифтами. Його можна змінити у файлі config.php.
  • showsgqacode: Цей параметр використовується у функції друкованого опитування, а за умовчанням має значення 'false. Якщо встановити showsgqacode = 'true';, буде показано ідентифікатори кожного питання та, за наявності, відповіді. Ці ідентифікатори відповідають заголовкам стовпців у таблиці Lime_survey_12345, яка містить дані відповідей певного опитування. Їх можна використовувати для кодової книги для ручних запитів до бази даних.

Налаштування LDAP

Оскільки це об'ємна тема, ми перенесли налаштування LDAP на окрему сторінку.

Автентифікація

Автентифікація виконується плагінами. Наведені нижче налаштування використовуються плагіном автентифікації вебсервера, див. Плагіни автентифікації.

Делегування автентифікації вебсерверу

Системні адміністратори можуть бажати, щоб адміністратори опитувань проходили автентифікацію в центральній системі автентифікації (Active Directory, openLdap, Radius тощо), а не у внутрішній базі даних LimeSurvey. Простий спосіб зробити це — налаштувати програмне забезпечення вебсервера на використання цієї зовнішньої системи автентифікації, а потім доручити LimeSurvey довіряти особі користувача, яку повідомляє вебсервер. Щоб увімкнути цю функцію, потрібно:

  • активувати плагін Webserver у розділі Налаштування > Плагіни і вказати в налаштуваннях плагіна серверний ключ, який містить ім'я користувача (за умовчанням: REMOTE_USER);
  • увімкнути автентифікацію на боці вебсервера.

Зверніть увагу:

  • LimeSurvey тоді оминає власний процес автентифікації (використовуючи ім'я для входу, повідомлене вебсервером, без запиту пароля);
  • це може замінити лише систему автентифікації в графічному інтерфейсі LimeSurvey, але не систему запрошень до опитування (інтерфейс учасників).

Делегування автентифікації без автоматичного імпорту користувачів

Зверніть увагу, що делегування автентифікації за умовчанням не оминає систему авторизації LimeSurvey — тобто, навіть якщо вам не потрібно керувати паролями в LimeSurvey, вам усе одно потрібно визначити користувачів у базі даних LimeSurvey і призначити їм правильний набір прав, щоб вони могли отримати доступ до панелі адміністрування.

Користувач отримує доступ до LimeSurvey тоді й лише тоді, коли:

  • він пройшов автентифікацію на вебсервері;
  • його ім'я для входу визначено як користувача в базі даних користувачів LimeSurvey (тоді користувач отримує привілеї користувача, визначеного в базі даних користувачів LimeSurvey);
  • він має глобальний дозвіл Використовуйте аутентифікацію веб-сервера.

Делегування автентифікації з автоматичним імпортом користувачів

Під час керування великою базою даних користувачів іноді легше автоматично імпортувати користувачів до бази даних LimeSurvey:

  • auth_webserver_autocreate_user: Якщо встановлено 'true', LimeSurvey намагатиметься автоматично імпортувати користувачів, які пройшли автентифікацію на вебсервері, але ще не є в її базі даних користувачів.
  • auth_webserver_autocreate_profile: Масив, що описує профіль за умовчанням, який буде призначено користувачу: повне (вигадане) ім'я, електронна адреса та мова.
  • auth_webserver_autocreate_permissions: Масив із глобальними дозволами, які буде призначено користувачу.

Якщо ви хочете налаштувати профіль користувача так, щоб він відповідав користувачу, який увійшов у систему, вам потрібно розробити просту функцію hook_get_auth_webserver_profile у config.php — за допомогою цієї функції можна отримати з центральної бази облікових записів користувачів (наприклад, з каталогу LDAP) справжнє повне ім'я, електронну адресу та мову конкретного користувача.

Функція hook_get_auth_webserver_profile приймає ім'я для входу користувача як єдиний аргумент і може повертати:

  • False або порожній масив — у цьому випадку користувачу відмовляється в доступі до LimeSurvey;
  • масив, що містить ті самі елементи, що й auth_webserver_autocreate_profile.
function hook_get_auth_webserver_profile($user_name)
{
    // Retrieve user's data from your database backend (for instance LDAP) here
    // ... get $user_name_from_backend
    // ... get $user_email_from_backend
    // ... get $user_lang_from_backend
    return array(
        'full_name' => $user_name_from_backend,
        'email' => $user_email_from_backend,
        'lang' => $user_lang_from_backend,
    );
}

// If user should be denied access, return an empty array
// return array();
  Необов'язкова функція 'hook_get_auth_webserver_profile' призначена лише для досвідчених користувачів! Докладнішу інформацію дивіться в коментарях у файлі config-defaults.php.


Зіставлення імен користувачів

Якщо деякі користувачі мають зовнішнє ім'я користувача, яке відрізняється від їхнього імені користувача в LimeSurvey, може бути корисним зіставлення імен користувачів. У LimeSurvey це робиться за допомогою параметра auth_webserver_user_map. Наприклад, уявіть, що у вашій зовнішній базі автентифікації не визначено ім'я користувача 'admin'. Тоді, щоб увійти в LimeSurvey як admin, потрібно зіставити ваше зовнішнє ім'я користувача (назвімо його 'myname') з іменем для входу admin у LimeSurvey. Відповідне налаштування:

'config'=>array(
...
'auth_webserver_user_map' => array ('myname' => 'admin');
)

Після успішної автентифікації з іменем для входу 'myname' і паролем вебсервера ви одразу отримаєте право використовувати LimeSurvey як користувач 'admin'.

Це має серйозні наслідки для безпеки, тому користуйтеся цим обережно. Також захистіть config.php від запису вебсервером.

Використання одноразових паролів

Користувач може відкрити сторінку входу LimeSurvey за адресою default.com/limesurvey/admin і ввести ім'я користувача та одноразовий пароль, який раніше було записано до таблиці users (стовпець one_time_pw) зовнішньою програмою.

Цей параметр потрібно ввімкнути у файлі config.php, щоб дозволити використання одноразових паролів (за умовчанням = false).

    'config'=>array(
        'debug'=>0,
        'debugsql'=>0,
        'use_one_time_passwords'=>true,
    )

Додаткову інформацію можна знайти в розділі «Керування користувачами».


Налаштування шифрування

  Увага : Після встановлення ключі шифрування ніколи не слід змінювати, інакше всі зашифровані дані можуть бути втрачені!


Під час оновлення або встановлення ці параметри генеруються LimeSurvey і записуються у файл application/config/security.php. За бажання ви можете перенести ці налаштування до config.php або залишити їх у security.php.

Докладніше про цю функцію дивіться в розділі Шифрування даних.

  • encryptionkeypair
  • encryptionpublickey
  • encryptionsecretkey
  • encryptionnonce
  • encryptionsecretboxkey

Розширені налаштування URL-адрес

  • publicurl: Має містити URL-адресу розташування ваших «публічних скриптів». Публічні скрипти — це ті, що розташовані в папці "limesurvey" (або в каталозі з іншою назвою, у якому зберігаються всі інші скрипти та каталоги). Це налаштування доступне в config.php і використовується, коли LimeSurvey потрібна абсолютна URL-адреса (наприклад, під час надсилання електронних листів із токенами).
  • tempurl: Має містити URL-адресу розташування вашого каталогу "/limesurvey/tmp" або каталогу, який LimeSurvey має використовувати для відображення тимчасових файлів.
  • uploadurl: Має містити URL-адресу розташування вашого каталогу "/limesurvey/upload" або каталогу, який LimeSurvey має використовувати для відображення завантажених файлів. Це дає змогу розмістити завантажені файли в іншому URL-домені.

Розширені налаштування шляхів

  • homedir: Має містити фізичне розташування на диску ваших адміністративних скриптів, наприклад "/home/usr/htdocs/limesurvey/admin". Не додавайте косу риску в кінці цього значення. Типове налаштування в config.php намагається визначити кореневий шлях усіх ваших документів за допомогою змінної php {$_SERVER['DOCUMENT_ROOT']}. У більшості випадків його можна залишити як є та змінити лише решту цього рядка, щоб він відповідав назві каталогу, у який ви помістили скрипти LimeSurvey.
  • publicdir: Має містити фізичне розташування на диску ваших «публічних скриптів».
  • tempdir: Має містити фізичне розташування на диску вашого каталогу /limesurvey/tmp, щоб скрипт міг читати та записувати файли.
  • uploaddir: Має містити фізичне розташування на диску вашого каталогу /limesurvey/upload, щоб скрипт міг читати та записувати файли.
  • sCKEditorURL: URL-адреса скрипта CKEditor.

Інші розширені налаштування

Завантаження файлів

  • magic_database: Дає змогу використовувати іншу базу даних MIME для finfo_open. Можна змінити лише у файлі config.php. Приклад: /usr/share/misc/magic.mgc для Linux на основі redhat.
  • magic_file: Дає змогу використовувати інший файл для отримання масиву розширень за типом MIME, ніж включений за замовчуванням. Це має бути PHP-файл, що повертає масив. Можна змінити лише у файлі config.php.

Оновлення

  • updatable: Це налаштування міститься у version.php. Може бути true або false. Якщо встановлено true, то коли суперадміністратор входить у систему, LimeSurvey перевіряє наявність оновлення та показує вам попередження. Якщо встановлено false, перевірка не виконується, і ви не зможете скористатися ComfortUpdate.

Токени

  • allowedcharacters_pattern_token : Ці налаштування дають змогу задати шаблон регулярного виразу під час фільтрації токенів.