x

Основные главы

  1. LimeSurvey Cloud и LimeSurvey CE: сравнение
  2. LimeSurvey Cloud - Краткое руководство по началу работы
  3. Установка - LimeSurvey CE
  4. Как разработать хороший опрос (руководство)
  5. Начиная
  6. Администрирование LimeSurvey
  7. Опросы - Вступление
  8. Настройки опроса
  9. Меню опроса
  10. Структура опроса
  11. Вопросы — введение
  12. Группы вопросов - введение
  13. Опросы - управление
  14. Параметры панели инструментов опроса
  15. Многоязычный опрос
  16. Движок ExpressionScript — краткое руководство
  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 стандартной установки - некоторые из них используются только для первой установки и переопределены в Глобальных параметрах. Template:Внимание Все параметры в config.php переопределяют стандартные значения переменных указанные в config-defaults.php и некоторые их них переопределяются в Глобальных параметрах dialogTemplate:Newln. Таким образом намного проще обновить Вашу установку в будущем!

  Если вы хотите изменить эти настройки, не меняйте их в 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 сессии или настройки 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 на одном домене требуется своё имя сессии. В противном случае вход в один экземпляр приводит к выходу из другого. Установщик задаёт случайное имя сессии в config.php. Если вы скопировали config.php из другого экземпляра или ваш config.php создан в версии LimeSurvey старше 4.0, добавьте или измените строку sessionName в существующем разделе session и используйте для каждого экземпляра своё значение:

        // Set the name of the session
        'session' => array (
            'sessionName' => 'LS-ABCDEFGHIJKLMNOP',
            ),

Настройки запроса

Настройки запроса важны, но настройки по умолчанию уже оптимизированы для работы с 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
        '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, который браузеры принимают только при действительном HTTPS-соединении.

  Даже при всех этих настройках опросы в iframe могут не работать в некоторых браузерах или при определённых настройках браузера, например в режиме приватного просмотра или при блокировке сторонних cookie. Эти настройки были протестированы с Firefox 81.0.2–115, Chromium 85.0.4183.121–119 и Edge 119 с настройками по умолчанию. LimeSurvey не предоставляет поддержку для такой конфигурации, доступна только поддержка сообщества.


Разрешение запуска сессии в iframe

Cookie сессии должен быть защищённым (secure, требуется действительное HTTPS-соединение) и httponly, а для samesite должно быть задано значение None. Ключи в cookieParams должны быть написаны строчными буквами.

 		 'session' => array (
			'sessionName'=>'LS-VBXZZORFJZCAKGYI',
			// Раскомментируйте следующие строки, если вам нужны сессии на основе таблиц.
			// Примечание: сессии на основе таблиц в настоящее время не поддерживаются на сервере MSSQL.
			// 'class' => 'application.core.web.DbHttpSession',
			// 'connectionID' => 'db',
			// 'sessionTableName' => '{{sessions}}',
			'cookieParams' => array(
				'secure' => true,
				'httponly' => true,
				'samesite' => 'None',
			),
		 ),

Разрешить cookie CSRF в iframe

Как и cookie сессии, cookie CSRF должен быть защищённым (secure), а 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: Категории application.controller.customInit.max_execution_time и application.controller.customInit.memory_limit используются для записи в журнал попыток изменить настройки PHP.

Если вы знаете об этих сообщениях журнала и хотите исключить их из журналов, вы можете добавить эти категории в параметр except в конфигурации маршрута журнала, как показано ниже:

'except' => [
    'exception.CHttpException.404',
    'application.controller.customInit.max_execution_time',
    'application.controller.customInit.memory_limit',
],


 Hint: По умолчанию файл сохраняется в limesurvey/tmp/runtime/application.log, который находится в корневой папке LimeSurvey. Вы можете задать другое имя файла с помощью logFile.
  Yii использует путь выполнения (runtime path). По умолчанию журналы доступны через веб. Они могут содержать много информации о вашем сервере. Лучше использовать каталог, недоступный через веб. Вы можете задать его в logPath или изменив путь выполнения.

.

Путь выполнения (Runtime path)

