Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

The template updates automatically.

More
2 weeks 6 days ago #274579 by PeterGroe
Please help us help you and fill where relevant:
Your LimeSurvey version: 6.15.23+251110 
Own server or LimeSurvey hosting: own Server
Survey theme/template: Child-Theme Vanilla 
==================
Good morning,

We created a custom theme based on the Vanilla theme and set it as the default design for surveys.
Only minor changes were made to the theme.
However, the system occasionally reverts to the Vanilla theme.
I cannot figure out the cause or why this is happening.

Does anyone have any ideas?

Please Log in to join the conversation.

More
2 weeks 1 day ago #274612 by tammo
It would help if you reveal what is in config.xml

What is in there controls the theme.

Tammo


Tammo ter Hark at Respondage
For Limesurvey reporting, education and customized themes
respondage.nl

Please Log in to join the conversation.

More
1 week 6 days ago #274614 by PeterGroe
ok, thank you.

This theme is set as the default in the global settings.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--
 
    (¯`·._.·(¯`·._.· Bootswatch Theme Manifest  ·._.·´¯)·._.·´¯)
 
    Base configuration for Vanilla Theme.
    The content of this file is imported into DB when you install the template.
 
-->
<config>
    <!-- Those metadata are displayed in the theme configuration page.  -->
    <metadata>
        <name>mytheme_extends_bootswatch</name>
        <title>Bootswatch</title>
        <type>theme</type>
        <creationDate>2024-12-11 07:05</creationDate>
        <author>admin</author>
        <authorEmail>info@limesurvey.org</authorEmail>
        <authorUrl>http://www.limesurvey.org</authorUrl>
        <copyright>Copyright (C) 2005 - 2019 LimeSurvey Gmbh, Inc. All rights reserved.</copyright>
        <license>GNU General Public License version 2 or later</license>
        <version>3.0</version>
        <apiVersion>3</apiVersion>
        <description><![CDATA[{{gT("Based on BootsWatch Themes:")}} <br><a href='https://bootswatch.com/3/'>{{gT("Visit Bootswatch page")}}</a> ]]></description>
        <lastUpdate>2025-03-03 08:58:50</lastUpdate>
        <extends>bootswatch</extends>
    </metadata>
 
    <compatibility>
        <version>6.0</version>
    </compatibility>
 
    <!--
        Here the list of the css/js files to add to the template package.
        About packages in Yii: http://www.yiiframework.com/doc/api/1.1/CClientScript#packages-detail
 
        NOTE: The "add" tag also count as a "replace" tag.
              Eg: You can't add a file with the same name as a file in the mother theme. It will always replace it. You must use a diffrent file name.
              Eg: Vanilla manifest already has "<add>css/theme.css</add>". So here, if you use "<add>css/theme.css</add>" it will replace the vanilla css/theme.css
 
        NOTE: If a file in a mother theme, you don't need to add it here again.
              Eg: css/ajaxify.css is already added in vanilla, this theme doesn't replace it, so ne need to add it here.
                  Even if no mention at all about  "css/ajaxify.css" is made here, it will be added because it's in the mother theme configuration
 
        NOTE: To easy test changes in config file, you can force the use of the XML file rather than DB. To do so, turn debug mode on, and in config.php config array, on bottom of debug mode, add:
              'force_xmlsettings_for_survey_rendering' => true,
 
              Then, you will not need anymore to reset your theme each time you change the config file.
              But, once turning the setting off, You will still must reset the theme to the changes are pushed to DB
    -->
    <files>
        <css>
            <replace>css/theme.css</replace>
            <replace>css/custom.css</replace>
        </css>
        <js>
            <replace>scripts/theme.js</replace>
            <replace>scripts/custom.js</replace>
        </js>
        <print_css>
            <replace>css/print_theme.css</replace>
        </print_css>
    </files>
 
    <!-- You can add here any option you want. It will be available in twig file via aSurveyInfo.options.youroptionname -->
    <options>
        <!-- simple options -->
        <container type="buttons" category="Simple options" width="4" title="Survey container" options="on|off" optionlabels="Yes|No">on</container>
        <showpopups type="buttons" category="Simple options" width="4" title="Show popups" options="1|0|-1" optionlabels="Popup|On page|No">1</showpopups>
        <showclearall type="buttons" category="Simple options" width="4" title="Show 'Clear all' button" options="on|off" optionlabels="Yes|No">off</showclearall>
        <questionhelptextposition type="buttons" category="Simple options" width="4" title="Question help text position" options="top|bottom" optionlabels="Top|Bottom">top</questionhelptextposition>
        <fixnumauto type="buttons" category="Simple options" width="4" title="Fix automatically numeric value" options="enable|partial|disable" optionlabels="Yes|For expression|No">enable</fixnumauto>
        <!-- images -->
        <brandlogo type="buttons" category="Images" width="4" title="Logo" options="on|off" optionlabels="Yes|No">on</brandlogo>
        <brandlogofile type="dropdown" category="Images" width="6" title="Logo file" parent="brandlogo">./files/logo.png</brandlogofile>
        <hideprivacyinfo type="buttons" category="Simple options" width="4" title="Hide privacy info" options="on|off" optionlabels="Yes|No">off</hideprivacyinfo>
        <cssframework type="dropdown" category="Simple options" title="Variations" parent="cssframework">Basic Bootstrap
            <dropdownoptions>
                <optgroup>
                    <option data-mode="replace" value="css/variations/basic.min.css">Basic Bootstrap</option>
                    <option data-mode="replace" value="css/variations/cerulean.min.css">Cerulean</option>
                    <option data-mode="replace" value="css/variations/cosmos.min.css">Cosmos</option>
                    <option data-mode="replace" value="css/variations/cyborg.min.css">Cyborg</option>
                    <option data-mode="replace" value="css/variations/darkly.min.css">Darkly</option>
                    <option data-mode="replace" value="css/variations/flatly.min.css">Flatly</option>
                    <option data-mode="replace" value="css/variations/journal.min.css">Journal</option>
                    <option data-mode="replace" value="css/variations/lumen.min.css">Lumen</option>
                    <option data-mode="replace" value="css/variations/paper.min.css">Paper</option>
                    <option data-mode="replace" value="css/variations/readable.min.css">Readable</option>
                    <option data-mode="replace" value="css/variations/sandstone.min.css">Sandstone</option>
                    <option data-mode="replace" value="css/variations/simplex.min.css">Simplex</option>
                    <option data-mode="replace" value="css/variations/slate.min.css">Slate</option>
                    <option data-mode="replace" value="css/variations/spacelab.min.css">Spacelab</option>
                    <option data-mode="replace" value="css/variations/superhero.min.css">Superhero</option>
                    <option data-mode="replace" value="css/variations/united.min.css">United</option>
                    <option data-mode="replace" value="css/variations/yeti.min.css">Yeti</option>
                </optgroup>
            </dropdownoptions>
        </cssframework>
    </options>
 
    <!-- Here datas about how LimeSurvey should load the theme -->
    <engine>
        <!-- If empty, bootstrap css/js files will not be loaded. In the future, we may have more engines, like foundation -->
        <cssframework>
            <name>bootstrap</name>
            <css replace="css/bootstrap.css">css/variations/flatly.min.css</css>
        </cssframework>
 
        <!-- Path of the views files (can be different than pstpl -->
        <viewdirectory>views</viewdirectory>
 
        <!-- Asset manager will copy the whole template directory to tmp. So it's possible to refer any file in the files directory in CSS via relative path (e.g: '../files/foo.jpg')   -->
        <filesdirectory>files</filesdirectory>
 
        <!-- Here, you can publish packages set as third party extensions in application/config/vendor or  application/config/package -->
        <!-- If bootstrap is registered as a css framework, it will be loaded first -->
        <!-- Example: <packages>moment</packages> -->
        <packages>
            <add>pjax</add>
            <add>moment</add>
        </packages>
 
        <!-- core: use core options view file, custom: use customized options.twig view file -->
        <optionspage>core</optionspage>
 
        <!--
            List of pages/files for tempalte editor
            When a user select a page, the related files will be offer in the editable files
        -->
        <template_editor>
            <screens>
                <question>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Question')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="content">./subviews/content/main.twig</file>
                    <file type="view" role="subview">./subviews/messages/justsaved.twig</file>
                    <file type="view" role="subview">./subviews/survey/group.twig</file>
                    <file type="view" role="subview">./subviews/survey/group_subviews/group_container.twig</file>
                    <file type="view" role="subview">./subviews/survey/group_subviews/group_desc.twig</file>
                    <file type="view" role="subview">./subviews/survey/group_subviews/group_name.twig</file>
                    <file type="view" role="subview">./subviews/survey/question.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_container.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_subviews/question_text_container.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_subviews/question_text_content.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_subviews/answers.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_subviews/survey_question_help.twig</file>
                    <file type="view" role="subview">./subviews/survey/question_subviews/valid_message_and_help.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </question>
 
                <surveylist>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Survey list')}} ]]></screen_title>
                    <file type="view" role="layout">layout_survey_list.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </surveylist>
 
                <welcome>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Welcome')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/firstpage.twig</file>
                    <file type="view" role="subview">./subviews/header/head.twig</file>
                    <file type="view" role="subview">./subviews/header/custom_header.twig</file>
                    <file type="view" role="subview">./subviews/header/nav_bar.twig</file>
                    <file type="view" role="subview">./subviews/header/progress_bar.twig</file>
                    <file type="view" role="subview">./subviews/messages/welcome.twig</file>
                    <file type="view" role="subview">./subviews/messages/warnings.twig</file>
                    <file type="view" role="subview">./subviews/messages/no_js_alert.twig</file>
                    <file type="view" role="subview">./subviews/privacy/privacy.twig</file>
                    <file type="view" role="subview">./subviews/navigation/language_changer_first_page.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </welcome>
 
                <completed>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Completed')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/submit.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </completed>
 
                <assessments>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Assessments')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/submit.twig</file>
                    <file type="view" role="subview">./subviews/messages/assessments.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </assessments>
 
                <error>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Error')}} ]]></screen_title>
                    <file type="view" role="layout">layout_errors.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                </error>
 
                <clearall>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Clear all')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/clearall.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </clearall>
 
                <load>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Load')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/load.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </load>
 
                <save>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Save')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="subview">./subviews/content/mainrow.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/save.twig</file>
                    <file type="css">./css/theme.css</file>
                    <file type="js">./scripts/theme.js</file>
                    <file type="css">./css/custom.css</file>
                    <file type="js">./scripts/custom.js</file>
                </save>
 
                <register>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Registration')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="content">./subviews/content/register.twig</file>
                    <file type="view" role="subview">./subviews/registration/register_error.twig</file>
                    <file type="view" role="subview">./subviews/registration/register_head.twig</file>
                    <file type="view" role="subview">./subviews/registration/register_message.twig</file>
                    <file type="view" role="subview">./subviews/registration/register_success.twig</file>
                    <file type="view" role="subview">./subviews/registration/required.twig</file>
                </register>
 
                <printanswers>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Print answers')}} ]]></screen_title>
                    <file type="view" role="layout">layout_printanswers.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/printanswers.twig</file>
                    <file type="view" role="subview">./subviews/printanswers/printanswers_head.twig</file>
                    <file type="view" role="subview">./subviews/printanswers/printanswers_table.twig</file>
                    <file type="view" role="subview">./subviews/printanswers/printanswers_question.twig</file>
                    <file type="view" role="subview">./subviews/printanswers/printanswers_foot.twig</file>
                </printanswers>
 
                <statistics_user>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Public statistics')}} ]]></screen_title>
                    <file type="view" role="layout">layout_statistics_user.twig</file>
                    <file type="view" role="subview">./subviews/content/outerframe.twig</file>
                    <file type="view" role="content">./subviews/content/statistics_user.twig</file>
                    <file type="view" role="subview">./subviews/statistics_user/statistics_user_head.twig</file>
                    <file type="view" role="subview">./subviews/statistics_user/statistics_user_content.twig</file>
                    <file type="view" role="subview">./subviews/statistics_user/statistics_user_foot.twig</file>
                </statistics_user>
 
                <pdf>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('PDF')}} ]]></screen_title>
                    <file type="view" role="layout">layout_print.twig</file>
                </pdf>
 
                <navigation>
                    <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Navigation')}} ]]></screen_title>
                    <file type="view" role="layout">layout_global.twig</file>
                    <file type="view" role="subview">./subviews/footer/footer.twig</file>
                    <file type="view" role="content">./subviews/content/main.twig</file>
                    <file type="view" role="subview">./subviews/navigation/ajax_indicator.twig</file>
                    <file type="view" role="subview">./subviews/navigation/clearall_links.twig</file>
                    <file type="view" role="subview">./subviews/navigation/language_changer_top_menu.twig</file>
                    <file type="view" role="subview">./subviews/navigation/navigator.twig</file>
                    <file type="view" role="subview">./subviews/navigation/question_index_menu.twig</file>
                    <file type="view" role="subview">./subviews/navigation/save_links.twig</file>
                </navigation>
 
                <quotas>
                  <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Quotas exceeded')}} ]]></screen_title>
                  <file type="view" role="layout">layout_global.twig</file>
                  <file type="view" role="content">./subviews/content/quotas.twig</file>
                  <file type="view" role="subview">./subviews/header/start_form.twig</file>
                </quotas>
 
                <token>
                  <screen_title type="data" role="title" twig="on"><![CDATA[ {{gT('Participant')}} ]]></screen_title>
                  <file type="view" role="layout">layout_user_forms.twig</file>
                  <file type="view" role="content">./subviews/content/userforms.twig</file>
                  <file type="view" role="subview">./subviews/logincomponents/token.twig</file>
                  <file type="view" role="subview">./subviews/logincomponents/captcha.twig</file>
                </token>
 
            </screens>
 
            <!-- Data for preview in Theme Editor and Twig Cache command line generator  -->
            <default_data>
              <survey type="core">
                <name type="data" twig="on"><![CDATA[ {{ gT("Template Sample") }} ]]></name>
                <description type="data" twig="on"><![CDATA[<p>{{ gT('This is a sample survey description. It could be quite long.') }}</p><p>{{ gT("But this one isn't.") }}<p>]]></description>
                <welcome type="data" twig="on"><![CDATA[<p>{{ gT('Welcome to this sample survey')}} <p> <p> {{ gT('You should have a great time doing this') }} <p> ]]></welcome>
                <therearexquestions type="data" twig="on"><![CDATA[gT('There is 2 question in this survey'])]]></therearexquestions>
                <surveyls_url type="data" twig="on">"https://www.limesurvey.org/"</surveyls_url>
                <surveyls_urldescription type="data" twig="on"><![CDATA[ gT("Some URL description") ]]></surveyls_urldescription>
              </survey>
              <group type="core">
                <name type="data" twig="on"><![CDATA[ {{ gT("Group 1: The first lot of questions") }} ]]></name>
                <description type="data" twig="on"><![CDATA[ {{ gT("This group description is fairly vacuous, but quite important.") }} ]]></description>
              </group>
              <question_1 type="core">
                <code type="data">'Q1 '</code>
                <text type="data" twig="on"><![CDATA[ {{ gT("How many roads must a man walk down?") }} ]]></text>
                <valid_message type="data" twig="on"><![CDATA[ <div id="vmsg_4496_num_answers" class="em_num_answers emtip error"><span class="fa fa-exclamation-circle" aria-hidden="true"></span> {{ gT("Choose one of the following answers") }} </div> ]]></valid_message>
              </question_1>
              <question_2 type="core">
                <code type="data">'Q2 '</code>
                <text type="data" twig="on"><![CDATA[ {{ gT("Please explain something in detail:") }} ]]></text>
                <valid_message type="data" twig="on"><![CDATA[<div id="vmsg_4496_num_answers" class="em_num_answers emtip error"><span class="fa fa-exclamation-circle" aria-hidden="true"></span> {{ gT("Hint when response is not valid") }} </div> ]]></valid_message>
              </question_2>
              <assessments type="core">
                <name type="data" twig="on"><![CDATA[ {{ gT("Welcome to the Assessment") }} ]]></name>
                <message type="data" twig="on"><![CDATA[ {{ gT("You got {TOTAL} points out of 3 possible points.") }} ]]></message>
              </assessments>
 
              <!-- This is an exemple to show you how to add your custom screen in the theme editor with custom values -->
              <!-- The name of the array inside aSurveyInfo that feed your twig view is specified as "array-name". If you check quotas.twig, you'll notice the main variable is aSurveyInfo.aQuotas -->
              <!-- Notice that the data you pass here are simple. You can't pass complex arrays inside the array, only key => value pairs.-->
              <quotas type="custom" arrayName="aQuotas">
                <sMessage type="data" twig="on"><![CDATA[ {{ gT("Sorry your responses have exceeded a quota on this survey.") }} ]]></sMessage>
                <sUrl type="data">http://limesurvey.org</sUrl>
                <sUrlDescription type="data" twig="on"><![CDATA[ {{ gT("End url") }} ]]></sUrlDescription>
                <bShowNavigator type="data">false</bShowNavigator>
              </quotas>
 
              <userforms type="custom" arrayName="aForm">
                <sType type="data">token</sType>
              </userforms>
            </default_data>
        </template_editor>
    </engine>
 
    <!-- Disable the updater system for core themes. -->
    <updaters disabled="disabled">
    </updaters>
 
</config>
 

Please Log in to join the conversation.

More
1 week 6 days ago #274616 by tammo
I have not seen anything strange in this (I have only looked at the first part).

If this switching back keeps happening, I would send in a bug report at: bugs.limesurvey.org (same login credentials as the forum)

Tammo


Tammo ter Hark at Respondage
For Limesurvey reporting, education and customized themes
respondage.nl

Please Log in to join the conversation.

Moderators: tpartnerholch

Lime-years ahead

Online-surveys for every purse and purpose