LimeSurvey Manual
Menu
Navigation
Main page
Recent changes
Random page
Help
Search
Special pages
Printable version
Recent changes
Help
English
Log in
Actions
Translate
Language statistics
Message group statistics
Export
Special
Export translations
Settings
Group
Activating a survey
Adding answers or subquestions
Administering LimeSurvey
Alternatives to the LimeSurvey import function
Assessments
Backup entire database
Batch deletion
Category:Advanced Question Settings
Category:General Question Options
Category:Question Settings
Central Participant Database
Changing an active survey
Check data integrity
Check question logic
Check survey logic - Advanced
Closing a survey
ComfortUpdate
Copy question
Data encryption
Data entry
Data policy settings
DateFunctions
Default answers
Delete question
Delete survey
Display/Export survey
Edit question
Email bounce tracking system
Email templates
Export question
Export responses
Exporting results
Expression Manager
Expression Manager sample surveys
ExpressionScript - Presentation
ExpressionScript Engine - Quick start guide
ExpressionScript examples
ExpressionScript How-tos
ExpressionScript sample surveys
Extension compatibility
Failed email notifications
First login - your user preferences
General FAQ
General settings
Getting started
Global settings
Google API howto
Home page settings
How to design a good survey (guide)
Import responses
Importing a survey
Installation - LimeSurvey CE
Installation FAQ
Installation of the LimeSurvey XAMPP package
Installation security hints
Installation using a command line interface (CLI)
Installation Version 1.92 or older
Iterate survey
Label sets
LDAP settings
License
LimeSurvey Manual
LimeSurvey PRO vs LimeSurvey CE
LimeSurvey Users
LimeSurvey Video-Tutorial
LimeSurvey-compatible hosting companies
List question groups
List questions
Localization
Major version upgrade
Make your plugin compatible with LS4
Manage user groups
Manage users
Menu configuration
Menu entries configuration
Multilingual survey
New Template System in LS3.x
Not categorized and advanced features
Notifications & data
Optional settings
Overview
Panel integration
Participant settings
Plugin manager
Plugin menu
Plugins - advanced
Presentation
Preview function
Problems & solutions
Publication & access
QS:Allowed filetypes
QS:Alphasort
QS:Answer width
QS:Array filter
QS:Array filter exclude
QS:Array filter style
QS:Assessment value
QS:Autocheck exclusive option
QS:Category separator
QS:Chart type
QS:Choice column width
QS:Choice header
QS:Code filter
QS:Commented checkbox
QS:CSS Class
QS:Date max
QS:Date min
QS:Date time format
QS:Display chart
QS:Display columns
QS:Display map
QS:Display rows
QS:Display type
QS:Dropdown dates
QS:Dropdown dates year max
QS:Dropdown dates year min
QS:Dropdown prefix
QS:Dropdown prepostfix
QS:Dropdown separators
QS:Dropdown size
QS:Dualscale headerA
QS:Dualscale headerB
QS:Em validation q
QS:Em validation q tip
QS:Em validation sq
QS:Em validation sq tip
QS:Encryption
QS:Equals num value
QS:Equation
QS:Exclusive option
QS:Get order previous q
QS:Hidden
QS:Hide tip
QS:Input box size
QS:Input boxes
QS:Input max characters
QS:Label column width
QS:Location city
QS:Location country
QS:Location defaultcoordinates
QS:Location mapheight
QS:Location mapservice
QS:Location mapwidth
QS:Location mapzoom
QS:Location nodefaultfromip
QS:Location postal
QS:Location state
QS:Mandatory
QS:Max answers
QS:Max filesize
QS:Max num value
QS:Max num value n
QS:Max num value sgqa
QS:Max subquestions
QS:Maximum chars
QS:Maximum number of files
QS:Min answers
QS:Min num value
QS:Min num value n
QS:Minimum number of files
QS:Minute step interval
QS:Month display style
QS:Multiflexible checkbox
QS:Multiflexible max
QS:Multiflexible min
QS:Multiflexible step
QS:Num value int only
QS:Numbers only
QS:Other
QS:Other comment mandatory
QS:Other numbers only
QS:Other Position
QS:Other replace text
QS:Page break
QS:Prefix
QS:Preg validation
QS:Printable survey relevance help
QS:Public statistics
QS:Question theme
QS:Random group
QS:Random order
QS:Rank header
QS:Relevance
QS:Remove text or uncheck checkbox
QS:Repeat headers
QS:Reverse
QS:Samechoiceheight
QS:Samelistheight
QS:Scale export
QS:Show comment
QS:Show grand total
QS:Show title
QS:Show totals
QS:Showpopups
QS:Slider accuracy
QS:Slider default
QS:Slider handle shape
QS:Slider handle Unicode shape
QS:Slider initial value
QS:Slider layout
QS:Slider max
QS:Slider middlestart
QS:Slider min
QS:Slider orientation
QS:Slider rating
QS:Slider reset
QS:Slider reverse
QS:Slider separator
QS:Slider showminmax
QS:Subquestion width
QS:Suffix
QS:Text input width
QS:Theme editor - advanced options
QS:Time limit
QS:Time limit action
QS:Time limit countdown message
QS:Time limit disable next
QS:Time limit disable prev
QS:Time limit message
QS:Time limit message delay
QS:Time limit message style
QS:Time limit timer style
QS:Time limit warning
QS:Time limit warning display time
QS:Time limit warning message
QS:Time limit warning style
QS:Use dropdown
QS:Value range allows missing
Question groups - introduction
Question toolbar options
Question type - 5 point choice
Question type - Array
Question type - Array (10 point choice)
Question type - Array (5 point choice)
Question type - Array (Increase-Same-Decrease)
Question type - Array (Numbers)
Question type - Array (Texts)
Question type - Array (Yes-No-Uncertain)
Question type - Array by column
Question type - Array dual scale
Question type - Date
Question type - Equation
Question type - File upload
Question type - Gender
Question type - Huge free text
Question type - Language switch
Question type - List (Dropdown)
Question type - List (Radio)
Question type - List with comment
Question type - Long free text
Question type - Multiple choice
Question type - Multiple choice with comments
Question type - Multiple numerical input
Question type - Multiple short text
Question type - Numerical input
Question type - Ranking
Question type - Short free text
Question type - Text display
Question type - Yes-No
Question types
Questions - introduction
QueXML PDF Export
Quick start guide - LimeSurvey 2.50+
Quick start guide - LimeSurvey 3.0+
Quick-translation
Regenerate question codes
Reorder questions and question groups
Reset conditions
Resources
Responses & statistics
Responses (survey results)
Running a survey safely
Setting conditions
SGQA identifier
Statistics
Survey group permissions
Survey menu
Survey participants
Survey permissions
Survey quotas
Survey settings
Survey settings version 2
Survey structure
Survey toolbar options
Surveys - introduction
Surveys - management
Tab Separated Value survey structure
Template:Deprecated
Template:DeprecatedIn
Template:Example
Template:FeatureChange
Template:FeatureStarting
Template:Hint
Template:NewIn
Template:UpdatedIn
Testing a survey
Text elements
Theme editor
Theme options
Themes
Timing statistics
Tools
Transferring an installation
Translating LimeSurvey
Troubleshooting
TwoFactorAdminLogin
Upgrading from a previous version
URL fields
Using regular expressions
Version change log
Version guide
View saved but not submitted responses
Workarounds
Language
aa - Afar
ab - Abkhazian
abs - Ambonese Malay
ace - Achinese
acm - Iraqi Arabic
ady - Adyghe
ady-cyrl - Adyghe (Cyrillic script)
aeb - Tunisian Arabic
aeb-arab - Tunisian Arabic (Arabic script)
aeb-latn - Tunisian Arabic (Latin script)
af - Afrikaans
aln - Gheg Albanian
alt - Southern Altai
am - Amharic
ami - Amis
an - Aragonese
ang - Old English
ann - Obolo
anp - Angika
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
atj - Atikamekw
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - South Azerbaijani
ba - Bashkir
ban - Balinese
ban-bali - Balinese (Balinese script)
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba (Latin script)
bcc - Southern Balochi
bci - Baoulé
bcl - Central Bikol
bdr - West Coast Bajau
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bew - Betawi
bg - Bulgarian
bgn - Western Balochi
bh - Bhojpuri
bho - Bhojpuri
bi - Bislama
bjn - Banjar
blk - Pa'O
bm - Bambara
bn - Bangla
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
btm - Batak Mandailing
bto - Iriga Bicolano
bug - Buginese
bxr - Russia Buriat
ca - Catalan
cbk-zam - Chavacano
cdo - Min Dong Chinese
ce - Chechen
ceb - Cebuano
ch - Chamorro
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cps - Capiznon
cpx - Pu-Xian Min
cpx-hans - Pu-Xian Min (Simplified Han script)
cpx-hant - Pu-Xian Min (Traditional Han script)
cpx-latn - Pu-Xian Min (Latin script)
cr - Cree
crh - Crimean Tatar
crh-cyrl - Crimean Tatar (Cyrillic script)
crh-latn - Crimean Tatar (Latin script)
crh-ro - Crimean Tatar (Romania)
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
dag - Dagbani
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
dga - Dagaare
din - Dinka
diq - Zazaki
dsb - Lower Sorbian
dtp - Central Dusun
dty - Doteli
dv - Divehi
dz - Dzongkha
ee - Ewe
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
es-419 - Latin American Spanish
es-formal - Spanish (formal address)
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
fat - Fanti
ff - Fula
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fon - Fon
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fy - Western Frisian
ga - Irish
gaa - Ga
gag - Gagauz
gan - Gan Chinese
gan-hans - Gan (Simplified)
gan-hant - Gan (Traditional)
gcr - Guianan Creole
gd - Scottish Gaelic
gl - Galician
gld - Nanai
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
gor - Gorontalo
got - Gothic
gpe - Ghanaian Pidgin
grc - Ancient Greek
gsw - Alemannic
gu - Gujarati
guc - Wayuu
gur - Frafra
guw - Gun
gv - Manx
ha - Hausa
hak - Hakka Chinese
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
hno - Northern Hindko
ho - Hiri Motu
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
hsn - Xiang Chinese
ht - Haitian Creole
hu - Hungarian
hu-formal - Hungarian (formal address)
hy - Armenian
hyw - Western Armenian
hz - Herero
ia - Interlingua
id - Indonesian
ie - Interlingue
ig - Igbo
igl - Igala
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kai - Karekare
kbd - Kabardian
kbd-cyrl - Kabardian (Cyrillic script)
kbp - Kabiye
kcg - Tyap
kea - Kabuverdianu
kg - Kongo
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kjh - Khakas
kjp - Eastern Pwo
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
ko - Korean
ko-kp - Korean (North Korea)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
krl - Karelian
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ksw - S'gaw Karen
ku - Kurdish
ku-arab - Kurdish (Arabic script)
ku-latn - Kurdish (Latin script)
kum - Kumyk
kus - Kʋsaal
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - Lak
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
lki - Laki
lld - Ladin
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mad - Madurese
mag - Magahi
mai - Maithili
map-bms - Basa Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Māori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mnc - Manchu
mnc-latn - Manchu (Latin script)
mnc-mong - Manchu (Mongolian script)
mni - Manipuri
mnw - Mon
mo - Moldovan
mos - Mossi
mr - Marathi
mrh - Mara
mrj - Western Mari
ms - Malay
ms-arab - Malay (Jawi script)
mt - Maltese
mus - Muscogee
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nāhuatl
nan - Min Nan Chinese
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
nia - Nias
niu - Niuean
nl - Dutch
nl-informal - Dutch (informal address)
nmz - Nawdm
nn - Norwegian Nynorsk
no - Norwegian
nod - Northern Thai
nog - Nogai
nov - Novial
nqo - N’Ko
nrm - Norman
nso - Northern Sotho
nv - Navajo
ny - Nyanja
nyn - Nyankole
nys - Nyungar
oc - Occitan
ojb - Northwestern Ojibwa
olo - Livvi-Karelian
om - Oromo
or - Odia
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pcd - Picard
pcm - Nigerian Pidgin
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Norfuk / Pitkern
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
pwn - Paiwan
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rki - Arakanese
rm - Romansh
rmc - Carpathian Romani
rmy - Vlax Romani
rn - Rundi
ro - Romanian
roa-tara - Tarantino
rsk - Pannonian Rusyn
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rw - Kinyarwanda
ryu - Okinawan
sa - Sanskrit
sah - Yakut
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
se-fi - Northern Sami (Finland)
se-no - Northern Sami (Norway)
se-se - Northern Sami (Sweden)
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
sh-cyrl - Serbo-Croatian (Cyrillic script)
sh-latn - Serbo-Croatian (Latin script)
shi - Tachelhit
shi-latn - Tachelhit (Latin script)
shi-tfng - Tachelhit (Tifinagh script)
shn - Shan
shy - Shawiya
shy-latn - Shawiya (Latin script)
si - Sinhala
simple - Simple English
sjd - Kildin Sami
sje - Pite Sami
sk - Slovak
skr - Saraiki
skr-arab - Saraiki (Arabic script)
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
smn - Inari Sami
sms - Skolt Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - Serbian (Cyrillic script)
sr-el - Serbian (Latin script)
srn - Sranan Tongo
sro - Campidanese Sardinian
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
sty - Siberian Tatar
su - Sundanese
sv - Swedish
sw - Swahili
syl - Sylheti
szl - Silesian
szy - Sakizaya
ta - Tamil
tay - Tayal
tcy - Tulu
tdd - Tai Nuea
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tk - Turkmen
tl - Tagalog
tly - Talysh
tly-cyrl - Talysh (Cyrillic script)
tn - Tswana
to - Tongan
tok - Toki Pona
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
trv - Taroko
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - Uzbek (Cyrillic script)
uz-latn - Uzbek (Latin script)
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vmw - Makhuwa
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
wal - Wolaytta
war - Waray
wls - Wallisian
wo - Wolof
wuu - Wu Chinese
wuu-hans - Wu Chinese (Simplified)
wuu-hant - Wu Chinese (Traditional)
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
xsy - Saisiyat
yi - Yiddish
yo - Yoruba
yrl - Nheengatu
yue - Cantonese
yue-hans - Cantonese (Simplified)
yue-hant - Cantonese (Traditional)
za - Zhuang
zea - Zeelandic
zgh - Standard Moroccan Tamazight
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - Chinese (Macau)
zh-my - Chinese (Malaysia)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
Format
Export for off-line translation
Export in native format
Export in CSV format
Fetch
{{DISPLAYTITLE:Nov sistem predlog v LS3.x}}<languages /> __TOC__ =Uvod= Pozor: v prejšnjih različicah LimeSurvey so se datoteke, ki določajo, kako anketa izgleda, kako je anketa predstavljena v smislu barv, pisav, postavitve in (nekaterega) obnašanja, imenovale "template". Zaradi novih spoznanj se to zdaj imenuje "tema", predloga pa je rezervirana za na primer ankete. Na tej strani se boste naučili, kako: * Uporabite nov sistem tem LimeSurvey 3.0. * Uporabite dedovanje za upravljanje lastnih tem. * Dodajte sliko svoji temi * Upravljajte možnosti tem za svoje ankete in skupine anket. <hr/> LimeSurvey 3 predstavlja popolnoma nov sistem mehanizma za teme, ki temelji na Twig 1.29, Bootstrap in omogoča dedovanje tem in možnosti tem. Popolnoma odstrani stari sistem nadomestnih ključnih besed. Tako je zdaj mogoče prilagoditi 100 % čelnega HTML-ja. Na primer, v starem sistemu tem je obstajala ključna beseda {ASSESSMENTS}, ki je bila v času izvajanja nadomeščena z ocenjevalnim HTML-jem. Oblikovalec tem ni mogel prilagoditi tega HTML-ja (razen z uporabo JavaScripta). Zdaj obstaja datoteka z imenom assessments.twig, ki vsebuje logiko (napisano v Twigu) za ustvarjanje tega HTML-ja. Na teh straneh vam bomo dali nekaj razlag o uporabi tega novega mehanizma za teme. <div class="simplebox">[[Datoteka:help.png]] Tukaj ne bomo podrobno opisovali, kako deluje Twig. Je nekako zelo poenostavljen PHP, ki ponuja visoko raven varnosti zahvaljujoč sistemu »peskovnika« (to bomo podrobneje videli v delu o kodi Theme Engine Core). Če že poznate PHP, ga boste izjemno enostavno obvladali. Če ne poznate PHP-ja, bi se ga vseeno lahko naučili. Prosimo, poglejte dokumentacijo Twig 1.X: https://twig.symfony.com/</div> =Urejanje z uporabo skrbniškega vmesnika= ==seznam tem== Na skrbniški nadzorni plošči je zdaj polje za dostop do seznama tem: [[Datoteka:Template list.jpg|thumb|800px |center|baseline|border|''Seznam tem po novi namestitvi RC3'']] <br /> Seznam je razdeljen na 5 stolpcev: * predogled teme: to je samo slikovna datoteka, imenovana “preview.png” v korenu teme * “naslov” teme kot določeno v manifestu (config.xml v korenu teme) * opis teme: nabor nizov v njenem manifestu * vrsta teme: Osnovna tema (na voljo z LimeSurvey), Uporabniška tema (dodano v imenik za nalaganje), tema XML (ni naložena v zbirko podatkov) * Razširi: če tema razširja drugo temo, bo njeno ime navedeno tukaj * Nekateri akcijski gumbi: ** Namesti: it naloži manifest teme, da jo doda v zbirko podatkov in jo da na voljo za izbiro na ravni ankete ** Odstrani: izbrisal bo konfiguracijske vnose teme v zbirki podatkov ** Urejevalnik tem: it vas bo preusmeril v urejevalnik tem ** Možnost teme: vodila vas bo do globalne konfiguracije možnosti teme ==Urejevalnik tem== <div class="simplebox"> [[Datoteka:help.png]] Ta dokumentacija predvideva, da že znate uporabljati urejevalnik tem v prejšnji različici LS.</div> <br> Urejevalnik tem je čim bližje izvirnemu. Torej, ko odprete temeljno temo, je ne morete urejati. Zdaj pa imate namesto gumba »kopiraj« gumb »podaljšaj«. <br> [[Datoteka:Extends default.png|center|baseline|border|''Zdaj ste '''razširili''' temo'']] <span id="A_quick_overview_of_the_concept_of_theme_inheritance"></span> ====Hiter pregled koncepta dedovanja tem==== V LS3 lahko tema zdaj podeduje drugo temo, lahko "razširi" drugo temo. To pomeni, da bo imenik tem praktično prazen, vseboval bo samo datoteke (poglede, slogovne liste, skripte, vire itd.), ki se razlikujejo od izvirnih. S tem boste zlahka ustvarili floto tem za različne uporabnike, ne da bi morali vzdrževati veliko različnih tem. Na primer: lahko imate svojo doma narejeno temo in nato različico za podjetje (z njegovim logotipom, njegovim slogom, morda povezavo do njegove spletne strani v nogi itd.), drugo različico za drugo podjetje itd. Če potem posodobite CSS ali globalno postavitev vaše teme po meri, bodo vse teme, ki jih podedujejo, samodejno posodobljene. Upoštevajte, da je dedovanje rekurzivno: tema lahko razširi temo, ki razširi drugo itd. <div class="simplebox">[[Datoteka:help.png]] Pomeni tudi, da boste še vedno imeli koristi od njenih posodobitev, če razširite eno od temeljnih tem LimeSurvey.</div> <span id="Novelties_in_the_user_interface"></span> ====Novosti v uporabniškem vmesniku==== Če želite razširiti črno-belo temo LimeSurvey, pojdite na seznam tem in kliknite gumb »Urejevalnik tem« enobarvne teme. Nato kliknite »extend« in potrdite novo ime »extends_monochrome«. Če greste zdaj v imenik za nalaganje (z odjemalcem za datoteke/ftp), boste videli, da je bil ustvarjen nov imenik: '''upload/themes/extends_monochrome''' Vsebuje datoteko XML in imenike , vendar je večina imenikov praznih. Nima ne pogledov ne CSS ne JS. Vendar lahko to temo še vedno izberete kot običajno iz ankete in izgledala bo natanko tako kot enobarvna tema. [[Datoteka:Extends monochrome empty.jpg|center|baseline|border|''Tematsko drevo (imenik in datoteke) takoj po ustvarjanju. Praktično je prazna'']] <div class="simplebox">[[Datoteka:help.png]] Viri (jpg, png itd.) iz izvirne teme se pri razširitvi teme kopirajo. To je zato, ker če lokalno kopirate datoteko CSS iz izvirne teme in če se nanaša na te datoteke (na primer v izjavi o sliki ozadja), bo morala najti te slike na trenutni poti teme.</div> Urejevalnik tem za temo extends_monochrome je videti takole: [[Datoteka:Editing extends monochrome.jpg|center|baseline|border|'' Editing extends_monochrome theme'']] <br /><br /> S starim urejevalnikom tem ni velike razlike. Naj naštejemo glavne: <br /> * Ključna beseda '''podedovano''' na seznamu datotek. To pomeni, da datoteke ni v imeniku teme in da bo uporabljena datoteka iz izvirne teme. [[File:Inherited.jpg|center]] <br> * Glavni urejevalnik ( [https://ace.c9.io ACE editor ] ) prikaže vsebino izbrane datoteke. Datoteke ne vsebujejo le HTML, CSS ali JS, ampak tudi izjave Twig. Ti stavki Twig nam dajejo možnost, da potisnemo nekaj logike v poglede teme, ki so bili prej locirani globoko v jedru in ki jih je zdaj mogoče prilagoditi. [[Datoteka:Twig code in editor.jpg|center|''Some twig koda, za Anketni seznam'']] <br> * Zato imate zdaj na voljo več vrst zaslonov v spustnem izbirniku zgornjega menija. Opazili boste strani, kot so 'Seznam anket', 'Naloži', 'Shrani', 'Napaka', 'Registracija', 'Ocenjevanja', 'Natisni odgovore', ki prej niso bile na voljo ali pa jih niste mogli zares prilagoditi prej. [[Datoteka:Newscreens editables.jpg|195px|center|''Zdaj lahko prilagodite vse zaslone'']] <br /> * Povezava 'tip' na dnu seznama datotek vam omogoča Twig način dodajanja slike v vaš HTML [[File:Tip picture.png|605px|center]] <br /> * Gumb 'shrani spremembe' postane gumb '''Kopiraj v lokalno temo in shrani spremembe''' [[File:Copytolocal.png|360px|center]] <span id="Quick_example:_adding_a_picture"></span> ====Hiter primer: dodajanje slike ==== Gumb '''Kopiraj v lokalno temo in shrani spremembe''' bo naredil natanko to, kar piše: če uredite karkoli znotraj datoteke in nato kliknete ta gumb, bo kopiral datoteko v temo, ki jo urejate, in shranite spremembe. <br> Na primer: kliknite na datoteko layout_global.twig, nato tik pred vsebino bloka ( {% block content %}) dodajte besedilo “TEST” in kliknite gumb. Vidite lahko, da se je oznaka datoteke spremenila iz “podedovano” v “lokalno” in zdaj je gumb preprost gumb '''shrani spremembe'''. [[Datoteka:After edition.png|center|''takoj po kliku na gumb'']] <br> Če odprete raziskovalec datotek in greste v imenik upload/themes/extends_monochrome/views/, boste videli, da vsebuje samo eno datoteko, datoteko layout_global.twig in da je tam niz »TEST«.!N ![[File:Tree with layout global arrow.png|center|''Datoteka je zdaj prisotna v vaši temi'']] <br><br> Zdaj bomo namesto naključnega besedila dodali sliko. Če kliknete povezavo do nasveta, vam bo povedal: <br> Za uporabo slike v datoteki .twig: '''{{ image('./files/myfile.png', 'alt-text for my file', {"class": "myclass" }) }}'' <br> Če ste prebrali dokumentacijo Twiga (in bi to morali storiti na tej točki), veste, da '''{{ function( ) }}<nowiki /> ''' bo prikazal rezultat funkcije na zaslonu. Tukaj je funkcija image(). <div class="simplebox">[[Datoteka:help.png]] Če vas zanima, kaj počne, ga lahko najdete v kodi tukaj (različica RC3): [https://github.com/LimeSurvey/LimeSurvey/blob/f3737a75e428f604d68d2e5ba958f3eba3eba2e1 /application/core/LS_Twig_Extension.php#L219-L237 funkcija image() v RC3] Če ne razumete kode: ne skrbite, ni vam treba vedeti, kako deluje, ampak zakaj uporabljajte in kako ga uporabljati. </div> <br> Funkcijo image() morate uporabiti iz dveh razlogov: * Funkcija image se pomika po temi, da poišče sliko. Če je tema, na kateri delate, razširjena na drugo temo in če kopirate datoteko tja, kamor ste lokalno vstavili sliko, vendar ta slika ni kopirana v lokalno temo, bo prešla skozi drevo dedovanja teme, da bi našla, kje ta slika je. * Uporabila bo upravitelja sredstev, zato bo izboljšala delovanje vaše teme. Oglejte si dokumentacijo Yii Asset Manager za več informacij o tem: http://www.yiiframework.com/wiki/148/understanding-assets/ <div class="simplebox"> Torej, če želite svoji temi dodati sliko: * jo preprosto naložite kot običajno z nalagalnikom datotek na desni in jo nato dodajte na želeno mesto v kateri koli datoteki twig: ''''{ { image('./files/myfile.png') }}''' * Če želite svoji sliki dodati nadomestno besedilo (za bralnike zaslona in preverjanje HTML), dodajte: {{ image('./files/myfile.png'), ''' 'moje nadomestno besedilo' ' '' }} * Če želite dodati atribut razreda in mu dodati ID: {{ image('./files/myfile.png'), 'my alternative text', ''' {“class”: “a_nice_css_class “, “id”: “any_id”} ''' }} </div> ====Nekaj stvari na našem seznamu OPRAVIL==== * Dajte uporabnikom možnost nalaganja datoteke s predogledom po meri iz samega urejevalnika * Dodajte gumb za brisanje lokalne datoteke in vrnitev v podedovana izjava * Kopirajte samo sliko, uporabljeno v datotekah CSS (tako, da jih navedete v manifestu kot datoteko za kopiranje) * Opomnite, katero temo razširja trenutna (če obstaja) ==Možnosti teme== Še ena novost LS3 je stran z možnostmi teme. Kot bomo videli pozneje, lahko ustvarjalci tem ustvarijo svoje možnosti in celo lastno skrbniško stran z možnostmi. Tukaj bomo na hitro videli, kako deluje stran z možnostmi osnovnih tem. Za dostop do možnosti teme na globalni ravni: kliknite »možnosti teme« na seznamu tem ===Napredne možnosti=== {{QS:Urejevalnik tem - napredne možnosti}} <span id="Simple_options"></span> ===Enostavne možnosti=== Stran z možnostmi Simple izvira iz same predloge. Narejen je prek datoteke twig in nekaj javascripta v imeniku /options teme: https://github.com/LimeSurvey/LimeSurvey/tree/develop/templates/default/options (Pokvarjena povezava) <div class="simplebox"> [[Datoteka:help.png]] Ta stran se lahko popolnoma razlikuje od teme do teme, ponudnike tem pa močno spodbujamo, da ustvarijo svoj videz in občutek.</div> [[Datoteka:Možnosti.png|thumb|750px|center]] <br><br> Enostavna stran z možnostmi preprosto izpolni vnose naprednih obrazcev. Ogledate si ga lahko tako, da vklopite ali izklopite nastavitev na preprosti strani, in si ogledate, kako je povezan vnos v napredni obliki ustrezno spremenjen. Na primer, če v preprostih možnostih privzete predloge spremenite temo Bootswatch v »Darkly« in nato kliknete zavihek za napredne možnosti (tudi brez shranjevanja), boste videli, da se je polje »Cssframework Css« spremenilo iz {"zamenjaj": [["css/bootstrap.css","css/flatly.css"]]}<br> za<br> {"zamenjaj": [["css/bootstrap.css","css/darkly.css"]]} <br> Tu so različne preproste možnosti za osnovne teme: *'''Ajax način:''' Ali naj se naslednja stran naloži prek ajaxa (hitreje) ali prek ponovnega nalaganja strani (boljše za namen odpravljanja napak) *'''Slika ozadja:'''' če je nastavljeno na Da, bo naložena slika z imenom pattern.png (nadomestila jo bo izbirnik datotek v Master) *''''Box container:'''' če nastavljeno na Ne, vprašanja ne bodo vsebovana v polju (tako da lahko uporabite velike nize, večje od širine zaslona) *'''Brandlogo:''' če je nastavljeno na ne, bo ime ankete prikazano v zgornji vrstici, drugače pa lahko izberete eno od slik v datotečnem imeniku, ki bo uporabljena kot slika logotipa. *''''Animirano telo:'''' če je nastavljeno na da, lahko izberete eno od animacij uporabiti, ko je naloženo telo ankete *''''Animirano vprašanje:''' enako z vprašanji *''''Animirano opozorila:'''' enako z opozorili *''''Bootstrap theme:''' tukaj lahko izberete temo Bootstrap za nalaganje. Prihajajo iz Bootswatch https://bootswatch.com/3/ <br> Knjižnica, ki se uporablja za animacije, je animate.css: https://daneden.github.io/animate.css/ Seveda lahko ponudnik tem doda svojo knjižnico animacij ali pa je sploh ne doda. <div class="simplebox">[[Datoteka:help.png]] Enobarvne teme uporabljajo isto zagonsko barvno temo kot skrbniški uporabniški vmesnik. Ne uporabljajo nadomestnega sistema ogrodja css, temveč preprosto dodajo datoteko CSS. Torej ponazarja drug način obravnavanja tem po meri za ponudnike tem.</div> <span id="Inheritance_system"></span> ===Sistem dedovanja=== V prejšnjem delu smo videli, da lahko tema razširi drugo temo. Konfiguracija teme lahko tudi podeduje konfiguracijo druge teme. To pomeni, da imate lahko za določeno temo konfiguracijo na * globalna raven (tista, ki smo jo pravkar videli dostopno s seznama tem) * na ravni anketne skupine * zadnja na ravni ankete. Vsak parameter na določeni ravni lahko podeduje z zgornje ravni: dedovanje anketnih skupin. Najprej si oglejmo raven anketne skupine. <span id="At_survey_group_level"></span> ====Na ravni raziskovalne skupine==== Pravzaprav je ena od velikih novosti LS3 sistem anketnih skupin. Zdaj lahko ustvarite različne skupine za organiziranje anket. Za dostop do njega pojdite na seznam anket in nato kliknite zavihek anketnih skupin: [[Datoteka:Surveygroup.png|thumb|800px|center|''Zavihek anketnih skupin'']] <br> Na tem seznamu imate dva akcijska gumba. Če je skupina prazna, jo lahko izbrišete. Sicer pa ga lahko vedno uredite. S klikom na gumb za urejanje pridete do konfiguracijske strani anketne skupine: [[Datoteka:Surveygroupedit.png|thumb|800px|center|''Urejanje privzete anketne skupine'']] <br> Tretji zavihek te strani se imenuje »Možnosti predloge za to anketno skupino«. Če kliknete nanjo, boste videli enak seznam tem kot na seznamu tem, le da je tukaj viden samo gumb z možnostmi (urejevalnik tem je dostopen samo iz glavnega seznama). <br> Zdaj, če kliknete možnost za privzeto predlogo, boste videli to: [[Datoteka:Option group inherit.png|thumb|800px|center|''V Survey Group so možnosti predloge podedovane privzeto'']] <br> * '''Podeduj vse''' pomeni, da bo vsa konfiguracija podedovana z ravni globalne konfiguracije. * Če greste na '''stran z naprednimi možnostmi''', boste videli, da so vsa polja nastavljena na dedovanje. * Če kliknete na "ne" za "Podeduj vse" v preprostih možnosti, boste spet videli zelo podobno stran kot stran z globalnimi možnostmi. Edina razlika je v tem, da lahko za vsako polje nastavite da, ne ali dedovanje; in vsak spustni izbirnik ima vrednost ''podeduj''. [[Datoteka:Inherit group.png|thumb|800px|center|''Vsaka nastavitev ima lahko podedovano vrednost'']] <div class="simplebox">[[Datoteka:help.png]] Anketna skupina je lahko podrejena drugi skupini. V tem primeru bo dedoval od starša.</div> ====Na ravni ankete==== Ko urejate anketo, boste v levem meniju vrstice videli nov vnos »Možnosti teme«. Pripeljalo vas bo do strani z možnostmi teme, izbrane za trenutno anketo. Našli boste enak sistem dedovanja kot v anketni skupini, vendar tokrat podedovanje pomeni, da bo nastavitev podedovana iz anketne skupine ankete. [[Datoteka:Options survey.png|thumb|800px|center|''Možnosti teme na ravni ankete'']] ==Primer uporabe== Recimo, da uporabljate eno samo temo za različna podjetja (A in B). Svoje priljubljene možnosti nastavite na globalni ravni (npr.: vklopljen ajax, animirano telo z drsenjem, opozorila z utripom). Nato ustvarite anketno skupino za vsako podjetje: anketno skupino za podjetje A, ki bo gostila vse ankete za to podjetje, in anketo za podjetje B, ki bo gostila vse ankete za podjetje B. Na tej ravni boste nastavili samo logotip in ozadje, ostale možnosti pa boste pustili, da podedujejo. Tako bodo vse ankete v skupini A uporabljale logotip podjetja A, vse ankete iz skupine B pa logotip podjetja B. Za eno od anket podjetja A bi lahko uporabili drugačno ozadje v povezavi s temo ankete: samo spremenite ozadje v možnostih na ravni ankete. Če vam nekdo v podjetju B reče, da je utripajoče opozorilo preveč agresivno in bi raje imel nekaj bolj gladkega, kot je zatemnitev, preprosto spremenite animacijo opozorila na ravni Anketne skupine B in vse ankete te skupine bodo zdaj uporabljale to animacijo. Če podjetje A spremeni logotip, ga lahko spremenite na nivoju Anketne skupine A in vse ankete te skupine bodo uporabljale nov logotip. <br> <div class="simplebox"> Ti primeri temeljijo na trenutnih možnostih osrednje teme. Seveda, če ste ponudnik tem ali če lahko nekaj skriptirate s twigom, lahko dodate svoje možnosti. Na primer, lahko dodate možnost »informacijska noga«, kamor lahko dodate podatke, kot je spletno mesto podjetja ali telefonska številka za pomoč. Potem, če ima podjetje A različne oddelke z različnimi telefonskimi številkami, lahko samo ustvarite eno podskupino za vsak oddelek v Anketni skupini A. Vsaka podskupina bo imela svojo telefonsko številko v teh možnostih.</div> <span id="FAQ_about_theme_customization"></span> = Pogosta vprašanja o prilagajanju teme = Tukaj boste našli nekaj odgovorov na vprašanja, ki so bila zastavljena na forumu in vam lahko pomagajo pri prilagajanju teme. ==Prilagajanje CSS/JS: obravnavajte upravitelja sredstev ("zakaj moje spremembe niso uporabljene?") == <br /> Če poskušate posodobiti CSS/JS teme z neposrednim urejanjem kode s svojim najljubšim urejevalnikom, ste lahko presenečeni, da vaše spremembe niso uporabljene. <br /> Od 2.50 LS uporablja upravljalnik sredstev Yii: [http://www.yiiframework.com/wiki/148/understanding-assets/ Dokumentacija Yii o sredstvih] <br /> Premakne datoteke CSS/JS teme v podimenik tmp/ z naključnim nizom (npr.: "tmp/1ef64ml/"). Torej, če naredite kakršno koli spremembo v datoteki css/js in to poveste upravitelju sredstev, se datoteke prekopirajo v nov podimenik z novim imenom, tako da se predpomnilnik brskalnika uporabnika posodobi in vidijo novi css/js . V nasprotnem primeru bi morali počistiti predpomnilnik brskalnika. <br /> Tukaj so povezave CSS v glavi, ko je upravitelj sredstev vklopljen: <br /> [[Datoteka:Assets on vanilla.jpg]] <br /> Kot lahko vidite, se vse nanašajo na podmape tmp/. <br /> Tukaj so povezave CSS v glavi, ko je upravitelj sredstev izklopljen: <br /> [[Datoteka:Asset off.png]] <br /> Kot lahko vidite, kažejo na prave datoteke teme. <br /> <div class="simplebox">[[Datoteka:help.png]] Seveda, če upravitelj sredstev ne ve, da ste spremenili datoteko, ostane stara datoteka iz starega imenika tmp/nespremenjena in vaše spremembe ne bodo nikoli uveljavljene.</div> Torej, ko urejate CSS/JS teme, imate različne možnosti: *'''Uporabite lahko urejevalnik tem LS:'''' ukvarja se z upraviteljem sredstev in vam ni treba skrbi za karkoli *''''Lahko vklopite način za odpravljanje napak:''' bo izklopil upravitelja sredstev, tako da se pokličejo prave datoteke css/js vaših tem (vendar morate osvežiti predpomnilnik brskalnika pri vsakem nalaganju) * '''Lahko osvežite predpomnilnik sredstev''': iz Globalnih nastavitev -> Splošno -> Počisti predpomnilnik sredstev [[Datoteka:Clearassets-ls3 3.png]] <div class="simplebox">[[Datoteka:help.png]] '''Uporaba urejevalnika tem za urejanje CSS po meri je daleč najboljša rešitev.'''</div> Uporaba urejevalnika tem vam bo pomagala razumeti arhitekturo novega mehanizma tem. Če prilagajate sadno, bodite previdni pri specifičnosti CSS: večina definicij uporablja izbirnik ".fruity" (eden od razreda element telesa) == Dodajanje pisav po meri moji temi == === Preprost način: z uporabo Google Font CDN === Bootswatch Survey Theme uporablja Google Font CDN. Oglejmo si, kako deluje: https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/bootswatch/css/variations/flatly.min.css <syntaxhighlight lang="css"> @import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic"); </syntaxhighlight> Nato se uporabi pisava Lato prek pravil CSS: https://github.com/thomaspark/bootswatch/blob/master/dist/flatly/bootstrap.css#L72 <syntaxhighlight lang="css"> telo { ... družina pisav: "Lato"; ... } </syntaxhighlight> V temi po meri lahko tako uporabite katero koli Googlovo pisavo. Seveda bi morali odstraniti izbirnik pisave iz možnosti vaše teme. Izbrišite te vrstice v options.twig: https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/vanilla/options/options.twig#L209-L230 === Uporaba lokalne pisave === Seveda lahko tudi prenesete datoteke s pisavami in jih uporabite iz lokalnega strežnika namesto iz Google CDN (bolje zaradi zasebnosti). Za primer, kako to narediti, je tukaj naša lokalna različica pisave noto: https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/assets/fonts/noto.css <syntaxhighlight lang="css"> @font-face { družina pisav: 'Noto Sans'; teža pisave: 300; slog pisave: normalno; src: url('./font-src/Noto/NotoSans-Regular.ttf'); } ... </syntaxhighlight> Zelo podobno definicijo lahko uporabite v datoteki css teme in nato kopirate datoteko NotoSans-Regular.ttf v mapo css/font-src/ vaše teme. Nato uporabite to pisavo za svoje telo (ali kateri koli drug element), kot je zgoraj, in odstranite privzeti izbirnik pisave možnosti. === Ustvarjanje lastnega izbirnika pisave v možnostih === Zaenkrat ne morete preprosto uporabiti osnovnega izbirnika pisave za dodajanje lastne pisave v možnosti. Najprej moramo končnemu uporabniku omogočiti nalaganje paketov po meri (glejte naslednji odstavek: Pogled v Fruity Font Selector ) <br> Tukaj, kako naprej: <br> *Dodajte dve pisavi (my_custom_font in my_custom_other_font) v svojo temo z uporabo CDN ali lokalnega strežnika *Nato v datoteko css dodajte dva nova razreda: <br> <syntaxhighlight lang="css"> .font-moja_pisava_po meri { družina-pisav: 'moja_pisava_po meri '; } .font-moja_druga_pisava_po meri { družina-pisav: 'my_custom_other_font'; } </syntaxhighlight> *V datoteko XML vaše teme dodajte možnost pisave (privzeta bo moja_font_po meri) : <syntaxhighlight lang="xml"> <options> .... <font>moja_pisava_po meri</font> </options> </syntaxhighlight> * v option.twig dodajte izbirnik pisave in dodajte tiste vrstice (zaenkrat nepreizkušene, zato se pritožite na forum, če ne deluje): <syntaxhighlight lang="html"> <div class='row ls-space margin top-15 bottom-15 action_hide_on_inherit'> <hr/> </div> <div class='row action_hide_on_inherit'> <div class='col-sm-12'> <div class='panel panel-default'> <div class='panel-heading'> {{ "Moje pisave po meri" | t }}</div> <div class='panel-body'> <div class='form-group row'> <label for='simple_edit_font' class='control-label'>{{ "Izberi pisavo:" | t }}</label> <div class='col-sm-12'> <select class='form-control selector_option_value_field' id='simple_edit_font' name='font'> {% če templateConfiguration.sid ni prazen ali templateConfiguration.gsid ni prazen %} //Ali ne bi to moralo biti "tema" namesto "predloga"? {% set fontOptions = fontOptions ~ '<option value = "inherit" > Podedovati</option> ' %} {% endif %} <optgroup label="{{ "My Custom fonts" | t }}"> <option class="font-my_custom_font" value="custom_font" data-font-package="" > Po meri</option> <option class="font-my_custom_other_font" value="my_custom_other_font" data-font-package="" > drugo</option> </optgroup> </select> </div> </div> </div> </div> </div> </div> </syntaxhighlight> <br> Zdaj bi morali vaši uporabniki imeti možnost izbirati med tema dvema pisavama. === Pogled v izbirnik pisav Fruity === V prihodnosti bomo dali končnim uporabnikom možnost, da naložijo lastne pakete sredstev, vključno s paketi pisav. To bo zelo olajšalo prilagajanje pisav. <br> Za razumevanje paketov Yii: <br> http://www.yiiframework.com/doc/api/1.1/CClientScript#packages-detail <br> <br> Paketi LimeSurvey so definirani v različnih datotekah. Paketi pisav so definirani tukaj: https://github.com/LimeSurvey/LimeSurvey/blob/4c40b61afb0dba8fd80154b50f5831045df8d814/application/config/fonts.php <br> Na primer, paket pisav Noto je definiran tukaj: https://github.com/LimeSurvey/LimeSurvey/blob/4c40b61afb0dba8fd80154b50f5831045df8d814/application/config/fonts.php#L47-L53 <br> <syntaxhighlight lang="php"> 'font-noto' => array( 'devBaseUrl' => 'assets/fonts/', 'basePath' => 'fonts', 'css' => array( ' noto.css', ), ), </syntaxhighlight> <br> Datoteka noto.css, ki jo vsebuje, je tukaj: https://github.com/LimeSurvey/LimeSurvey/blob/4c40b61afb0dba8fd80154b50f5831045df8d814/assets/fonts/noto.css <br> Opazite definicijo razreda css ".font-noto" na koncu: <syntaxhighlight lang="css"> @font-face { družina pisav: 'Noto Sans'; ... } ... .font-noto{ družina pisav: 'Noto Sans'; } </syntaxhighlight> <br> Nato se v Vanilla Theme uporabi pisava noto tako, da se doda paket noto in določi možnost pisave za noto: <br> https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/vanilla/config.xml#L79 <syntaxhighlight lang="xml"> <packages> .... <add> pisava-noto</add> </packages> </syntaxhighlight > https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/vanilla/config.xml#L58 <br> <syntaxhighlight lang="xml"> <options> .... <font>ne</font> </options> </syntaxhighlight> <br> Nato je pisava razreda telesa definirana s to vrednostjo: https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/vanilla/views/layout_global.twig#L76 <syntaxhighlight lang="html"> <body class=" ... font-{{ aSurveyInfo.options.font }} ... " ... > </syntaxhighlight> Seveda datoteka XML vsebuje samo privzete vrednosti za konfiguracijo vaše teme. Toda dejansko so te vrednosti definirane in prebrane v bazi podatkov (tabela "template_configuration" (vprašanje: "template_" od "theme_"?) kot nizi json. Datoteka option.js samo uporabi vrednost izbirnika pisave preproste možnosti da spremenite vrednost znotraj naprednega obrazca z zavihki: https://github.com/LimeSurvey/LimeSurvey/blob/70a1d99cd2ebe411597231a8bc746b4ca9e19584/themes/survey/vanilla/options/options.js#L148-L174 Torej, ko bo na voljo funkcija »naloži paket sredstev«, bo preprosto dodati skript, ki skenira vse obstoječe pakete pisav, da jih doda v izbirnik. == Dodajanje možnosti teme za nadzor položaja in prikaza elementov ankete == Ta vadnica bo pokazala, kako dodati možnosti v razširjeno temo za prikaz elementov ankete na različnih lokacijah. V tem primeru bomo ustvarili možnosti teme za prikaz naslova ankete na dveh različnih lokacijah. <div class="simplebox"> [[Datoteka:help.png]] Zaradi enostavnosti bomo vadnico osnovali na razširitvi teme "bootswatch" v različici LimeSurvey 3.4.3.</div> === Ustvari temo po meri === #Razširi temo "bootswatch", kot je opisano zgoraj. #Kopiraj <span style="color: #BA2121;">custom.css</span> v lokalno temo, kot je opisano zgoraj. ===Ustvari nove možnosti teme=== #Kopirajte vsebino <span style="color: #BA2121;">/themes/survey/bootswatch/options/</span> v <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/options/</span> . #Odpri <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/ options/options.twig</span> v urejevalniku in poiščite »{# Bootstrap Bootswatch theme #}«. Neposredno pred nadrejenim<nowiki><div class='row'></nowiki> element, dodajte tole:<syntaxhighlight lang="html"> {# Ime ankete po meri v vrstici za krmarjenje #} <div class='row'> <div class='col-sm-12 col-md-6'> <div class='form-group row'> <label for='simple_edit_options_surveyname1' class='control-label'>Ime ankete v vrstici za krmarjenje</label> <div class='col-sm-12'> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <input name='surveyname1' type='radio' value='on' class='selector_option_radio_field ' data-id='simple_edit_options_surveyname1'/> Da </label> <label class="btn btn-default"> <input name='surveyname1' type='radio' value='off' class='selector_option_radio_field ' data-id='simple_edit_options_surveyname1'/> Ne </label> </div> </div> </div> </div> </div> <div class='row'> <hr/> </div> {# Ime ankete po meri pod vrstico napredka #} <div class='row'> <div class='col-sm-12 col-md-6'> <div class='form-group row'> <label for='simple_edit_options_surveyname2' class='control-label'>Ime ankete pod vrstico napredka</label> <div class='col-sm-12'> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <input name='surveyname2' type='radio' value='on' class='selector_option_radio_field ' data-id='simple_edit_options_surveyname2'/> Da </label> <label class="btn btn-default"> <input name='surveyname2' type='radio' value='off' class='selector_option_radio_field ' data-id='simple_edit_options_surveyname2'/> Ne </label> </div> </div> </div> </div> </div> <div class='row'> <hr/> </div></syntaxhighlight> #Odprite <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/config.xml</span> in dodajte dva elementa v blok "options", da bo videti takole:<syntaxhighlight lang="xml"><options> <ajaxmode> na</ajaxmode> ... <surveyname1> na</surveyname1> <surveyname2> na</surveyname2> </options></syntaxhighlight> #To bi vam moralo dati dve novi možnosti na zaslonu z možnostmi teme, kot je ta:<br /> [[Datoteka:Tutorial_tp_1_1.png]] ===Spremenjen pogled za naslov ankete v vrstici za krmarjenje=== #Ustvarite nov imenik <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/views/subviews/header/ .</span> #Kopiraj <span style="color: #BA2121;">/themes/survey/vanilla/ views/subviews/header/nav_bar.twig</span> v ta novi imenik. #Odprite <span style="color: #BA2121;">/themes/survey/vanilla/views/subviews/header/nav_bar.twig</span> in poiščite "{# Logo option #}". Pod tem spremenite izjavo IF za logotip/ime ankete, da bo videti takole:<syntaxhighlight lang="html"> {# Možnost logotipa #} {% if( aSurveyInfo.options.brandlogo == "on") %} <div class="{{ aSurveyInfo.class.navbarbrand }} logo-container" {{ aSurveyInfo.attr.navbarbrand }} > {{ image(aSurveyInfo.options.brandlogofile, aSurveyInfo.name, {"class": "logo img-responsive"}) }} </div> {% endif %} {% if( aSurveyInfo.options.surveyname1 == "on") %} <div class="{{ aSurveyInfo.class.navbarbrand }}" {{ aSurveyInfo.attr.navbarbrand }} > {{ aSurveyInfo.name }} </div> {% endif %}</syntaxhighlight> #Dodajte nekaj takega v <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/css/custom.css</span> :<syntaxhighlight lang="css"> .navbar-blagovna znamka { line-height: 60px; velikost-pisave: 32px; }</syntaxhighlight> #Preklopite možnost teme "Ime ankete v vrstici za krmarjenje" na "Da" #Morali bi videti to:<br /> [[Datoteka:Tutorial_tp_1_2.png]] ===Spremenjen pogled za naslov ankete pod vrstico napredka=== #Ustvarite nov imenik <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/views/subviews/survey/group_subviews</span> . #Kopirajte <span style="color: #BA2121;">/themes/survey/vanilla/views/subviews/survey/group_subviews/group_container.twig</span> v ta novi imenik. #Odprite <span style="color: #BA2121;">/themes/survey/vanilla/views/subviews/survey/group_subviews/group_container .vejico</span> in dodajte<nowiki><h1></nowiki> element za ime ankete. Torej izgleda takole: <syntaxhighlight lang="html"><div class="{{ aSurveyInfo.class.groupcontainer }} space-col" {{ aSurveyInfo.attr.groupcontainer }}> {# Ime ankete po meri #} {% if( aSurveyInfo.options.surveyname2 == "on") %} <h1 class="custom-survey-name"> {{ aSurveyInfo.name }}</h1> {% endif %} {# Ime skupine #} {{ include('./subviews/survey/group_subviews/group_name.twig') }} {# Opis skupine #} {{ include('./subviews/survey/group_subviews/group_desc.twig') }} {# PREDSTAVITE VPRAŠANJA To je glavni del. Upodobil bo vsako vprašanje za to skupino #} <!-- PRESENT THE QUESTIONS --> {% for aQuestion in aGroup.aQuestions %} {{ include('./subviews/survey/question_container.twig') }} {% endfor %} <!-- Hidden inputs --> {% if aGroup.show_last_group == true %} <input type='hidden' name='lastgroup' value='{{ aGroup.lastgroup }}' id='lastgroup' /> {% endif %} {% if aGroup.show_last_answer == true %} <input type='hidden' name='lastanswer' value='{{ aGroup.lastanswer }}' id='lastanswer' /> {% endif %} </div></syntaxhighlight> # Dodajte nekaj takega v <span style="color: #BA2121;">/upload/themes/survey/yourThemeName/css/custom.css</span> :<syntaxhighlight lang="css"> .navbar-blagovna znamka { line-height: 60ph1.custom-survey-name { rob: 0; poravnava besedila: sredina; }</syntaxhighlight> #Preklopite možnost teme »Ime ankete pod vrstico napredka« na »Da« #Morali bi videti tole:<br /> [[Datoteka:Tutorial_tp_1_3.png]] ===Prenosi=== * Primer razširjene teme: [[Media:Test_survey_names.zip]] =Ustvarjanje teme iz nič= Dokumentacija bo kmalu na voljo. Za zdaj le nekaj nasvetov. <span id="Theme_structure"></span> ==Struktura teme== === Datoteke in imeniki === Ko ustvarite temo iz nič, vam ni treba upoštevati strukture datoteke/imenika/css/js iz Vanille. Obvezen css/js doda jedro (še vedno ga lahko odstranite, če je potrebno) Edine datoteke, ki jih mora imeti vaša tema, so datoteke postavitve: * '''layout_global.twig''' : upodobi strani za anketiranje * '''layout_survey_list.twig''' : upodobi seznam anket (če je ta tema nastavljena kot privzeta) * '' 'layout_errors.twig''' : uporablja se za upodabljanje napak, ki blokirajo upodabljanje ankete. (napačen ID ankete, prazna skupina v skupini za predogled itd.) * '''layout_user_forms.twig''': upodobi uporabniške obrazce, kot so: žeton (udeleženec ankete) in registracija. * '' 'layout_print.twig''' : uporablja se za tiskanje ankete v pdf * '''layout_printanswers.twig''': tiskanje odgovorov Vsebina teh datotek, datoteke, ki jih vključujejo ali ne, je v celoti odvisna od vas. Vse druge datoteke in imeniki, ki jih najdete na Vanilli, so zgolj neobvezne, lahko organizirate svojo kodo, kot želite. <div class="simplebox">[[Datoteka:help.png]] Če preberete kodo upodabljanja sprednjega dela, boste videli, da se imena teh datotek pojavljajo neposredno v njej. Zato so obvezni. Npr.: https://github.com/LimeSurvey/LimeSurvey/blob/2398dda3b425da1a37d4611cd7963d39ac739987/application/helpers/SurveyRuntimeHelper.php#L462 </div> <span id="Content"></span> === Vsebina === V Vanilla's layout_global.twig boste videli, da uporabljamo spremenljivko, imenovano "include_content", da se odločimo, kaj bomo prikazali! layout_global.twig#L114-L115 <syntaxhighlight lang="php"> {% set sViewContent = './subviews/content/' ~ aSurveyInfo.include_content ~ '.twig' %} {% vključi './subviews/content/outerframe.twig' z {'include_content': sViewContent } %} </syntaxhighlight> aSurveyInfo.include_content vam pove, kaj se trenutno dogaja: prikazuje vprašanja? prikazuje rezultat pošiljanja? prikazuje jasno vse? itd Kot lahko vidite, v različici vanilla ustvarimo eno datoteko, ki jo vključimo z dejanjem. Torej, če želite izvedeti seznam dejanj, preprosto preverite imenik vanilla '''views/subviews/content''' in odstranite končnico "twig": https://github.com/LimeSurvey/LimeSurvey /tree/2398dda3b425da1a37d4611cd7963d39ac739987/themes/survey/vanilla/views/subviews/content * '''clearall.twig''' * '''firstpage.twig''' * '''load.twig''' * '''mainrow.twig''' * '''main.twig''' * '''optin.twig''' * '''optout.twig''' * '''outerframe.twig'' ' * '''printanswers.twig''' * '''quotas.twig''' * '''register.twig''' * '''save.twig ''' * '''submit_preview.twig''' * '''submit.twig''' * '''userforms.twig''' Če ste jih že ustvarili za različice LimeSurvey 2.x, boste opazili, da jih večina ustreza starim datotekam pstpl za limesurvey 2.x. Spet vas v temi ne obvezuje, da ustvarite te datoteke s temi imeni v tem imeniku. Lahko bi na primer samo dodali ogromno stikalo v layout_global.twig z želenim HTML-jem za vsako dejanje. <span id="The_manifest_config.xml"></span> === Manifest config.xml === Manifest teme vsebuje glavne informacije o vaši temi. Ko namestite temo, se vsebina manifesta naloži v bazo podatkov v dveh različnih tabelah: template in template_configuration. Torej vsakič, ko spremenite manifest teme, jo morate odstraniti in znova namestiti (ali pa jo samo ponastaviti). Ker je ta postopek med razvijanjem teme moteč, lahko vsilite neposredno uporabo datoteke XML namesto vnosov v DB. To storite tako, da v config.php vklopite način za odpravljanje napak in 'force_xmlsettings_for_survey_rendering' na true. <span id="The_metadata_section"></span> ==== Razdelek z metapodatki ==== Nič zapletenega: samo glavne informacije o vaši temi. Potisnjen bo v tabelo templates_configuration <syntaxhighlight lang="xml"> <metadata> <name> ime_vaše_teme</name> <title> Naslov vaše teme</title> <creationDate> 16. 10. 2017</creationDate> <author> Tvoje ime</author> <authorEmail> vaš@email.org</authorEmail> <authorUrl> http://www.yourwebsite.org</authorUrl> <copyright> Vaše avtorske pravice</copyright> <license> Licenca vaše teme</license> <version> različico vaše teme</version> <apiVersion> 3</apiVersion> <description> Opis vaše teme</description> <extends> nadrejena_tema</extends> </metadata> </syntaxhighlight> Nekaj pripomb: * '''name''': bo uporabljen kot ključ v db. Torej mora biti edinstven in ne sme imeti posebnih znakov (brez presledkov). Upoštevajte, da primeri ne bodo upoštevani * '''Naslov'': bo uporabljen za prikaz imena vaše teme na različnih seznamih. Lahko ima posebne znake * '''opis'': bo uporabljen na glavnem seznamu teme ankete. Vsebuje lahko posebne znake in celo kodo HTML z uporabo * '''extends''': neobvezno, definira nadrejene teme. Torej, če katera koli datoteka ni prisotna v tej temi (twig/js/css/jpg itd.), jo bo iskala v nadrejeni temi <div class="simplebox">[[Datoteka:help.png]] Če ste razširili eno od treh temeljnih tem (Vanilla, Bootswatch, Fruity), lahko spremenite vrednost »extends« iz ene nadrejene teme v drugo. Seveda boste morali ponastaviti temo.</div> <span id="The_files_section"></span> ==== Razdelek z datotekami ==== Ta je pomemben. Potisnjena bo v tabelo template_configuration, v polje files_css, files_js, files_print_css kot polja json. Npr: razdelek z datotekami teme Material Premium: <syntaxhighlight lang="xml"> <files> <css> <add> css/bootstrap-material-design.css</add> <add> css/ripples.min.css</add> <replace> css/ajaxify.css</replace> <replace> css/tema.css</replace> <replace> css/custom.css</replace> <remove> awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css</remove> </css> <js> <replace> skripte/theme.js</replace> <replace> skripte/ajaxify.js</replace> <add> skripte/material.js</add> <add> skripte/ripples.min.js</add> <replace> skripti/custom.js</replace> </js> <print_css> <add> css/print_theme.css</add> </print_css> </files> </syntaxhighlight> Vse datoteke CSS/JS, ki so prisotne v tem razdelku, bodo naložene ob zagonu ankete (v načinu ajax. Če je način ajax izklopljen, se seveda vse datoteke znova naložijo na vsaki strani). Dodani bodo v paket Yii Asset Packet glede na ime teme. Ko je torej upravitelj sredstev vklopljen (način za odpravljanje napak je izklopljen), bodo te datoteke kopirane v imenik tmp skupaj s preostalo temo (tako da lahko uporabite relativno pot v CSS in JS, da dosežete slikovne datoteke). O upravitelju sredstev v Yii: https://www.yiiframework.com/wiki/148/understanding-assets O paketih v Yii: http://www.yiiframework.com/doc/api/1.1 /CClientScript#packages-detail Uporabljali bodo sistem dedovanja. To pomeni, da če temi dodate datoteko CSS/JS, ki pa ni prisotna v temi, bo motor preučil vse matične teme te teme in uporabil prvo, ki jo najde. Torej, če uporabnik razširi vašo temo prek urejevalnika tem, bodo vse te datoteke podedovane v njegovi temi. Ključne besede se nanašajo na ta sistem dedovanja. * '''add''' : dodal bo datoteko temi in vsem njenim podedovanim temam * '''replace''': zamenjal bo datoteko svoje matične teme * '''remove''': odstranil bo datoteko iz '''poljubnega''' paketa, tudi iz osnovnega paketa (od 3.14 dalje) <div class="simplebox">[[Datoteka:help.png]] Ne pozabite, da lahko v config.php nastavite 'force_xmlsettings_for_survey_rendering', tako da se konfiguracija bere iz XML namesto iz DB (ponastavitev ni potrebna). To bo olajšalo testiranje sprememb datotek XML in se izognilo odstranitvi/ponovni namestitvi teme ob vsaki spremembi datoteke XML</div> Nekaj pripomb o teh ključnih besedah: ===== Nasveti za dedovanje ===== Kot je že razloženo, se lahko ključna beseda "dodaj" nanaša na datoteko, ki je v eni od matičnih tem. Torej lahko "dodate" datoteko v tem razdelku, pa še vedno nimate te datoteke v svoji temi, ampak v eni od njenih starševskih tem. Motor bo pregledal vse svoje nadrejene teme in uporabil prvo, ki jo najde. Če ne najde datoteke in je v konfiguraciji vklopljen način za odpravljanje napak, v globalni nastavitvi pa je vklopljen način za odpravljanje napak v sprednjem delu js, vas bo opozorilo sporočilo v konzoli. Npr.: če dodamo mojo_temo:<add> css/neobstoječe.css</add> , v konzoli bomo videli: <syntaxhighlight lang=""> (¯`·._.·(¯`·._.· Napaka konfiguracije teme ·._.·´¯)·._.·´¯) Ni mogoče najti datoteke 'css/unexisting.css', definirane v temi 'my_theme' </syntaxhighlight> Če je način za odpravljanje napak izklopljen, napaka sploh ne bo vidna. Motor bo preprosto prezrl napačne stavke dodajanja. <span id="When_to_use_add,_when_to_use_replace,_when_can_I_just_leave_it_to_the_parent_theme?"></span> ===== Kdaj uporabiti add, kdaj zamenjati, kdaj lahko to preprosto prepustim nadrejeni temi? ===== Prvič: dodaj in zamenjaj sta isti ključni besedi. Uporabite lahko enega ali drugega, motor bo naredil enako. Za človeške bralce so različni, zato razumejo, kaj je bil vaš namen. Ne morete dodati datoteke z enakim imenom kot matična tema: vedno jo bo nadomestila. Npr.: Če imate datoteko z imenom "my_mother_theme/foo.css" in dodate datoteko z imenom "foo.cs" v hčerinsko temo, bo temi dodan samo "daughter_theme/foo.css". Če želite obdržati "my_mother_theme/foo.css", samo izberite drugo ime za "daughter_theme/foo.css", na primer "daughter_theme/bar.css". Tako lahko ključno besedo "dodaj" uporabimo kot ključno besedo "zamenjaj". Če se sprašujete zakaj: to močno poenostavi samodejno generiranje podedovane teme, kopiranje razdelka datoteke deluje takoj po namestitvi (pri razširitvi datoteke ni treba preimenovati »dodaj« v »zamenjaj«). Da bo jasno, vzemimo primer Fruity. Tukaj je razdelek datoteke css: <syntaxhighlight lang="xml"> <css> <add> css/variations/sea_green.css</add> <replace> css/animate.css</replace> <replace> css/tema.css</replace> <replace> css/custom.css</replace> </css> </syntaxhighlight> Če pogledate datoteko custom.css v sadni obliki, je popolnoma enaka vaniljevi. Lahko bi izbrisali datoteko custom.css znotraj fruityja, naložila bi se datoteka vanilije. Izjavo bi lahko odstranili<replace> custom.css</replace> iz manifesta Fruity bo uporabljen stavek iz vanilla in naložen bo vanilla custom.css. Zakaj torej uporabljamo izjavo<replace> custom.css</replace> znotraj sadnega manifesta? Odgovor je preprost: ker želimo, da lahko končni uporabnik razširi sadno temo, spremeni datoteko v svoji lokalni temi in naloži to spremenjeno datoteko iz svoje podedovane teme. Če želite razumeti, samo razširite sadno in si oglejte razširjeno temo. Razširjena tema sploh nima datoteke custom.css. Uporabljena bo torej tista sadna. Toda: če uporabnik ustvari to datoteko v razširjeni temi (s klikom na "razširi" v urejevalniku tem), se bo ta datoteka naložila iz njegove teme. Torej na splošno: če ustvarite temo iz nič, ne da bi razširili nobeno temo, preprosto uporabite stavek add, da dodate svoje datoteke css/js. Enostavno. če ustvarite temo, ki razširja drugo temo, in ne želite, da bi uporabniki lahko razširili datoteko css/js iz matične teme: v manifestu ne uporabite stavka add. Datoteke bodo še vedno naložene iz konfiguracije matične teme. če ustvarite temo, ki razširja drugo temo, in želite zamenjati datoteko iz matične teme: uporabite ključno besedo replace (ključna beseda add bo imela enak rezultat) če ustvarite temo, ki razširja drugo temo, če ne zamenjate dane datoteke iz css/js, vendar želite, da lahko uporabniki razširijo to datoteko: potem uporabite stavek "replace" v svojem manifestu za ta datoteka. Tudi če datoteke ne zamenjate, z uporabo ključne besede replace v manifestu: dovolite uporabniku, da to stori, če to želi. Samo ta zadnji primer potrebuje malo mentalne gimnastike za razumevanje, vsi drugi primeri so trivialni. <div class="simplebox">[[Datoteka:help.png]] Datoteke CSS in JS lahko registrirate tudi neposredno iz kode twig. Te datoteke bodo naložene le, ko bo zahtevana datoteka twig. Če želite, da lahko uporabniki podedujejo te datoteke JS/Css iz urejevalnika tem, ne pozabite uporabiti funkcij {{registerTemplateCssFile('my_style.css')}} in {{registerTemplateScript('my_script.js')}} . Če teh funkcij ne uporabljate, bo vaša tema morda delovala, vendar bo njeno dedovanje pokvarjeno. To je ista logika kot funkcija {{image('my_picture.jpg')}} </div> <span id="The_remove_keyword"></span> ===== Ključna beseda za odstranitev ===== Odstrani ključno besedo je na voljo šele od 3.14. S tem lahko odstranite katero koli datoteko css/datoteko iz katerega koli paketa, tudi tistih osrednjih. Uporablja se v temi Material Premium Theme za odstranitev datotek potrditvenega polja Awseome Bootstrap: <syntaxhighlight lang="xml"> <remove> awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css</remove> </syntaxhighlight> zato bi morali uporabiti isto sintakso kot datoteka paketa (npr. samo "awesome-bootstrap-checkbox.css" brez poti do mape ne bi delovalo). Celoten seznam osnovnih paketov in njihovih datotek boste našli v /application/config/packages.php in config/third_party.php. Na primer za awesome-bootstrap-checkbox.css: https://github.com/LimeSurvey/LimeSurvey/blob/2398dda3b425da1a37d4611cd7963d39ac739987/application/config/packages.php#L54-L56 <syntaxhighlight lang="php"> 'css'=> array( 'awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css', ), </syntaxhighlight> Drug način za iskanje natančnega imena za uporabo v oznaki za odstranitev je vklop upravitelja sredstev (izklop načina za odpravljanje napak ali nastavitev 'use_asset_manager'=>true v konfiguraciji). Nato bo pot za uporabo tista, ki je takoj za naključnim imenikom v imeniku tmp. Na primer za awesome-bootstrap-checkbox.css: <syntaxhighlight lang="html"> <link rel="stylesheet" type="text/css" href="/tmp/assets/cbc4e3cb/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css" /> </syntaxhighlight> Datoteke, ki jih ne smete odstraniti: '''jquery-3.1.1.min.js''' : potrebno '''jquery-migrate-3.0.0.min.js''' : potrebno '''survey.js''' : potrebno '''moment-with-locales.min.js''' : potrebno za tip vprašanja glede datuma (in mislim, da še nekaj) '''em_javascript.js''' : potrebno za ves javascript ExpressionScript <span id="The_options_section"></span> ==== Razdelek z možnostmi ==== Ta razdelek je povezan z možnostjo vaše teme. Uporabljen bo za podajanje vloženih "možnosti" tabele template_configuration kot matrike json. <span id="Further_information"></span> === Dodatne informacije === * [[Tema: Razpoložljiva funkcija]] <span id="Some_notes"></span> == Nekaj opomb == '''OPOMBA''': če urejate datoteko XML teme, morate odstraniti in znova namestiti temo, da bo upoštevana. '''OPOMBA''': da se temu izognete, lahko vsilite uporabo XML namesto DB. V config.php vklopite način za odpravljanje napak in odkomentirajte: 'force_xmlsettings_for_survey_rendering' => res, // Odkomentirajte, če želite vsiliti uporabo datoteke XML namesto DB (za enostaven razvoj teme) Pozor: vse se bo naložilo iz XML-ja (vključene možnosti itd.) '''OPOMBA''': če ročno urejate datoteke CSS/JS (brez uporabe urejevalnika tem) in če je način za odpravljanje napak izklopljen, lahko zdaj vsilite izpiranje sredstva. V "Globalnih nastavitvah", "Zavihek Splošno", kliknite gumb "Počisti predpomnilnik sredstev". '''OPOMBA''': če odstranite razdelek