expressionFixedDbVar

Extends\PluginBase

expressionFixedDbVar : add some fixed DB var : SEED, STARTDATE …

author

Denis Chenu denis@sondages.pro

copyright

2019-2021 LimeSurvey - Denis Chenu

license

GPL version 3

version 1.0.2

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

package

Default

Methods

Constructor for the plugin

__construct(\LimeSurvey\PluginManager\PluginManager $manager,integer $id)
inherited
todo

Add proper type hint in 3.0

Arguments

$manager

\LimeSurvey\PluginManager\PluginManager

The plugin manager instantiating the object

$id

integer

The id for storage

Add the fixed know var to valid variables

addFixedDbVar()

Add the option inside survey settings

beforeSurveySettings(): void

Update value just before views

beforeTwigViews()

Check if config field active is 1. If yes, activate the plugin.

checkActive(\Plugin $pluginModel): void
inherited

This is the 'active-by-default' feature.

Arguments

$pluginModel

\Plugin

Returns true if config file has a higher version than database.

configIsNewVersion(): boolean
inherited

Assumes $this->config is set.

Response

boolean

This function retrieves plugin data. Do not cache this data; the plugin storage engine will handling caching. After the first call to this function, subsequent calls will only consist of a few function calls and array lookups.

get(string $key = null,string $model = null,integer $id = null,mixed $default = null): boolean
inherited

Arguments

$key

string

$model

string

$id

integer

$default

mixed

The default value to use when not was set

Response

boolean

get the fiuxed var to be added for this survey

getAddedVars(integer $surveyId): array<mixed,string>

Arguments

$surveyId

integer

Response

array<mixed,string>

Return the description for this plugin

getDescription()
inheritedstatic

To find the plugin locale file, we need late runtime result of __DIR__.

getDir(): string|null
inherited

Get the current event this plugin is responding to

getEvent(): \LimeSurvey\PluginManager\PluginEvent
inherited

Returns the id of the plugin

getId(): integer
inherited

Used by storage model to find settings specific to this plugin

Response

integer

Gets the name for the plugin, this must be unique.

getName(): string
inheritedstatic

Response

string

Plugin name, max length: 20.

Provides meta data on the plugin settings that are available for this plugin.

getPluginSettings(boolean $getValues = true): array
inherited

This does not include enable / disable; a disabled plugin is never loaded.

Arguments

$getValues

boolean

Set to false to not get the current value for each plugin setting.

Response

array

Returns the plugin storage and takes care of instantiating it

getStore(): \LimeSurvey\PluginManager\iPluginStorage
inherited

Translation for plugin

gT(string $sToTranslate,string $sEscapeMode = 'html',string $sLanguage = null): string
inherited

Arguments

$sToTranslate

string

The message that are being translated

$sEscapeMode

string

$sLanguage

string

Response

string

init

init()

Call the Yii::log function to log into tmp/runtime/plugin.log The plugin name is the category.

log(string $message,string $level = \CLogger::LEVEL_TRACE): void
inherited

Arguments

$message

string

$level

string

From CLogger, defaults to CLogger::LEVEL_TRACE

Save the survey settings

newSurveySettings(): void

Publishes plugin assets.

publish( $fileName): string
inherited

Arguments

$fileName

Response

string

Read XML config file and store it in $this->config Assumes config file is config.xml and in plugin root folder.

readConfigFile(): boolean
inherited
todo

Could this be moved to plugin model?

Response

boolean

registerCss

registerCss(string $relativePathToCss,string $parentPlugin = null): void
inherited

Arguments

$relativePathToCss

string

$parentPlugin

string

registerScript

registerScript(string $relativePathToScript,string $parentPlugin = null): void
inherited

Arguments

$relativePathToScript

string

$parentPlugin

string

registerSetting

registerSetting(string $name,array $options = array('type' => 'string'))
inherited

Arguments

$name

string

Name of the setting. The type of the setting is either a basic type or choice. The choice type is either a single or a multiple choice setting.

$options

array

Contains parameters for the setting. The 'type' key contains the parameter type. The type is one of: string, int, float, choice. Supported keys per type: String: max-length(int), min-length(int), regex(string). Int: max(int), min(int). Float: max(float), min(float). Choice: choices(array containing values as keys and names as values), multiple(bool) Note that the values for choice will be translated.

Look for views in plugin views/ folder and render it

renderPartial(string $viewfile,array $data,boolean $return = false,boolean $processOutput = false): \LimeSurvey\PluginManager\string;
inherited

Arguments

$viewfile

string

Filename of view in views/ folder

$data

array

$return

boolean

$processOutput

boolean

Response

\LimeSurvey\PluginManager\string;

Saves the new version from config into database

saveNewVersion(): void
inherited

Saves the settings for this plugin

saveSettings( $settings): void
inherited

Assumes an array with valid key/value pairs is passed.

Arguments

$settings

This function stores plugin data.

set(string $key,mixed $data,string $model = null,integer $id = null): boolean
inherited

Arguments

$key

string

$data

mixed

$model

string

$id

integer

Response

boolean

Set the event to the plugin, this method is executed by the PluginManager just before dispatching the event.

setEvent(\LimeSurvey\PluginManager\PluginEvent $event): \LimeSurvey\PluginManager\PluginBase
inherited

We need a component for each plugin to load correct locale file.

setLocaleComponent(): void
inherited

Show an error message about malformed config.json file.

showConfigErrorNotification(): void
inherited

This function subscribes the plugin to receive an event.

subscribe(string $event,string $function = null)
inherited

Arguments

$event

string

$function

string

This function unsubscribes the plugin from an event.

unsubscribe(string $event)
inherited

Arguments

$event

string

Properties

storage

storage :string
inherited
var

Type(s)

string

description

description :string
inheritedstatic
var

Type(s)

string

name

name :string
inheritedstatic
var

Type(s)

string

List of allowed public method, null mean all method are allowed.

allowedPublicMethods :array<mixed,string>|null
inherited

Else method must be in the list. Used in public controller :

  • PluginHelper::ajax (admin/pluginhelper&sa=ajax)
  • PluginHelper::fullpagewrapper (admin/pluginhelper&sa=fullpagewrapper)
  • PluginHelper::sidebody (admin/pluginhelper&sa=sidebody)
var

Type(s)

array<mixed,string>|null

Global settings of plugin

settings :array<mixed,array>
inherited
var

Type(s)

array<mixed,array>

api

api :\LimeSurvey\PluginManager\LimesurveyApi
inherited

event

event :\LimeSurvey\PluginManager\PluginEvent
inherited

id

id :integer
inherited
var

Type(s)

integer

store

store :\LimeSurvey\PluginManager\?
inherited
var

Type(s)

\LimeSurvey\PluginManager\?

This holds the pluginmanager that instantiated the plugin

pluginManager :\LimeSurvey\PluginManager\PluginManager
inherited

config.xml

config :\SimpleXMLElement|null
inherited
todo

Use ExtensionConfig

var

Type(s)

\SimpleXMLElement|null

List of settings that should be encrypted before saving.

encryptedSettings :array<mixed,string>
inherited
var

Type(s)

array<mixed,string>