View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 20007 | Bug reports | Theme editor | public | 2025-03-12 16:31 | 2025-11-13 18:29 |
| Reporter | DenisChenu | Assigned To | |||
| Priority | none | Severity | minor | ||
| Status | new | Resolution | open | ||
| Product Version | 6.6.x | ||||
| Summary | 20007: Unable to import theme with only css update | ||||
| Description | When try to import a theme with only css update : receive an error | ||||
| Steps To Reproduce | Steps to reproduce1 Go to theme list
Expected resultget the theme ready with custom.css Actual resultUnable to edit theme Twig\Error\LoaderError | ||||
| Tags | No tags attached. | ||||
| Attached Files | index.php.html (372 bytes)
<html data-lt-installed="true"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><h1>Twig\Error\LoaderError</h1>
<p>The
"/media/shnoulle/data/webdev/master/upload/themes/survey/
vanilla_cssupdate/views/" directory does not exist
("/media/shnoulle/data/webdev/master/upload/themes/survey/
vanilla_cssupdate/views/").</p></body></html> | ||||
| Bug heat | 6 | ||||
| Complete LimeSurvey version number (& build) | 6.12 | ||||
| I will donate to the project if issue is resolved | No | ||||
| Browser | not relevant | ||||
| Database type & version | not relevant | ||||
| Server OS (if known) | not relevant | ||||
| Webserver software & version (if known) | not relevant | ||||
| PHP Version | not relevant | ||||
|
On 5.X : zip file have empty directory, not in 6.X My opinion : empty view directory must be allowed : don't break, create on demand. |
|
|
Even if I put (LS) files in the views directory (layout_global.twig in this case) I still get the error that the views directory does niet exist. |
|
|
@DenisChenu |
|
|
Have another issue with included theme now can import BUT The "/media/shnoulle/data/webdev/master/upload/themes/survey/vanilla_cssupdate/views/" directory does not exist ("/media/shnoulle/data/webdev/master/upload/themes/survey/vanilla_cssupdate/views/"). Save (layout_gloab) : |
|
|
OK with live survey |
|
|
Maybe auto create needed directory when edit theme ? |
|
|
The template sample HTML file (and related files) Template Sample.html (22,088 bytes)
<!DOCTYPE html>
<html lang="fr" dir="ltr" class="js fr dir-ltr" data-lt-installed="true"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="LimeSurvey http://www.limesurvey.org">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/font-awesome.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/ibm-sans.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/ibm-serif.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/remixicon.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/tempus-dominus.min.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/roboto.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/icomoon.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/select2.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/select2-bootstrap-5-theme.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/lstutorial.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/adminsidepanel.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/noto.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/survey.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/embeddables.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/base.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/theme.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/noTablesOnMobile.css">
<link rel="stylesheet" type="text/css" href="Template%20Sample_fichiers/custom.css">
<script type="text/javascript">window.debugState = {frontend : (0 === 1), backend : (0 === 1)};</script><script type="text/javascript" src="Template%20Sample_fichiers/jquery.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/jquery-migrate.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/jquery-ui.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/adminsidepanel.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/js.cookie.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/moment-with-locales.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/popper-tempus.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/datepickerInit.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/lslog.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/pjax.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/loadPjax.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/select2.full.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/ckeditor.js" class="headScriptTag"></script><style>.cke{visibility:hidden;}</style>
<script type="text/javascript" src="Template%20Sample_fichiers/config.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/ckeditoradditions.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/bootstrap_5.min.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/em_javascript.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/survey.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/template-core.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/theme.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/ajaxify.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/custom.js" class="headScriptTag"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/nojs.js" class="headScriptTag"></script>
<script type="text/javascript">
/*<![CDATA[*/
window.LS = window.LS || {}; window.LS.globalUserId = "1";
LSvar= LSvar || {};
LSvar.bFixNumAuto = 1;
LSvar.bNumRealValue = 0;
/*]]>*/
</script>
<title>
Template Sample
</title>
<link rel="shortcut icon" href="http://webdev.local/master/tmp/assets/5ad7cf48/favicon.ico">
<script type="text/javascript">
if(window.basicThemeScripts === undefined){
window.basicThemeScripts = new ThemeScripts();
}
</script>
<style>
body .top-container {
margin-top: 70px;
}
</style>
</head>
<body class=" vanilla_cssupdate vanilla font-noto lang-en brand-logo" data-thememode="light" style="padding-top: 246px;">
<span style="display: none;" id="__emcache_debug" value="off"></span>
<div id="beginScripts" class="script-container">
<script type="text/javascript" src="Template%20Sample_fichiers/adminbasics.js"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/modaleditor.js"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/decimal.js"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/decimalcustom.js"></script>
</div>
<article>
<div id="dynamicReloadContainer">
<!-- Bootstrap Navigation Bar -->
<div id="survey-nav" class="navbar navbar-light bg-light navbar-expand-md fixed-top border-bottom pt-0 pb-0">
<div class="container-fluid">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="small-screens-menus" aria-expanded="false">
<span class="visually-hidden-focusable">Tools</span>
<span class="navbar-toggler-icon" aria-hidden="true"></span>
</button>
<div class="navbar-brand logo-container d-none d-md-block">
<img class="logo img-fluid" src="Template%20Sample_fichiers/logo.png" alt=" Template Sample ">
</div>
<div id="navbar" class="collapse navbar-collapse navbar-nav-scroll pt-2">
<ul class="nav navbar-nav navbar-action-link navbar-right ms-auto">
<!-- Load unfinished survey button -->
<li class="nav-item ls-no-js-hidden px-2">
<a href="#" data-limesurvey-submit="{ "loadall":"loadall" }" class="nav-link ls-link-action ls-link-loadall">
Load unfinished survey
</a>
</li>
<!-- Question index, group, -->
<li class="dropdown nav-item ls-no-js-hidden px-2 index-menu-">
<a class="dropdown-toggle nav-link" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" href="#">
Question index
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li class="list-group-item">
<a href="" data-limesurvey-submit="" class="dropdown-item ">
A group without step status styling
</a>
</li>
<li class="list-group-item">
<a href="" data-limesurvey-submit="" class="dropdown-item bg-warning">
This group is unanswered
</a>
</li>
<li class="list-group-item">
<a href="" data-limesurvey-submit="" class="dropdown-item bg-danger">
This group has an error
</a>
</li>
<li class="list-group-item">
<a href="" data-limesurvey-submit="" class="dropdown-item disabled">
Current group is disabled
</a>
</li>
</ul>
</li>
<!-- Language Changer, top menu version -->
<li class="ls-no-js-hidden form-change-lang dropdown nav-item px-2">
<a class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" href="#" data-bs-target="#language-dropdown">
Language: English
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-end" id="language-dropdown">
<li class="index-item">
<a href="#" data-limesurvey-lang="en" class="dropdown-item ls-language-link">
English
</a>
</li>
<li class="index-item">
<a href="#" data-limesurvey-lang="de" class="dropdown-item ls-language-link">
German
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!-- Outer Frame Container -->
<!-- outer frame container -->
<div class=" outerframe container-md " id="outerframeContainer">
<!-- Main Row -->
<div id="main-row">
<!-- Main Col -->
<div class=" col-centered space-col" id="main-col">
<!-- No JavaScript alert -->
<div class=" ls-js-hidden warningjs alert alert-danger " data-type="checkjavascript">
Caution: JavaScript execution is disabled in your browser or for
this website. You may not be able to answer all questions in this
survey. Please, verify your browser parameters.
</div>
<!-- Start of language change Form-->
<form id="firstpage-changelang" autocomplete="off" class="form" method="post">
<input type="hidden" value="dmpobjc3SGNFUHFoYVJqME9yQVhNUDhLbmd4RGkzQlHCewsiiKPwOVSdHzFcVSC3b-ZzBUb56_ren8a_G1lnYA==" name="YII_CSRF_TOKEN">
<!-- Language Changer -->
<div class=" form-change-lang row row-cols-lg-auto g-1">
<label class=" col-form-label col-auto fw-bold" for="lang">
<span class="control-label">Language:</span>
</label>
<div class="col-auto">
<select class="form-control" name="lang" id="lang">
<option value="en" selected="selected">English</option>
<option value="de">German</option>
</select>
</div>
<div class="col-auto">
<!-- for no js functionality (need form) -->
<button type="submit" value="changelang" name="move" class="btn btn-primary ls-language-changer-item ">Change the language</button>
</div>
</div>
</form>
<!-- Start of the main Form-->
<form id="limesurvey" name="limesurvey" autocomplete="off" class="survey-form-container form" method="post">
<input type="hidden" value="dmpobjc3SGNFUHFoYVJqME9yQVhNUDhLbmd4RGkzQlHCewsiiKPwOVSdHzFcVSC3b-ZzBUb56_ren8a_G1lnYA==" name="YII_CSRF_TOKEN">
<!-- Ajax value -->
<!-- Needs to be set by javascript! Because if JavaScript is disabled, ajaxmode will completely fail! -->
<!-- Field Names -->
<input type="hidden" name="fieldnames" value="" id="fieldnames">
<!-- Submit button -->
<button type="submit" id="defaultbtn" value="default" name="move" class="submit d-none" style="display:none">default</button>
<!-- main form -->
<!-- Welcome Message -->
<div id="welcome-container" class="">
<!-- Survey Name -->
<h1 class=" survey-name text-center">
Template Sample
</h1>
<!-- Survey description -->
<div class=" survey-description text-info text-center">
<p>This is a sample survey description. It could be quite long.</p><p>But this one isn't.</p><p>
</p></div>
<!-- Welcome text -->
<div class=" survey-welcome h5 text-primary">
<p>Welcome to this sample survey </p><p> </p><p> You should have a great time doing this </p><p>
</p></div>
<!-- Question count -->
<div class=" number-of-questions text-muted">
<div class=" question-count-text ">
</div>
</div>
</div>
<!-- Privacy message -->
<div class=" privacy row">
<div class=" col-12 col-centered">
<div class="form-check">
<input required="" class=" form-check-input" type="checkbox" name="datasecurity_accepted" id="datasecurity_accepted">
<label for="datasecurity_accepted" class="form-check-label fw-bold "> <a href="#data-security-modal-" data-bs-toggle="collapse"> Show privacy policy </a> </label>
</div>
<div class="collapse fade" id="data-security-modal-">
<div class="card card-primary">
<div class="card-header bg-primary">
<h4 class="modal-title">Privacy policy</h4>
</div>
<div class="card-body ">
Your privacy policy text is shown here.
</div>
<div class="ls-no-js-hidden card-footer">
<button type="button" class="btn btn-primary" onclick="$('#datasecurity_accepted').prop('checked',true).trigger('change');" data-bs-dismiss="modal">
Accept
</button>
<button type="button" class="btn btn-outline-secondary" onclick="$('#data-security-modal-').collapse('hide');">
Close
</button>
</div>
</div>
</div>
<script>
$(function() {
$("#ls-button-submit").on("click", function() {
if(!$('#datasecurity_accepted').prop('checked')) {
/* dynamic show error */
$('#datasecurity_error').removeClass("ls-js-hidden");
if($('#datasecurity_error').length) {
/* add it in aria and role */
$('#datasecurity_error').attr("role", "alert");
$('#datasecurity_accepted').attr("aria-describedby", "datasecurity_error ");
}
}
});
});
$("#datasecurity_accepted").on("change", function() {
if($('#datasecurity_accepted').prop('checked')) {
/* dynamic hide error */
$('#datasecurity_error').addClass("ls-js-hidden");
}
});
</script>
</div>
</div>
<!-- PRESENT THE NAVIGATOR -->
<div class=" row navigator space-col" id="navigator-container">
<!-- Previous button container -->
<div class=" col-6 text-start">
<!-- Button previous -->
<button id="ls-button-previous" type="submit" value="moveprev" name="move" accesskey="p" class=" ls-move-btn ls-move-previous-btn action--ls-button-previous btn btn-lg btn-outline-secondary ">
Previous
</button>
</div>
<div class=" col-6 text-end">
<!-- Button Next -->
<button id="ls-button-submit" type="submit" value="movenext" name="move" accesskey="n" class=" ls-move-btn ls-move-next-btn ls-move-submit-btn action--ls-button-submit btn btn-lg btn-primary ">
Next
</button>
</div>
</div>
<!-- Extra navigator part -->
<!-- extra tools, can be shown with javascript too (just remove ls-js-hidden class -->
<div class="row ls-js-hidden">
<!-- Extra button container -->
<div class="col-6 clearall-saveall-wrapper">
<button type="submit" value="loadall" name="loadall" accesskey="l" class="ls-saveaction ls-loadall action--ls-button-submit btn btn-outline-secondary">Load unfinished survey</button>
<div class="">
<div class="">
<label class="col-form-label fw-bold ls-js-hidden">
<input value="confirm" name="confirm-clearall" type="checkbox" class="me-2 "><span class="control-label">Please confirm you want to clear your response?</span>
</label>
<button type="submit" name="clearall" value="clearall" data-confirmedby="confirm-clearall" class="ls-clearaction ls-clearall btn btn-link" title="This action need to be confirmed.">Exit and clear survey</button>
</div>
</div>
</div>
<!-- Index container -->
<div class="col-md-6 index-wrapper">
<div class="list-group index-button-full">
<div class="list-group-item">
<div class="h4 list-group-item-heading">Question index</div>
</div>
<button type="submit" name="move" value="" class="list-group-item ">A group without step status styling</button>
<button type="submit" name="move" value="" class="list-group-item list-group-item-warning">This group is unanswered</button>
<button type="submit" name="move" value="" class="list-group-item list-group-item-danger">This group has an error</button>
<button type="submit" name="move" value="" class="list-group-item disabled">Current group is disabled</button>
</div>
</div>
</div>
<input type="hidden" name="ajax" value="off" id="ajax"></form> <!-- main form -->
</div> <!-- main col -->
</div> <!-- main row -->
</div>
<!-- Bootstrap Modal Alert -->
<div id="bootstrap-alert-box-modal" class=" modal fade ">
<div class=" modal-dialog ">
<div class=" modal-content ">
<div class=" modal-header " style="min-height:40px;">
<button type="button" data-bs-dismiss="modal" aria-hidden="true" class=" btn-close "></button>
<div class=" modal-title"> </div>
</div>
<div class=" modal-body ">
</div>
<div class=" modal-footer ">
<a href="#" data-bs-dismiss="modal" class=" btn btn-outline-secondary ">Close</a>
</div>
</div>
</div>
</div>
</div>
</article>
<div id="bottomScripts" class="script-container">
<script type="text/javascript" src="Template%20Sample_fichiers/lstutorial.js"></script>
<script type="text/javascript" src="Template%20Sample_fichiers/embeddables.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
activateLanguageChanger();
if(window.basicThemeScripts === undefined){
window.basicThemeScripts = new ThemeScripts();
}
basicThemeScripts.initGlobal();
jQuery(document).off('pjax:scriptcomplete.mainBottom').on('ready pjax:scriptcomplete.mainBottom', function() {
activateActionLink();
activateConfirmButton();
basicThemeScripts.initTopMenuLanguageChanger('.ls-language-link ', 'form#limesurvey');
$('#limesurvey').append('<input type="hidden" name="ajax" value="off" id="ajax" />');
if(window.basicThemeScripts === undefined){
window.basicThemeScripts = new ThemeScripts();
}
});
jQuery(document).off('pjax:scriptsuccess.debugger').on('pjax:scriptsuccess.debugger',function(e) { console.ls.log('PJAX scriptsuccess', e); });
jQuery(document).off('pjax:scripterror.debugger').on('pjax:scripterror.debugger',function(e) { console.ls.log('PJAX scripterror', e); });
jQuery(document).off('pjax:scripttimeout.debugger').on('pjax:scripttimeout.debugger',function(e) { console.ls.log('PJAX scripttimeout', e); });
jQuery(document).off('pjax:success.debugger').on('pjax:success.debugger',function(e) { console.ls.log('PJAX success', e);});
jQuery(document).off('pjax:error.debugger').on('pjax:error.debugger',function(e) { console.ls.log('PJAX error', e);});
/*]]>*/
</script>
</div>
<script>
window.basicThemeScripts.init();
</script>
</body></html> |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-03-12 16:31 | DenisChenu | New Issue | |
| 2025-03-12 16:31 | DenisChenu | File Added: vanilla_cssupdate.zip | |
| 2025-03-12 16:31 | DenisChenu | File Added: index.php.html | |
| 2025-03-12 16:32 | DenisChenu | Note Added: 82234 | |
| 2025-03-12 16:32 | DenisChenu | Bug heat | 0 => 2 |
| 2025-10-18 17:29 | Matijs | Note Added: 83605 | |
| 2025-10-18 17:29 | Matijs | File Added: import.png | |
| 2025-10-18 17:29 | Matijs | Bug heat | 2 => 4 |
| 2025-11-13 18:19 | c_schmitz | Note Added: 83787 | |
| 2025-11-13 18:19 | c_schmitz | Bug heat | 4 => 6 |
| 2025-11-13 18:25 | DenisChenu | Note Added: 83793 | |
| 2025-11-13 18:25 | DenisChenu | File Added: Capture d’écran du 2025-11-13 18-20-53.png | |
| 2025-11-13 18:25 | DenisChenu | File Added: Capture d’écran du 2025-11-13 18-21-41.png | |
| 2025-11-13 18:25 | DenisChenu | File Added: Capture d’écran du 2025-11-13 18-25-00.png | |
| 2025-11-13 18:26 | DenisChenu | Note Added: 83794 | |
| 2025-11-13 18:26 | DenisChenu | Note Added: 83795 | |
| 2025-11-13 18:29 | DenisChenu | Note Added: 83797 | |
| 2025-11-13 18:29 | DenisChenu | File Added: Template Sample.html | |
| 2025-11-13 18:29 | DenisChenu | File Added: Template Sample_fichiers.zip |