Путь выполнения должен быть каталогом, доступным для чтения и записи для «веб-пользователя». Однако путь выполнения содержит файлы с потенциально важной информацией, расположенные в области общего веб-доступа. LimeSurvey собирает эти файлы во временном каталоге в корневом каталоге LimeSurvey. Чтобы закрыть доступ к таким важным данным, вы можете задать путь выполнения вне области общего веб-доступа, отредактировав соответствующие строки в файле /application/config/config.php:

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

Общие настройки

  • sitename: Определяет имя Вашего сайта опросов. Это имя отображается в обзоре списка опросов и шапке административной панели. Этот параметр переопределяется в Общие настройки Template:Newln.
  • siteadminemail: Это стандартный адрес почты Администратора и используется для системных сообщений и опций контакта. Этот параметр переопределяется в Общие настройки Template:Newln.
  • suteadminbounce: Это адрес для пришедших возвратов. Этот параметр переопределяется в Общие настройки Template:Newln.
  • siteadminname: Это реальное имя Администратора сайта. Этот параметр переопределяется в Общие настройки Template:Newln.

Безопасность

  • surveyPreview_require_Auth: истинно по-умолчанию. Если вы установите в значение "ложь", то любой человек может тестировать Ваш опрос воспользовавшись URL - без авторизации и без предварительной активации опроса. Этот параметр переопределяется в Общие настройки Template:Newln.
  • usercontrolSameGroupPolicy: истинно по-умолчанию. По-умолчанию, не привилегированные пользователи в LimeSurvey могут видеть только пользователей, которых они создали или пользователей принадлежащих той же группе в которую входят они сами. Вы можете отключить данную возможность.
  • filterxsshtml: Данный параметр включает фильтрацию подозрительных HTML-тегов в опросах, группах вопросов, вопросах и текстовых ответах в административном интерфейсе. Данный параметр стоит выключить лишь в том случае, если Вы полностью доверяете людям осуществляющим администрирование LimeSurvey и если Вы хотите позволить этим людям использовать Javascript, Flash-ролики, и т. д. Супер-администратор никогда не фильтруется на подозрительные HTML-теги.. Этот параметр переопределяется в Общие настройки Template:Newln.
  • demoModeOnly: Если данный параметр включен, то LimeSurvey перейдет в demo-режим. Демо-режим влияет на следующие вещи:
    • Отключает возможность изменения пароля администратора и прочих параметров его учетной записи
    • Отключает выгрузку файлов в редактор шаблонов
    • Отключает рассылку почтовых приглашений и напоминаний
    • Отключает возможность дампа базы данных
    • Отключает возможность сохранения следующих глобальных параметров: имя сайта, язык по-умолчанию, режим HTML-редактора по-умолчанию, XSS фильтр

Защита от межсайтового скриптинга (XSS)

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

Скрипты на общедоступных страницах управляются настройками XSS-фильтра.

  • filterxsshtml: Эта настройка включает фильтрацию подозрительных HTML-тегов в текстах опросов, групп, вопросов и ответов в интерфейсе администрирования. Оставляйте значение 'false' только если вы абсолютно доверяете пользователям, созданным для администрирования LimeSurvey, и хотите разрешить им использовать Javascript, Flash-ролики и т. д. HTML суперадминистраторов никогда не фильтруется. Значение по умолчанию можно переопределить в диалоге общих настроек.
  • filterxsshtml_forcedall: Принудительно устанавливает filterxsshtml в true для всех пользователей и отключает изменение этой настройки в интерфейсе администрирования. Включает фильтрацию подозрительных HTML-тегов также и для суперадминистратора.
  • filterxsshtml_allowforcedsuperadmin: Используется только если filterxsshtml_forcedall равно true. Позволяет forcedsuperadmin (по умолчанию пользователь-администратор №1) добавлять любые скрипты и HTML.
  • 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 (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 (MiB) Вам необходимо добавить:

  • memory_limit = 128M в php.ini Вашего сервера (рекомендовано, если Вы имеете туда доступ)
  • memory_limit = 128M в php.ini файл корневой директории LimeSurvey
  • php_value memory_limit 128M в .htaccess файл корневой директории LimeSurvey
  • max_execution_time: Задаёт количество секунд, в течение которого скрипту разрешено выполняться. Если это время истекает, скрипт возвращает фатальную ошибку. Чтобы можно было экспортировать большие объёмы данных опросов и статистики, LimeSurvey по умолчанию пытается установить значение 1200 секунд. При необходимости вы можете задать большее или меньшее время. Доступно только через файл конфигурации PHP.

Отображение

  • $lwcdropdowns: (Obsolete since 2.0) Возможные значения: "L" или "R". Установка на "R" даст в результате отображение вопросов типа 'Список с комментариями' как радио кнопки, в то время как "L" даст в результате отображение вопросов типа 'Список с комментариями' как 'выпадающий список'.
  • $dropdownthreshold: Если Вы выбрали "R" для $dropdowns, это позволит Вам установить максимальный порог количества вариантов которые будут отображаться как радио-кнопки, перед превращением в выпадающий список. Если у Вас имеется вопрос с большим числом вариантов, то их отображение как радио-кнопок может выглядеть громоздко и нелогично для пользователей. Установка на максимум (25 - по-умолчанию) означает, что чем больше список тем быстрее его заполнять для участников опроса.
  • $repeatheadings: У вопросов типа "Массив" зачастую имеется большое количество вариантов ответов, которые при отображении занимают более чем одну страницу. Данный параметр позволяет Вам решать как много вариантов ответов будет показано прежде чем повторятся заголовки массива с информацией о вопросе. Хорошим выбором будет установка данного параметра в значение равное 15. Если же Вы не хотите повторять заголовки, установите значение параметра равное нулю (которое является значением по-умолчанию).
  • $minrepeatheadings: Минимальное количество ответов, которое требуется перед повторением заголовков в вопросе типа "Массив".
  • $addTitleToLinks: Если данный параметр включен, то LimeSurvey будет добавлять html элемент 'title' ко всем ссылкам используемым в меню. Это поможет экранным считывателям анализировать меню. Включайте данный параметр только если Вы используете экранный считыватель потому что он пересекается с подсказками.
  • $defaulttemplate: Эта настройка определяет тему по-умолчанию, используемую в 'публичном списке' опросов. Этот параметр переопределяется в Общие настройки Template:Newln.
  • $defaulthtmleditormode: Устанавливает режим по-умолчанию для интегрированного HTML-редактора. Этот параметр переопределяется в Общие настройки Template:Newln. Действительные параметры: inline (по-умолчанию), popup and none:
    • inline: Встроенная замена полей HTML-редактором. Обладает дружеским интерфейсом, но медленный в исполнении.
    • popup: Добавляет значок который вызывает всплывающее меню HTML-редактора. Быстрее, но в форме отображается html-код.
    • none: без HTML-редактора.

Язык и Время

  • $defaultlang: Устанавливает основной язык используемый в административных скриптах, а также настраивает основной язык в публичных опросах. Вы можете изменить данный параметр для публичных опросов на опрос-опрос базе с помощью административных скриптов. Этот параметр переопределяется в Общие настройки Template:Newln.
  • $timeadjust: Если Ваш web-сервер в отличной временной зоне от местоположения где проводятся Ваши опросы, поместите разницу между Вашим сервером и Вашей домашней временной зоной здесь. Например, Я живу в Австралии, но сервер находится в США. У Web-сервера разница с моей временной зоной в 14 часов. Таким образом, параметр необходимо установить равным "14". Другими словами, данный параметр добавляет 14 часов ко времени web-сервера. Этот параметр особенно важен для временных штампов вопросов и ответов. Этот параметр переопределяется в Общие настройки Template:Newln.
  • $modrewrite: (Obsolete since 2.0) Если установлено в 1, то активирует возможность переписывания URL особым способом (Например: http://survey.example.com/123456/lang-fr/tk-sdlfkjozeiru в отличие от http://survey.example.com/index.php?sid=123456⟨=fr&token;=sdlfkjozeiru). Прежде чем Вы активируете этот параметр, Вы должны переименовать файл из "htaccess.txt" в ".htaccess". Вам необходим Web-сервер Apache с корректно установленным модулем mod_rewrite.

Поведение опросов

  • $allowmandbackwards: Если данной переменной присвоить значение 1, то это позволит участникам опроса возвратиться к предыдущим вопросам даже если они не отвечали на текущие обязательные вопросы. Если же присвоено значение 0, то участники должны ответить на текущие обязательные вопросы, чтобы перейти к предыдущим.
  • $deletenonvalues: Пользуйтесь данной возможностью с присущей осторожностью. По-умолчанию (значение 1) все нелогичные ответы в базе данных затираются на NULL. Это позволяет быть уверенным в том, что данные в Вашей базе хранятся должным образом. Хотя, в некоторых случаях, возможно, Вам понадобится сохранить некорректные ответы в базе данных. Для этого Вам необходимо присвоить значение переменной 0. Давайте представим, что в своем опросе Вы спросили у участника его пол и тот указал ошибочно 'женский' и в дальнейшем пошел по ветке вопросов присущих женщинам. Когда участник понял свою ошибку он возвращается, меняет пол на 'мужской' и продолжает опрос. Теперь ответы на 'женские' вопросы становятся некорректными для данного участника. Если переменная равна 1, то такие данные немедленно очищаются (NULL) в базе данных. Если же значение переменной равно 0, то его ответы остаются в базе и Вы можете их видеть при ее анализе.
  • $shownoanswer: Когда вопрос типа радио-кнопка/список содержащий редактируемые поля (т.е. список, массив вопросов) не обязателен к ответу и $shownoanswer установлено в 1, то показывается дополнительный вариант ответа "N/A" - который означает "Нет ответа", чтобы участники могли не отвечать на данный вопрос. Некоторые предпочитают, чтобы данная возможность не была доступна. Установка переменной в 0, отключает данную возможность. Параметр переопределяется в диалоговом окне Общие настройки Template:Newln.
  • $printanswershonorsconditions: Данная настройка определяет будут ли отображаться вопросы, которые были скрыты согласно условия. (По-умолчанию: 1 = скрывать ответы на вопросы скрытые по условию).
  • $hide_groupdescr_allinone: (New in 1.85RC3 ) Данная настройка предназначена для опросов "все в одном" содержащих условия. Когда она включена имя группа и ее описание, а также все условия в группе скрыты. (По-умолчанию: истина (скрыть имя группы, описание, когда все условия в группе скрыты по условию)).
  • $showpopups: Показывать всплывающие окна сообщений если обязательный или вопрос с условием не был отвечен корректно. 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). Вы можете разрешить использовать менеджер ресурсов при включённом режиме отладки.
  • rpc_log: (New in 7.9.0 ) Установите true, чтобы записывать каждый вызов RemoteControl в tmp/runtime/remotecontrol.log. Каждая строка содержит вызванный метод, его параметры, IP адрес клиента, длительность и начало ответа. Пароли удаляются, ключи сессий заменяются коротким хэшем, а длинные значения сокращаются. Журнал по-прежнему содержит данные опроса, участников и ответов, которые были отправлены и получены, поэтому включайте его только на время поиска проблемы. Значение по умолчанию — false.

Если в приложении возникает ошибка, настоятельно рекомендуем включить параметр отладки, чтобы получить более подробное сообщение об ошибке, которое можно приложить к отчёту о проблеме:

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

Если вы работаете над плагином и вам нужен быстрый способ вывести переменные на экран, можно использовать функцию traceVar. Если включена отладка, эта функция использует CWebLogRoute для отображения на HTML-странице. Использование: traceVar($MyVariable)

Настройки электронной почты

Все приведённые ниже настройки можно переопределить в диалоге общих настроек.

  • 'emailmethod: Определяет, как отправляются сообщения e-mail. Доступны следующие варианты:
    • 'mail:' используется встроенная функция отправки почты PHP;
    • 'sendmail:' используется почтовая программа sendmail;
    • 'smtp:' используется ретрансляция SMTP. Используйте эту настройку, если LimeSurvey работает на хосте, который не является вашим почтовым сервером.
  • 'emailsmtphost: Если в качестве $emailmethod вы используете 'smtp', укажите здесь свой SMTP-сервер. Если вы используете почту Google, возможно, потребуется добавить номер порта, например: $emailsmtphost = 'smtp.gmail.com:465'.
  • emailsmtpuser: Если вашему SMTP-серверу требуется аутентификация, укажите здесь имя пользователя, в противном случае оставьте поле пустым.
  • emailsmtppassword: Если вашему SMTP-серверу требуется аутентификация, укажите здесь пароль, в противном случае оставьте поле пустым.
  • emailsmtpssl: Установите значение 'ssl' или 'tls', чтобы использовать SSL/TLS для SMTP-соединения.
  • maxemails: При отправке приглашений или напоминаний участникам опроса этот параметр определяет, сколько писем можно отправить за один раз. Разные веб-серверы имеют разную пропускную способность для отправки почты, и если скрипт слишком долго отправляет пачку писем, время его выполнения может истечь, что приведёт к ошибкам. Большинство веб-серверов могут отправить 100 писем за раз в рамках стандартного лимита времени PHP-скрипта в 30 секунд. Если при отправке большого количества писем возникают ошибки превышения времени выполнения скрипта, уменьшите значение этой настройки. Нажатие кнопки 'Отправить приглашение на email' на панели управления ключами доступа (не кнопки справа от каждого ключа) отправляет <maxemails> приглашений, после чего отображается список адресов получателей и предупреждение there are more emails pending than could be sent in one batch. Continue sending emails by clicking below. There are ### emails still to be sent., а также кнопка продолжения для перехода к следующей пачке. То есть пользователь сам определяет, когда отправлять следующую пачку после отправки предыдущей. Необязательно ждать с открытым экраном: администратор может выйти из системы и вернуться позже, чтобы отправить следующую пачку приглашений.
  • send_error_saving_results_email: (New in 7.8.0 ) Если ответ не удаётся сохранить, LimeSurvey отправляет ответы администратору опроса в письме с темой "Ошибка сохранения результатов". Установите false, чтобы прекратить отправку этих писем. Участники по-прежнему видят сообщение об ошибке. Значение по умолчанию — true. Эту настройку можно изменить только в config.php.

Обзор статистики и ответов

  • usejpgraph: (Obsolete since 1.8) JPGraph-библиотека позволяет Вам отображать результаты опросов в разделе Статистика системы LimeSurvey в виде столбцов и круговых диаграмм. Если Вы правильно настроили jpgraph на Вашем сервера, то Вы можете включить эту возможность (1=вкл., 0=выкл.). Удостоверьтесь, что на сервере стоит минимально необходимая версия PHP для конкретной версии JPGraph! В настоящее время данная возможность находится в стадии разработки, поэтому не удивляйтесь если получили странные результаты.
  • jpgraphdir: (Obsolete since 1.8) Расположение скриптов jpgraph на диске. Данная опция требуется только тогда, когда $usejpgraph установлено в 1.
  • jpgraphfont: (Obsolete since 1.8) Параметр определяющий шрифт используемый в графиках. Полностью рабочий вариант: "FF_FONT1"
  • embedded: (Obsolete since 2.0) Если Вы хотите интегрировать LimeSurvey в другую страницу, то необходимо отключить отправку HTML-заголовков используя данную настройку и точки в заголовках методов пользовательских функций. Это грязный хак, но, тем не менее, должно помочь при быстрой интеграции.
  • filterout_incomplete_answers: Для управления поведением по-умолчанию при фильтрации незавершенных ответов во время обзора ответом см. Обзор результатов опроса. Поскольку данные записи могут нарушить статистику, варианты переключения данного параметра в графическом интерфейсе следующие (этот параметр в config.php установлен по-умолчанию для незавершенных ответов):
    • show: Показывать все ответы
    • filter: Показывать только завершенные ответы
    • incomplete: Показывать только незавершенные ответы
  • strip_query_from_referer_url: Данный параметр определяет будут ли сохраняться параметры из партнерских ссылок или нет. По-умолчанию "false" (в этом случае сохраняются все параметры). Альтернативой этому может быть установка значения "true" и часть ссылки с параметрами будет отсекаться.
  • showaggregateddata: (New in 1.8 ) При активации данного параметра будут дополнительно показаны среднее арифметическое и среднее отклонение в статистике. Кроме того собираются для быстрого просмотра т.е. результаты диапазона 1+2 и 4+5 складываются, чтобы иметь общий ранг "хорший" (1/2), "средний" (3) и "плохой" (4/5). Это относится только к вопросам типа "A" (массив с пятибальной шкалой) и "5" (выбор из пяти вариантов).
  • PDF Export Settings: (New in 1.85 ) Эта возможность активирует экспорт в PDF для печатных форм опросов и печати ответов. Экспорт в PDF - экспериментальный. Итоговый вывод не красивый. По этому вопросу отсутствует всяческая поддержка - свяжитесь с нами если Вы хотите помочь нам в этом.
    • usepdfexport: Установите 0 для выключения; 1 для включения
    • pdfdefaultfont: Шрифт используемый по-умолчанию
    • pdffontsize: Размер шрифта для нормального текста; Заголовок опроса +4; заголовок группы +2
    • notsupportlanguages = Массив не поддерживаемых языков: array('zh-Hant-TW','zh-Hant-HK','zh-Hans','ja','th');
    • pdforientation: Ориентация PDF. Установите L для ландшафтного или P для портретного формата
  • $showsgqacode: (New in 1.91 ) Эта настройка используется для возможности печати опроса {IMG(attId="78",height="16",width="16")} и по-умолчанию false. Если Вы установите showsgqacode = true; то будут отображены ID каждого вопроса и ответа; данные идентификаторы совпадают с заголовками столбцов в таблице Lime_survey_12345 которая содержит данные конкретного опроса. Эти идентификаторы могут быть использованы как код книги для ручных запросов к базе данных.
  • {IMG(attId="79",height="200",width="400")}

Настройки LDAP

Т.к. данная тема весьма и весьма обширна, то мы переместили Настройки LDAP на другую страницу.

Аутентификация

В LimeSurvey 2.05 аутентификация осуществляется при помощи плагинов. В связи с этим данная информация может быть устаревшей. См. Плагины для получения свежей информации.

Передача проверки подлинности Web-серверу

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

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

Обратите внимание на то, что:

  • LimeSurvey будет обходить собственную процедуру аутентификации процесса (используя имя переданное web-серверу без запроса пароля)
  • это может заменить графический интерфейс аутентификации системы не приглашение в систему опроса (интерфейс участника)

Передача аутентификации без автоматического импорта пользователей

Обратите внимание на то, что по-умолчанию Передача аутентификации не обходит систему авторизации: это означает, что хоть Вам и не нужно управлять пользовательскими паролями в системе, все равно необходимо завести пользователей в базу LimeSurvey и присвоить им необходимые наборы прав доступа к определенным ресурсам.

Пользователю предоставляется доступ к LimeSurvey тогда и только тогда, когда:

  • он прошёл аутентификацию на веб-сервере;
  • его логин определён как пользователь в базе данных пользователей LimeSurvey (при этом пользователь получает привилегии, заданные в базе данных пользователей LimeSurvey);
  • у него есть глобальное разрешение Использовать авторизацию веб-сервера.

Передача аутентификации с автоматическим импортом пользователей

При управлении большой базой пользователей иногда проще автоматически импортировать пользователей в базу данных LimeSurvey:

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

Если вы хотите настроить профиль пользователя так, чтобы он соответствовал вошедшему в систему пользователю, необходимо создать в config.php простую функцию hook_get_auth_webserver_profile. С её помощью можно получить из центральной базы данных учётных записей (например, из каталога LDAP) настоящее полное имя, e-mail и язык конкретного пользователя.

Функция 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');
)

После успешной аутентификации на Web-сервере с использованием логина 'myname' и пароля, Вы будете напрямую авторизованы в LimeSurvey как пользователь 'admin'.

Очевидно, что данная процедура имеет определенные последствия в плане безопасности, так что применяйте это с осторожностью, и, пожалуйста, защитите Ваш config.php от записи Web-сервером.

Использование одноразовых паролей

Пользователь может открыть страницу входа 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 будет использовать для выдачи загруженных файлов. Это позволяет разместить загруженные файлы на другом домене.

Расширенные настройки директорий

  • 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 на основе Red Hat.
  • magic_file: Позволяет использовать другой файл для получения массива расширений по MIME-типу вместо входящего в комплект. Должен быть PHP-файлом, возвращающим массив. Может быть изменён только в файле config.php.

Обновление

  • updatable: Эта настройка находится в version.php. Может принимать значение true или false. Если задано true, то при входе суперадминистратора LimeSurvey проверяет наличие обновления и показывает предупреждение. Если задано false, проверка не выполняется, и использовать ComfortUpdate нельзя.

Токены

  • allowedcharacters_pattern_token : эти настройки позволяют задать регулярное выражение для фильтрации токенов.