Fixing smarty templates withb Twig templates

skala
Julio Montoya 14 years ago
parent b6099390e8
commit 0f6dd58234
  1. 2
      main/css/base.css
  2. 94
      main/inc/lib/javascript/skills.js
  3. 66
      main/inc/lib/template.lib.php
  4. 22
      main/template/default/admin/settings_index.tpl
  5. 102
      main/template/default/agenda/month.tpl
  6. 30
      main/template/default/create_course/add_course.tpl
  7. 2
      main/template/default/layout/blank.tpl
  8. 60
      main/template/default/layout/footer.tpl
  9. 46
      main/template/default/layout/head.tpl
  10. 77
      main/template/default/layout/hot_courses.tpl
  11. 55
      main/template/default/layout/layout_1_col.tpl
  12. 149
      main/template/default/layout/layout_2_col.tpl
  13. 21
      main/template/default/layout/login_form.tpl
  14. 11
      main/template/default/layout/main.tpl
  15. 2
      main/template/default/layout/main_footer.tpl
  16. 109
      main/template/default/layout/main_header.tpl
  17. 21
      main/template/default/layout/no_layout.tpl
  18. 24
      main/template/default/layout/page_body.tpl
  19. 18
      main/template/default/layout/show_footer.tpl
  20. 18
      main/template/default/layout/show_header.tpl
  21. 8
      main/template/default/layout/sniff.tpl
  22. 6
      main/template/default/layout/social_layout.tpl
  23. 76
      main/template/default/layout/topbar.tpl
  24. 93
      main/template/default/skill/profile.tpl
  25. 110
      main/template/default/skill/skill_tree.tpl
  26. 16
      main/template/default/skill/skill_tree_student.tpl
  27. 4
      main/template/default/work/view.tpl
  28. 12
      plugin/show_user_info/template.tpl

@ -2893,7 +2893,7 @@ form .formw .freeze {
height: 4em;
opacity: 0.8;
padding-top: 0.9em;
position: absolute;
/* position: absolute; */
text-align: center;
width: 120px;
z-index: 40;

@ -13,6 +13,7 @@ var connectorPaintStyle = {
strokeStyle:"#deea18",
joinstyle:"round"
};
// .. and this is the hover style.
var connectorHoverStyle = {
lineWidth:7,
@ -22,7 +23,7 @@ var connectorHoverStyle = {
//Admin arrows
var edit_arrow_color = '#ccc';
var editEndpoint = {
var editEndpointOptions = {
//connectorStyle:connectorPaintStyle,
connector:[ "Flowchart", { stub:28 } ],
hoverPaintStyle:connectorHoverStyle,
@ -41,7 +42,25 @@ var editEndpoint = {
strokeStyle: edit_arrow_color
},
isTarget:true,
dropOptions : exampleDropOptions
dropOptions : exampleDropOptions,
// default to blue at one end and green at the other
EndpointStyles : [{ fillStyle:'#225588' }, { fillStyle:'#558822' }],
// blue endpoints 7 px; green endpoints 11.
Endpoints : [ [ "Dot", { radius:7} ],
[ "Dot", { radius:11 } ]
],
// the overlays to decorate each connection with. note that the label overlay uses a function to generate the label text; in this
// case it returns the 'labelText' member that we set on each connection in the 'init' method below.
ConnectionOverlays : [
[ "Arrow", { location:0.9 } ],
[ "Label", {
location:0.1,
id:"label",
cssClass:"aLabel"
}]
]
};
@ -68,7 +87,7 @@ var defaultEndpoint = {
// If user completed the skill
var done_arrow_color = '#73982C'; //green
var doneEndpoint = {
var doneEndpointOptions = {
connector:[ "Flowchart", { stub:28 } ],
anchors: ['BottomCenter','TopCenter'],
endpoint:"Rectangle",
@ -153,8 +172,46 @@ function load_children(my_id, top_value, load_user_data) {
//Loading children
var ix = 0;
$('body').append('<div id="block_'+my_id+ '" class=" window " >Root </div>');
jsPlumb.AnchorPositionFinders.MyFinder = function(dp, ep, es, params) {
console.log('MyFinder');
console.log('dp: ' +dp);
return [100, 200];
};
var endpointOptions2 = {
isTarget:true,
maxConnections:5,
endpoint:"Rectangle",
paintStyle:{ fillStyle:"gray" },
anchor:[ "Assign", {
position:"MyFinder",
myCustomParameter:"foo",
anInteger:5
}]
};
jsPlumb.makeSource("block_" + my_id, {
anchor:"Continuous",
endpoint:["Rectangle", { width:200, height:50 }]
});
/*$('#block_'+my_id).css({
position: 'absolute',
zIndex: 5000,
left: '100px',
top: '100px'
});*/
$.getJSON(url+'&a=load_children&load_user_data='+load_user_data+'&id='+my_id, {},
function(json) {
function(json) {
console.log('getJSON reponse: ' + json)
$.each(json,function(i, item) {
if (debug) console.log('Loading children: #' + item.id + " " +item.name);
@ -164,40 +221,37 @@ function load_children(my_id, top_value, load_user_data) {
item.name = '<a href="#" class="edit_block" id="edit_block_'+item.id+'">'+item.name+'</a>';
var status_class = ' ';
my_edit_point = editEndpoint;
my_edit_point_options = editEndpointOptions;
if (item.passed == 1) {
my_edit_point = doneEndpoint;
my_edit_point_options = doneEndpointOptions;
status_class = 'done_window';
}
$('body').append('<div id="block_'+item.id+ '" class="third_window open_block window '+status_class+'" >'+item.name+'</div>');
if (debug) console.log('Append block: '+item.id);
$('#block_'+item.id).css({
/*$('#block_'+item.id).css({
position: 'absolute',
zIndex: 5000,
left: '10',
top: '10'
});
});*/
//console.log('append div id = block_'+item.id);
//console.log('preparing = '+item.id);
var es = prepare("block_" + item.id, my_edit_point);
//console.log('preparing = '+my_id);
var e2 = prepare("block_" + my_id, my_edit_point);
jsPlumb.connect({source: es, target:e2});
//var es = prepare("block_" + item.id, my_edit_point_options);
//var e2 = prepare("block_" + my_id, my_edit_point_options);
jsPlumb.makeTarget("block_" + item.id, endpointOptions2);
jsPlumb.connect({source: "block_" + my_id, target:"block_" + item.id, anchor:"Continuous"});
//console.log('connect sources');
jsPlumb.animate("block_" + item.id, {
/*jsPlumb.animate("block_" + item.id, {
left: left_value, top : top_value
}, { duration : duration_value });
ix++;
ix++; */
});
}
);

@ -7,12 +7,14 @@
**/
// Load Smarty library
require_once api_get_path(LIBRARY_PATH).'smarty/Smarty.class.php';
//require_once api_get_path(LIBRARY_PATH).'smarty/Smarty.class.php';
require_once api_get_path(LIBRARY_PATH).'course_home.lib.php';
require_once api_get_path(LIBRARY_PATH).'banner.lib.php';
require_once api_get_path(LIBRARY_PATH).'plugin.lib.php';
require_once api_get_path(LIBRARY_PATH).'Twig/Autoloader.php';
class Template extends Smarty {
//class Template extends Smarty {
class Template {
var $style = 'default'; //see the template folder
var $preview_theme = null;
@ -26,15 +28,46 @@ class Template extends Smarty {
var $plugin = null;
var $course_id = null;
var $user_is_logged_in = false;
var $twig = null;
var $params = array();
function __construct($title = '', $show_header = true, $show_footer = true, $show_learnpath = false) {
parent::__construct();
function __construct($title = '', $show_header = true, $show_footer = true, $show_learnpath = false) {
//parent::__construct();
//Twig settings
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem(api_get_path(SYS_CODE_PATH).'template');
$this->twig = new Twig_Environment($loader, array(
//'cache' => api_get_path(SYS_ARCHIVE_PATH),
'autoescape' => false,
));
$this->twig->addFilter('get_lang',new Twig_Filter_Function('get_lang'));
$this->twig->addFilter('get_path',new Twig_Filter_Function('api_get_path'));
$this->twig->addFilter('get_setting',new Twig_Filter_Function('api_get_setting'));
// Smarty like
$lexer = new Twig_Lexer($this->twig, array(
//'tag_comment' => array('{*', '*}'),
//'tag_comment' => array('{#', '#}'),
//'tag_block' => array('{', '}'),
//'tag_variable' => array('{$', '}'),
));
$this->twig->setLexer($lexer);
//--------
//Page title
$this->title = $title;
$this->show_learnpath = $show_learnpath;
//Smarty 3 configuration
/*
$this->setTemplateDir(api_get_path(SYS_CODE_PATH).'template/');
$this->setCompileDir(api_get_path(SYS_ARCHIVE_PATH));
$this->setConfigDir(api_get_path(SYS_ARCHIVE_PATH));
@ -45,7 +78,7 @@ class Template extends Smarty {
$this->caching = false;
//$this->caching = Smarty::CACHING_LIFETIME_CURRENT;
$this->cache_lifetime = Smarty::CACHING_OFF; // no caching
//$this->cache_lifetime = 120;
//$this->cache_lifetime = 120;*/
//Setting system variables
$this->set_system_parameters();
@ -61,11 +94,11 @@ class Template extends Smarty {
$this->set_header($show_header);
//Creating a Smarty modifier - Now we can call the get_lang from a template!!! Just use {"MyString"|get_lang}
$this->registerPlugin("modifier","get_lang", "get_lang");
//$this->registerPlugin("modifier","get_lang", "get_lang");
//Not recomended to use get_path, use {$_p.'xxx'} see the set_system_parameters()
$this->registerPlugin("modifier","get_path", "api_get_path");
$this->registerPlugin("modifier","get_setting", "api_get_setting");
//$this->registerPlugin("modifier","get_path", "api_get_path");
//$this->registerPlugin("modifier","get_setting", "api_get_setting");
//To load a smarty plugin
//$this->loadPlugin('smarty_function_get_lang');
@ -595,4 +628,21 @@ class Template extends Smarty {
}
return null;
}
public function fetch($template = null, $cache_id = null, $compile_id = null, $parent = null, $display = false, $merge_tpl_vars = true, $no_output_filter = false) {
//parent::fetch($template, $cache_id, $compile_id, $parent, $display, $merge_tpl_vars , $no_output_filter);
//parent::fetch($template, $cache_id, $compile_id, $parent, $display, $merge_tpl_vars , $no_output_filter);
$template = $this->twig->loadTemplate($template);
return $template->render($this->params);
}
public function assign($tpl_var, $value = null, $nocache = false) {
//parent::assign($tpl_var, $value, $nocache);
$this->params[$tpl_var] = $value;
}
public function display($template = null, $cache_id = null, $compile_id = null, $parent = null) {
//parent::display($template, $cache_id, $compile_id, $parent);
echo $this->twig->render($template, $this->params);
}
}

@ -18,22 +18,22 @@ $(function() {
</ul>
-->
<div class="row">
{foreach $blocks as $key => $block name=block_loop }
<div id="tabs-{$smarty.foreach.block_loop.index +1}" class="span6">
{% for block_item in blocks %}
<div id="tabs-{{loop.index}}" class="span6">
<div class="well_border">
<h4>{$block.icon} {$block.label}</h4>
<h4>{{block_item.icon}} {{block_item.label}}</h4>
<div style="list-style-type:none">
{$block.search_form}
</div>
{if $block.items}
{{ block_item.search_form }}
</div>
{% if block_item.items is not null %}
<ul>
{foreach $block.items as $url}
<li><a href="{$url.url}">{$url.label}</a></li>
{/foreach}
{% for url in block_item.items %}
<li><a href="{{url.url}}">{{ url.label }}</a></li>
{% endfor %}
</ul>
{/if}
{% endif%}
</div>
</div>
{/foreach}
{% endfor %}
</div>
</div>

@ -18,7 +18,7 @@ function clean_user_select() {
.end();
}
var region_value = '{$region_value}';
var region_value = '{{region_value}}';
$(document).ready(function() {
/*$("body").delegate(".datetime", "focusin", function(){
@ -95,21 +95,21 @@ $(document).ready(function() {
left: 'today prev,next',
center: 'title',
right: 'month,agendaWeek,agendaDay',
},
{if $use_google_calendar == 1 }
},
{% if use_google_calendar == 1 %}
eventSources: [
'{$google_calendar_url}', //if you want to add more just add URL in this array
'{{google_calendar_url}}', //if you want to add more just add URL in this array
{
className: 'gcal-event', // an option!
}
],
{/if}
{% endif %}
buttonText: {$button_text},
monthNames: {$month_names},
monthNamesShort:{$month_names_short},
dayNames: {$day_names},
dayNamesShort: {$day_names_short},
buttonText: {{button_text}},
monthNames: {{month_names}},
monthNamesShort:{{month_names_short}},
dayNames: {{day_names}},
dayNamesShort: {{day_names_short}},
firstHour: 8,
firstDay: 1,
selectable : true,
@ -142,11 +142,11 @@ $(document).ready(function() {
//Update chz-select
$("#users_to_send_id").trigger("liszt:updated");
if ({$can_add_events} == 1) {
var url = '{$web_agenda_ajax_url}&a=add_event&start='+start_date+'&end='+end_date+'&all_day='+allDay+'&view='+view.name;
if ({{can_add_events}} == 1) {
var url = '{{web_agenda_ajax_url}}&a=add_event&start='+start_date+'&end='+end_date+'&all_day='+allDay+'&view='+view.name;
var start_date_value = $.datepicker.formatDate('{$js_format_date}', start);
var end_date_value = $.datepicker.formatDate('{$js_format_date}', end);
var start_date_value = $.datepicker.formatDate('{{js_format_date}}', start);
var end_date_value = $.datepicker.formatDate('{{js_format_date}}', end);
$('#start_date').html(start_date_value + " " + start.toTimeString().substr(0, 8));
@ -161,17 +161,17 @@ $(document).ready(function() {
$('#start_date').html(start_date_value);
$('#end_date').html(' ');
}
$('#color_calendar').html('{$type_label}');
$('#color_calendar').html('{{type_label}}');
$('#color_calendar').removeClass('group_event');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').addClass('{$type}_event');
$('#color_calendar').addClass('{{type}}_event');
allFields.removeClass( "ui-state-error" );
$("#dialog-form").dialog("open");
$("#dialog-form").dialog({
buttons: {
{"Add"|get_lang}: function() {
{{"Add"|get_lang}}: function() {
var bValid = true;
bValid = bValid && checkLength( title, "title", 1, 255 );
//bValid = bValid && checkLength( content, "content", 1, 255 );
@ -237,13 +237,13 @@ $(document).ready(function() {
$('#visible_to_input').hide();
$('#add_as_announcement_div').hide();
{if $type != 'admin'}
{% if type != 'admin' %}
$('#visible_to_read_only').show();
$("#visible_to_read_only_users").html(calEvent.sent_to);
{/if}
{% endif %}
$('#color_calendar').html('{$type_label}');
$('#color_calendar').html('{{type_label}}');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').removeClass('course_event');
$('#color_calendar').removeClass('personal_event');
@ -263,25 +263,25 @@ $(document).ready(function() {
$("#dialog-form").dialog("open");
var url = '{$web_agenda_ajax_url}&a=edit_event&id='+calEvent.id+'&start='+start_date+'&end='+end_date+'&all_day='+calEvent.allDay+'&view='+view.name;
var delete_url = '{$web_agenda_ajax_url}&a=delete_event&id='+calEvent.id;
var url = '{{web_agenda_ajax_url}}&a=edit_event&id='+calEvent.id+'&start='+start_date+'&end='+end_date+'&all_day='+calEvent.allDay+'&view='+view.name;
var delete_url = '{{web_agenda_ajax_url}}&a=delete_event&id='+calEvent.id;
$("#dialog-form").dialog({
buttons: {
'{"ExportiCalConfidential"|get_lang}' : function() {
'{{"ExportiCalConfidential"|get_lang}}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
window.location.href = url;
},
'{"ExportiCalPrivate"|get_lang}': function() {
'{{"ExportiCalPrivate"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
window.location.href = url;
},
'{"ExportiCalPublic"|get_lang}': function() {
'{{"ExportiCalPublic"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
window.location.href = url;
},
'{"Edit"|get_lang}' : function() {
'{{"Edit"|get_lang}}' : function() {
var bValid = true;
bValid = bValid && checkLength( title, "title", 1, 255 );
@ -305,7 +305,7 @@ $(document).ready(function() {
}
});
},
'{"Delete"|get_lang}': function() {
'{{"Delete"|get_lang}}': function() {
$.ajax({
url: delete_url,
success:function() {
@ -339,16 +339,16 @@ $(document).ready(function() {
$("#simple-dialog-form").dialog({
buttons: {
'{"ExportiCalConfidential"|get_lang}' : function() {
'{{"ExportiCalConfidential"|get_lang}}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
window.location.href = url;
},
'{"ExportiCalPrivate"|get_lang}': function() {
'{{"ExportiCalPrivate"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
window.location.href = url;
},
'{"ExportiCalPublic"|get_lang}': function() {
'{{"ExportiCalPublic"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
window.location.href = url;
}
@ -358,10 +358,10 @@ $(document).ready(function() {
}
},
editable: true,
events: "{$web_agenda_ajax_url}&a=get_events",
events: "{{web_agenda_ajax_url}}&a=get_events",
eventDrop: function(event, day_delta, minute_delta, all_day, revert_func) {
$.ajax({
url: '{$web_agenda_ajax_url}',
url: '{{web_agenda_ajax_url}}',
data: {
a:'move_event', id: event.id, day_delta: day_delta, minute_delta: minute_delta
}
@ -369,7 +369,7 @@ $(document).ready(function() {
},
eventResize: function(event, day_delta, minute_delta, revert_func) {
$.ajax({
url: '{$web_agenda_ajax_url}',
url: '{{web_agenda_ajax_url}}',
data: {
a:'resize_event', id: event.id, day_delta: day_delta, minute_delta: minute_delta
}
@ -389,20 +389,20 @@ $(document).ready(function() {
<div style="width:500px">
<form name="form-simple" class="form-vertical" >
<div class="control-group">
<label class="control-label"><b>{"Date"|get_lang}</b></label>
<label class="control-label"><b>{{"Date"|get_lang}}</b></label>
<div class="controls">
<span id="simple_start_date"></span><span id="simple_end_date"></span>
</div>
</div>
<div class="control-group">
<label class="control-label"><b>{"Title"|get_lang}</b></label>
<label class="control-label"><b>{{"Title"|get_lang}}</b></label>
<div class="controls">
<div id="simple_title"></div>
</div>
</div>
<div class="control-group">
<label class="control-label"><b>{"Description"|get_lang}</b></label>
<label class="control-label"><b>{{"Description"|get_lang}}</b></label>
<div class="controls">
<div id="simple_content"></div>
</div>
@ -414,62 +414,62 @@ $(document).ready(function() {
<div id="dialog-form" style="display:none;">
<div style="width:500px">
<form class="form-horizontal" id="add_event_form" name="form">
{if !empty($visible_to) }
{% if visible_to is not null %}
<div id="visible_to_input" class="control-group">
<label class="control-label" for="date">{"To"|get_lang}</label>
<label class="control-label" for="date">{{"To"|get_lang}}</label>
<div class="controls">
{$visible_to}
{{visible_to}}
</div>
</div>
{/if}
{% endif %}
<div id="visible_to_read_only" class="control-group" style="display:none">
<label class="control-label" for="date">{"To"|get_lang}</label>
<label class="control-label" for="date">{{"To"|get_lang}}</label>
<div class="controls">
<div id="visible_to_read_only_users"></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="date">{"Agenda"|get_lang}</label>
<label class="control-label" for="date">{{"Agenda"|get_lang}}</label>
<div class="controls">
<div id="color_calendar"></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="date">{"Date"|get_lang}</label>
<label class="control-label" for="date">{{"Date"|get_lang}}</label>
<div class="controls">
<span id="start_date"></span><span id="end_date"></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{"Title"|get_lang}</label>
<label class="control-label" for="name">{{"Title"|get_lang}}</label>
<div class="controls">
<input type="text" name="title" id="title" size="40" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{"Description"|get_lang}</label>
<label class="control-label" for="name">{{"Description"|get_lang}}</label>
<div class="controls">
<textarea name="content" id="content" class="span3" rows="5"></textarea>
</div>
</div>
{if $type == 'course'}
{% if type == 'course' %}
<div id="add_as_announcement_div">
<div class="control-group">
<label></label>
<div class="controls">
<label class="checkbox inline" for="add_as_annonuncement">
{"AddAsAnnouncement"|get_lang}
{{"AddAsAnnouncement"|get_lang}}
<input type="checkbox" name="add_as_annonuncement" id="add_as_annonuncement" />
</label>
</div>
</div>
</div>
{/if}
{% endif %}
</form>
</div>
</div>
<div id='loading' style='margin-left:150px;position:absolute;display:none'>{"Loading"|get_lang}...</div>
<div id='loading' style='margin-left:150px;position:absolute;display:none'>{{"Loading"|get_lang}}...</div>
<div id='calendar'></div>

@ -1,30 +1,30 @@
{$just_created_link}
<h3>{'JustCreated'|get_lang} {$course_title}</h3>
{{just_created_link}}
<h3>{{'JustCreated'|get_lang}} {{course_title}</h3>
<hr />
<h3>{'ThingsToDo'|get_lang}</h3>
<h3>{{'ThingsToDo'|get_lang}}</h3>
<ul class="welcome_course">
<li>
<p><img src="{$_p.web_img}icons/64/home.png"/></p>
<a href="{$course_url}" class="a_button white medium">
{'CourseHomepage'|get_lang}
<p><img src="{{_p.web_img}}icons/64/home.png"/></p>
<a href="{{course_url}}" class="a_button white medium">
{{'CourseHomepage'|get_lang}}
</a>
</li>
<li>
<p><img src="{$_p.web_img}icons/64/user.png"/></p>
<a href="{$_p.web_main}user/subscribe_user.php?cidReq={$course_id}" class="a_button white medium">
{'SubscribeUserToCourse'|get_lang}
<p><img src="{{_p.web_img}}icons/64/user.png"/></p>
<a href="{{_p.web_main}}user/subscribe_user.php?cidReq={{course_id}}" class="a_button white medium">
{{'SubscribeUserToCourse'|get_lang}
</a>
</li>
<li>
<p><img src="{$_p.web_img}icons/64/info.png"/></p>
<a href="{$_p.web_main}course_description/?cidReq={$course_id}" class="a_button white medium">
{'AddCourseDescription'|get_lang}
<p><img src="{{_p.web_img}}icons/64/info.png"/></p>
<a href="{{_p.web_main}}course_description/?cidReq={{course_id}}" class="a_button white medium">
{{'AddCourseDescription'|get_lang}}
</a>
</li>
<li>
<p><img src="{$_p.web_img}icons/64/reference.png"/></p>
<a href="{$_p.web_main}course_info/infocours.php?cidReq={$course_id}" class="a_button white medium">
{'ModifInfo'|get_lang}
<p><img src="{{_p.web_img}}icons/64/reference.png"/></p>
<a href="{{_p.web_main}}course_info/infocours.php?cidReq={{course_id}}" class="a_button white medium">
{{'ModifInfo'|get_lang}}
</a>
</li>
</ul>

@ -1,64 +1,66 @@
<footer> <!-- start of #footer section -->
<div class="container">
<div class="row">
<div id="footer_left" class="span4">
{if $session_teachers}
<div id="footer_left" class="span4">
{% if session_teachers is not null %}
<div id="session_teachers">
{$session_teachers}
{{session_teachers}}
</div>
{/if}
{% endif %}
{if $teachers }
{% if teachers is not null %}
<div id="teachers">
{$teachers}
{{teachers}}
</div>
{/if}
{* Plugins for footer section *}
{if !empty($plugin_footer_left)}
{% endif %}
{# Plugins for footer section #}
{% if plugin_footer_left is not null %}
<div id="plugin_footer_left">
{$plugin_footer_left}
{{plugin_footer_left}}
</div>
{/if}
{% endif %}
&nbsp;
</div>
<div id="footer_center" class="span4">
{* Plugins for footer section *}
{if !empty($plugin_footer_center)}
{# Plugins for footer section #}
{% if plugin_footer_center is not null %}
<div id="plugin_footer_center">
{$plugin_footer_center}
{{plugin_footer_center}}
</div>
{else}
{% else %}
&nbsp;
{/if}
{% endif %}
</div>
<div id="footer_right" class="span4">
{if $administrator_name }
{% if administrator_name is not null %}
<div id="admin_name">
{$administrator_name}
{{administrator_name}}
</div>
{/if}
{% endif %}
<div id="software_name">
{"Platform"|get_lang} <a href="{$_p.web}" target="_blank">{$_s.software_name} {$_s.system_version}</a>
&copy; {$smarty.now|date_format:"%Y"}
{{"Platform"|get_lang}} <a href="{{_p.web}}" target="_blank">{{_s.software_name}} {{_s.system_version}}</a>
&copy;
</div>
{* Plugins for footer section *}
{if !empty($plugin_footer_right)}
{# Plugins for footer section #}
{% if plugin_footer_right is not null %}
<div id="plugin_footer_right">
{$plugin_footer_right}
{{plugin_footer_right}}
</div>
{/if}
{% endif %}
&nbsp;
</div><!-- end of #footer_right -->
</div><!-- end of #row -->
</div><!-- end of #container -->
</footer>
{$footer_extra_content}
{{footer_extra_content}}
{literal}
{% raw %}
<script type="text/javascript">
$(document).ready( function() {
$(".chzn-select").chosen();
@ -72,5 +74,5 @@ $(document).ready( function() {
});
});
</script>
{/literal}
{$execution_stats}
{% endraw %}
{{execution_stats}}

@ -1,32 +1,32 @@
<meta charset="{$system_charset}" />
<meta charset="{{ system_charset }}" />
<link href="http://www.chamilo.org/documentation.php" rel="Help" />
<link href="http://www.chamilo.org/team.php" rel="author" />
<link href="http://www.chamilo.org" rel="Copyright" />
{$favico}
{* This fires some HTML5 errors *}
{* <link rel="top" href="{$_p.web_main}index.php" title="" />
<link rel="courses" href="{$_p.web_main}auth/courses.php" title="{"OtherCourses"|get_lang}"/>
<link rel="profil" href="{$_p.web_main}auth/profile.php" title="{"ModifyProfile"|get_lang}"/> *}
<meta name="Generator" content="{$_s.software_name} {$_s.system_version|substr:0:1}" />
{* Use the latest engine in ie8/ie9 or use google chrome engine if available *}
{{ favico }}
{# This fires some HTML5 errors #}
{# <link rel="top" href="{{ _p.web_main}}index.php" title="" />
<link rel="courses" href="{{ _p.web_main}}auth/courses.php" title="{{"OtherCourses"|get_lang}}"/>
<link rel="profil" href="{{ _p.web_main}}auth/profile.php" title="{{"ModifyProfile"|get_lang}}"/> #}
<meta name="Generator" content="{{ _s.software_name}} {# $_s.system_version|substr:0:1 #}" />
{# Use the latest engine in ie8/ie9 or use google chrome engine if available #}
<!--[if ie]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
{* Improve usability in portal devices*}
{# Improve usability in portal devices #}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{$title_string}</title>
<title>{{ title_string}}</title>
<style type="text/css" media="screen">
/*<![CDATA[*/
{$css_style}
{{ css_style}}
/*]]>*/
</style>
<style type="text/css" media="print">
/*<![CDATA[*/
{$css_style_print}
{{ css_style_print}}
/*]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
// This is a patch for the "__flash__removeCallback" bug, see FS#4378.
{literal}
{% raw %}
if ((navigator.userAgent.toLowerCase().indexOf('msie') != -1 ) && ( navigator.userAgent.toLowerCase().indexOf('opera') == -1 )) {
window.attachEvent( 'onunload', function() {
window['__flash__removeCallback'] = function ( instance, name ) {
@ -39,20 +39,20 @@ if ((navigator.userAgent.toLowerCase().indexOf('msie') != -1 ) && ( navigator.us
} ;
});
}
{/literal}
{% endraw %}
//]]>
/* Global chat variables */
var ajax_url = '{$_p.web_ajax}chat.ajax.php';
var online_button = '{$online_button}';
var offline_button = '{$offline_button}';
var connect_lang = '{"ChatConnected"|get_lang}';
var disconnect_lang = '{"ChatDisconnected"|get_lang}';
var ajax_url = '{{ _p.web_ajax}}chat.ajax.php';
var online_button = '{{ online_button}}';
var offline_button = '{{ offline_button}}';
var connect_lang = '{{"ChatConnected"|get_lang}}';
var disconnect_lang = '{{"ChatDisconnected"|get_lang}}';
</script>
{$js_file_to_string}
{$css_file_to_string}
{$extra_headers}
{{ js_file_to_string}}
{{ css_file_to_string}}
{{ extra_headers}}
<script type="text/javascript">
@ -135,4 +135,4 @@ $(document).ready(function() {
});*/
});
</script>
{$header_extra_content}
{{ header_extra_content}}

@ -1,69 +1,70 @@
{if !(empty($hot_courses)) }
{% if hot_courses is not null %}
<script type="text/javascript">
$(document).ready( function() {
$('.star-rating li a').live('click', function(event) {
var id = $(this).parents('ul').attr('id');
$('#vote_label2_' + id).html("{'Loading'|get_lang}");
$.ajax({
url: $(this).attr('data-link'),
success: function(data) {
$("#rating_wrapper_"+id).html(data);
if(data == 'added') {
//$('#vote_label2_' + id).html("{'Saved'|get_lang}");
}
if(data == 'updated') {
//$('#vote_label2_' + id).html("{'Saved'|get_lang}");
}
<script type="text/javascript">
$(document).ready( function() {
$('.star-rating li a').live('click', function(event) {
var id = $(this).parents('ul').attr('id');
$('#vote_label2_' + id).html("{{'Loading'|get_lang}}");
$.ajax({
url: $(this).attr('data-link'),
success: function(data) {
$("#rating_wrapper_"+id).html(data);
if(data == 'added') {
//$('#vote_label2_' + id).html("{{'Saved'|get_lang}}");
}
});
});
if(data == 'updated') {
//$('#vote_label2_' + id).html("{{'Saved'|get_lang}}");
}
}
});
});
</script>
});
</script>
<section id="hot_courses">
<div class="row">
<div class="span9">
<div class="page-header">
<h3>{"HottestCourses"|get_lang}</h3>
<h3>{{"HottestCourses"|get_lang}}</h3>
</div>
</div>
{foreach $hot_courses as $hot_course}
{% for hot_course in hot_courses %}
<div class="span9">
<div class="well_border">
<div class="row">
<div class="span2">
<div class="thumbnail">
<img src="{$hot_course.extra_info.course_image}" />
{* html_image file=$hot_course.extra_info.course_image *}
<img src="{{ hot_course.extra_info.course_image}}" />
{# html_image file=$hot_course.extra_info.course_image #}
</div>
</div>
<div class="span6">
<div class="categories-course-description">
<h3>{$hot_course.extra_info.name|truncate:60}</h3>
{$hot_course.extra_info.rating_html}
<h3>{{hot_course.extra_info.name}}</h3>
{{ hot_course.extra_info.rating_html}}
</div>
<p>
{* World *}
{if ($hot_course.extra_info.visibility == 3 OR ($hot_course.extra_info.visibility == 2 AND $_u.logged == 1 ))}
<a class="btn btn-primary" title="" href="{$_p.web_course}{$hot_course.extra_info.path}/index.php">
{"GoToCourse"|get_lang}
{# World #}
{% if hot_course.extra_info.visibility == 3 or (hot_course.extra_info.visibility == 2 and _u.logged == 1 ) %}
<a class="btn btn-primary" title="" href="{{_p.web_course}} {{hot_course.extra_info.path}}/index.php">
{{"GoToCourse"|get_lang}}
</a>
{/if}
{% endif %}
{* Description *}
{if ($hot_course.extra_info.visibility == 3)}
<a class="ajax btn" title="" href="{$_p.web_ajax}course_home.ajax.php?a=show_course_information&code={$hot_course.course_code}">
{"Description"|get_lang}
{# Description #}
{% if hot_course.extra_info.visibility == 3 %}
<a class="ajax btn" title="" href="{{ _p.web_ajax}}course_home.ajax.php?a=show_course_information&code={{hot_course.course_code}}">
{{"Description"|get_lang}}
</a>
{/if}
{% endif %}
</p>
</div>
</div>
</div>
</div>
{/foreach}
{% endfor %}
</div>
</section>
{/if}
{% endif %}

@ -1,39 +1,40 @@
{extends file="default/layout/main.tpl"}
{* Header *}
{block name="header"}
{include file="default/layout/main_header.tpl"}
{/block}
{* 1 column *}
{block name=body}
{* Plugin top *}
{% extends "default/layout/main.tpl" %}
{# Header #}
{% block header %}
{% include "default/layout/main_header.tpl" %}
{% endblock %}
{if !empty($plugin_content_top)}
{# 1 column #}
{% block body %}
{# Plugin top #}
{% if plugin_content_top is not null %}
<div id="plugin_content_top" class="span12">
{$plugin_content_top}
{{ plugin_content_top}}
</div>
{/if}
{% endif %}
<div class="span12">
{include file="default/layout/page_body.tpl"}
{if !empty($content)}
{% include "default/layout/page_body.tpl" %}
{% if content is not null %}
<section id="main_content">
{$content}
{{ content}}
</section>
{/if}
{% endif %}
&nbsp;
</div>
{* Plugin bottom *}
{if !empty($plugin_content_bottom)}
{# Plugin bottom #}
{% if plugin_content_bottom is not null %}
<div id="plugin_content_bottom" class="span12">
{$plugin_content_bottom}
{{ plugin_content_bottom }}
</div>
{/if}
{/block}
{% endif %}
{% endblock %}
{* Footer *}
{block name=footer}
{if $show_footer == 1}
{include file="default/layout/main_footer.tpl"}
{/if}
{/block}
{# Footer #}
{% block footer %}
{% if show_footer == 1 %}
{% include "default/layout/main_footer.tpl" %}
{% endif %}
{% endblock %}

@ -1,113 +1,114 @@
{extends file="default/layout/main.tpl"}
{* Header *}
{block name=header}
{if $show_header == 1 }
{include file="default/layout/main_header.tpl"}
{/if}
{/block}
{% extends "default/layout/main.tpl" %}
{block name=body}
{% block header %}
{% if show_header == 1 %}
{% include "default/layout/main_header.tpl" %}
{% endif %}
{% endblock %}
{* Main content*}
{% block body %}
{# Main content #}
{if $show_sniff == 1 }
{include file="default/layout/sniff.tpl"}
{/if}
{% if show_sniff == 1 %}
{% include "default/layout/sniff.tpl" %}
{% endif %}
<div class="span9">
{* Plugin bottom *}
{if !empty($plugin_content_top)}
{# Plugin bottom #}
{% if plugin_content_top is not null %}
<div id="plugin_content_top">
{$plugin_content_top}
{{ plugin_content_top }}
</div>
{/if}
{% endif %}
{* ?? *}
{if !empty($home_page_block)}
{# ?? #}
{% if home_page_block is not null %}
<section id="home_page">
{$home_page_block}
{{ home_page_block}}
</section>
{/if}
{% endif %}
{* ?? *}
{$sniff_notification}
{# ?? #}
{{ sniff_notification }}
{include file="default/layout/page_body.tpl"}
{if !empty($content)}
{% include "default/layout/page_body.tpl" %}
{% if content is not null %}
<section id="main_content">
{$content}
{{ content }}
</section>
{/if}
{% endif %}
{* Announcements *}
{if !empty($announcements_block)}
{# Announcements #}
{% if announcements_block is not null %}
<section id="announcements_page">
{$announcements_block}
{{ announcements_block }}
</section>
{/if}
{% endif %}
{* Hot courses template *}
{include file="default/layout/hot_courses.tpl"}
{# Hot courses template #}
{% include "default/layout/hot_courses.tpl" %}
{* Content bottom *}
{if !empty($plugin_content_bottom)}
{# Content bottom #}
{% if plugin_content_bottom is not null %}
<div id="plugin_content_bottom">
{$plugin_content_bottom}
{{plugin_content_bottom}}
</div>
{/if}
{% endif %}
&nbsp;
</div>
{* Right column *}
<div class="span3">
{if !empty($plugin_menu_top)}
{# Right column #}
<div class="span3">
{% if plugin_menu_top is not null %}
<div id="plugin_menu_top">
{$plugin_menu_top}
{{plugin_menu_top}}
</div>
{/if}
{*if user is not login show the login form*}
{if $_u.logged == 0}
{include file="default/layout/login_form.tpl"}
{/if}
{% endif %}
{# if user is not login show the login form #}
{% if _u.logged == 0 %}
{% include "default/layout/login_form.tpl" %}
{% endif %}
{* My account - user picture *}
{$profile_block}
{$account_block}
{$teacher_block}
{# My account - user picture #}
{{ profile_block }}
{{ account_block }}
{{ teacher_block }}
{* Notices *}
{$notice_block}
{# Notices #}
{{ notice_block }}
{* Links that are not added in the tabs*}
{$navigation_course_links}
{# Links that are not added in the tabs #}
{{ navigation_course_links }}
{* Reservation block *}
{$reservation_block}
{# Reservation block #}
{{ reservation_block }}
{* Search (xapian)*}
{$search_block}
{# Search (xapian) #}
{{ search_block }}
{* Classes *}
{$classes_block}
{# Classes #}
{{ classes_block }}
{* Skills*}
{$skills_block}
{# Skills #}
{{ skills_block }}
{* Plugin courses sidebar *}
{* Plugins for footer section *}
{if !empty($plugin_menu_bottom)}
{# Plugin courses sidebar #}
{# Plugins for footer section #}
{% if plugin_menu_bottom is not null %}
<div id="plugin_menu_bottom">
{$plugin_menu_bottom}
{{ plugin_menu_bottom }}
</div>
{/if}
{% endif %}
</div>
{/block}
{% endblock %}
{* Footer *}
{block name=footer}
{if $show_footer == 1 }
{include file="default/layout/main_footer.tpl"}
{/if}
{/block}
{% block footer %}
{% if show_footer == 1 %}
{% include "default/layout/main_footer.tpl" %}
{% endif %}
{% endblock %}

@ -1,23 +1,24 @@
<div id="menu" class="menu well">
<div class="menusection">
<span class="menusectioncaption">
{"Login"|get_lang}
{{"Login"|get_lang}}
</span>
</div>
{$login_language_form}
{if !empty($plugin_login_top)}
{{ login_language_form }}
{% if plugin_login_top is not null %}
<div id="plugin_login_top">
{$plugin_login_top}
{{ plugin_login_top }}
</div>
{/if}
{$login_form}
{$login_failed}
{$login_options}
{% endif %}
{if !empty($plugin_login_bottom)}
{{login_form}}
{{login_failed}}
{{login_options}}
{% if plugin_login_bottom is not null %}
<div id="plugin_login_bottom">
{$plugin_login_bottom}
</div>
{/if}
{% endif %}
</div>

@ -1,7 +1,8 @@
{block name="header"}{/block}
{% block header %}
{% endblock %}
{* body *}
{block name="body"}{/block}
{% block body %}
{% endblock %}
{* footer *}
{block name="footer"}{/block}
{% block footer %}
{% endblock %}

@ -2,6 +2,6 @@
</div> <!-- end of #main" -->
<div class="push"></div>
</div> <!-- end of #wrapper section -->
{include file="default/layout/footer.tpl"}
{% include "default/layout/footer.tpl" %}
</body>
</html>

@ -1,101 +1,98 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="{$document_language}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="{$document_language}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="{$document_language}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{$document_language}" class="no-js"> <!--<![endif]-->
<!--[if lt IE 7]> <html lang="{{ document_language }}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="{{ document_language }}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="{{ document_language }}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{{ document_language }}" class="no-js"> <!--<![endif]-->
<head>
{* <script type="text/javascript" src="http://fbug.googlecode.com/svn/lite/branches/firebug1.4/content/firebug-lite-dev.js"></script> *}
{include file="default/layout/head.tpl"}
{% include "default/layout/head.tpl" %}
</head>
<body dir="{$text_direction}" class="{$section_name}">
<noscript>{"NoJavascript"|get_lang}</noscript>
{if $show_header}
<body dir="{{ text_direction }}" class="{{ section_name }}">
<noscript>{{"NoJavascript"|get_lang}}</noscript>
{% if show_header %}
<div class="skip">
<ul>
<li><a href="#menu">{"WCAGGoMenu"|get_lang}</a></li>
<li><a href="#content" accesskey="2">{"WCAGGoContent"|get_lang}</a></li>
<li><a href="#menu">{{"WCAGGoMenu"|get_lang}}</a></li>
<li><a href="#content" accesskey="2">{{"WCAGGoContent"|get_lang}}</a></li>
</ul>
</div>
<div id="wrapper">
{* Bug and help notifications *}
<div id="wrapper">
{# Bug and help notifications #}
<ul id="navigation" class="notification-panel">
{$help_content}
{$bug_notification_link}
{{ help_content }}
{{ bug_notification_link }}
</ul>
{* topbar *}
{include file="default/layout/topbar.tpl"}
{# topbar #}
{% include "default/layout/topbar.tpl" %}
<div id="main" class="container">
<header>
<div class="row">
<div id="header_left" class="span4">
{* logo *}
{$logo}
{# logo #}
{{ logo }}
{* plugin_header *}
{if !empty($plugin_header_left)}
{# plugin_header #}
{% if plugin_header_left is not null %}
<div id="plugin_header_left">
{$plugin_header_left}
{{ plugin_header_left }}
</div>
{/if}
{% endif %}
</div>
<div id="header_center" class="span3">
{* plugin_header *}
{if !empty($plugin_header_center)}
{# plugin_header #}
{% if plugin_header_center is not null %}
<div id="plugin_header_center">
{$plugin_header_center}
{{ plugin_header_center }}
</div>
{/if}
{% endif %}
&nbsp;
</div>
<div id="header_right" class="span5">
{* header right (notifications) *}
{# header right (notifications) #}
<ul id="notifications" class="nav nav-pills pull-right">
{$notification_menu}
{{ notification_menu }}
</ul>
{* plugin_header *}
{if !empty($plugin_header_right)}
{# plugin_header #}
{% if plugin_header_right is not null %}
<div id="plugin_header_right">
{$plugin_header_right}
{{ plugin_header_right }}
</div>
{/if}
{% endif %}
&nbsp;
</div>
</div>
{if !empty($plugin_header_main)}
{% if plugin_header_main is not null %}
<div class="row">
<div class="span12">
<div id="plugin_header_main">
{$plugin_header_main}
{{ plugin_header_main }}
</div>
</div>
</div>
{/if}
{% endif %}
</header>
{* menu *}
{if $menu}
{# menu #}
{% if menu is not null %}
<div class="subnav">
{$menu}
{{ menu }}
</div>
{/if}
{% endif %}
{* breadcrumb *}
{$breadcrumb}
{# breadcrumb #}
{{ breadcrumb}}
<div class="row">
{if !empty($show_course_shortcut) }
<div class="row">
{% if show_course_shortcut is not null %}
<div class="span12">
{$show_course_shortcut}
{{ show_course_shortcut }}
</div>
{/if}
{if !empty($show_course_navigation_menu) }
{% endif %}
{% if show_course_navigation_menu is not null %}
<script type="text/javascript">
/* <![CDATA[ */
@ -138,20 +135,20 @@
if (center_el) {
center_el.style.margin = '0 190px 0 0';
}
swap_menu_link_el.innerHTML = '{'Hide'|get_lang}';
swap_menu_link_el.innerHTML = '{{'Hide'|get_lang}}';
createCookie('menu_state',1,10);
} else {
toolnavlist_el.style.display = 'none';
if (center_el) {
center_el.style.margin = '0 0 0 0';
}
swap_menu_link_el.innerHTML = '{'Show'|get_lang}';
swap_menu_link_el.innerHTML = '{{'Show'|get_lang}}';
createCookie('menu_state',0,10);
}
}
document.write('<div class="span12 pull-right"> <a class="btn" href="javascript: void(0);" id="swap_menu_link" onclick="javascript: swap_menu();">{'Hide'|get_lang}<\/a></div>');
document.write('<div class="span12 pull-right"> <a class="btn" href="javascript: void(0);" id="swap_menu_link" onclick="javascript: swap_menu();">{{'Hide'|get_lang}}<\/a></div>');
/* ]]> */
</script>
{$show_course_navigation_menu}
{/if}
{/if}
{{ show_course_navigation_menu }}
{% endif %}
{% endif %}

@ -1,15 +1,16 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="{$document_language}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="{$document_language}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="{$document_language}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{$document_language}" class="no-js"> <!--<![endif]-->
<!--[if lt IE 7]> <html lang="{{document_language}}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html lang="{{document_language}}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html lang="{{document_language}}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{{document_language}}" class="no-js"> <!--<![endif]-->
<head>
{include file="default/layout/head.tpl"}
{% include "default/layout/head.tpl" %}
</head>
<body dir="{$text_direction}" class="{$section_name}">
{block name="header"}{/block}
{block name="body"}
{$content}
{/block}
<body dir="{{text_direction}}" class="{{section_name}}">
{% block name%}
{% endblock %}
{% block body %}
{{content}}
{% endblock %}
</body>
</html>

@ -1,20 +1,20 @@
{* Actions *}
{if (!empty($actions)) }
{# Actions #}
{% if actions is not null %}
<div class="actions">
{$actions}
{{ actions }}
</div>
{/if}
{% endif %}
{* Page header*}
{if !empty($header) }
{# Page header #}
{% if header is not null %}
<div class="page-header">
<h1>{$header}</h1>
<h1>{{ header }}</h1>
</div>
{/if}
{% endif %}
{* Show messages*}
{if !empty($message) }
{# Show messages #}
{% if message is not null %}
<section id="messages">
{$message}
{{ message}}
</section>
{/if}
{% endif %}

@ -1,16 +1,16 @@
{*
{#
show_header and show_footer templates are only called when using the Display::display_header and Display::display_footer
for backward compatibility we suppose that the default layout is one column which means using a div with class span12
*}
{if $show_header}
#}
{% if show_header is not null %}
</section>
</div>
{/if}
{% endif %}
{* Plugin bottom *}
{if !empty($plugin_content_bottom)}
{# Plugin bottom #}
{% if plugin_content_bottom is not null %}
<div id="plugin_content_bottom" class="span12">
{$plugin_content_bottom}
{{ plugin_content_bottom}}
</div>
{/if}
{include file="default/layout/main_footer.tpl"}
{% endif %}
{% include "default/layout/main_footer.tpl" %}

@ -1,15 +1,15 @@
{*
{#
show_header and show_footer templates are only called when using the Display::display_header and Display::display_footer
for backward compatibility we suppose that the default layout is one column which means using a div with class span12
*}
{include file="default/layout/main_header.tpl"}
{if $show_header}
{if !empty($plugin_content_top)}
#}
{% include "default/layout/main_header.tpl" %}
{% if show_header is not null%}
{% if plugin_content_top is not null %}
<div id="plugin_content_top" class="span12">
{$plugin_content_top}
{{ plugin_content_top }}
</div>
{/if}
{% endif %}
<div class="span12">
{include file="default/layout/page_body.tpl"}
{% include "default/layout/page_body.tpl" %}
<section id="main_content">
{/if}
{% endif %}

@ -1,4 +1,4 @@
{literal}
{% raw %}
<script LANGUAGE="JavaScript">
var nav ="";
var screen_size_w;
@ -113,7 +113,7 @@ function sendSniff(){
document.sniff_nav_form.submit();
}
</script>
{/literal}
{% endraw %}
<form name="sniff_nav_form" method="POST">
<input type="hidden" name="sniff_navigator">
@ -127,8 +127,8 @@ function sendSniff(){
<input type="hidden" name="sniff_navigator_java">
<input type="hidden" name="sniff_navigator_java_sun_ver">
</form>
{if empty($smarty.post.sniff_navigator) }
{#
<script>
sendSniff();
</script>
{/if}
#}

@ -1,11 +1,11 @@
<div class="row">
<div class="span3">
{$social_left_content}
{$social_left_menu}
{{ social_left_content }}
{{ social_left_menu }}
</div>
<div class="span9">
<div class="row">
{$social_right_content}
{{ social_right_content}}
<div class="span9" id="display_response_id"></div>
</div>
</div>

@ -1,5 +1,5 @@
<!-- Topbar -->
{if $show_toolbar == 1}
{% if show_toolbar == 1 %}
<div id="topbar" class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container-fluid">
@ -8,73 +8,73 @@
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="{$_p.web}">{"siteName"|api_get_setting}</a>
<a class="brand" href="{{ _p.web }}">{{"siteName"|get_setting }}</a>
{if $_u.logged}
{% if _u.logged %}
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="{$_p.web}user_portal.php">{"MyCourses"|get_lang}</a></li>
{if 0}
<li class="active"><a href="{{ _p.web }}user_portal.php">{{"MyCourses"|get_lang }}</a></li>
{#
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{'Teaching'|get_lang}<b class="caret"></b></a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Teaching'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{$_p.web_main}create_course/add_course.php">{"AddCourse"|get_lang}</a></li>
<li><a href="{$_p.web_main}auth/courses.php">{"Catalog"|get_lang}</a></li>
<li><a href="{{ _p.web_main }}create_course/add_course.php">{{"AddCourse"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}auth/courses.php">{{"Catalog"|get_lang }}</a></li>
</ul>
</li>
{/if}
#}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{'Tracking'|get_lang}<b class="caret"></b></a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Tracking'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{$_p.web_main}mySpace/">{"CoursesReporting"|get_lang}</a></li>
<li><a href="{$_p.web_main}mySpace/index.php?view=admin">{"AdminReports"|get_lang}</a></li>
<li><a href="{$_p.web_main}tracking/exams.php">{"ExamsReporting"|get_lang}</a></li>
<li><a href="{{ _p.web_main }}mySpace/">{{"CoursesReporting"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}mySpace/index.php?view=admin">{{"AdminReports"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}tracking/exams.php">{{"ExamsReporting"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{$_p.web_main}dashboard/">{"Dashboard"|get_lang}</a></li>
<li><a href="{{ _p.web_main }}dashboard/">{{"Dashboard"|get_lang }}</a></li>
</ul>
</li>
{if $_u.is_admin == 1}
{% if _u.is_admin == 1 %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{'Administration'|get_lang}<b class="caret"></b></a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Administration'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{$_p.web_main}admin/">{"Home"|get_lang}</a></li>
<li><a href="{$_p.web_main}admin/user_list.php">{"UserList"|get_lang}</a></li>
<li><a href="{$_p.web_main}admin/course_list.php">{"CourseList"|get_lang}</a></li>
<li><a href="{$_p.web_main}admin/session_list.php">{"SessionsList"|get_lang}</a></li>
<li><a href="{$_p.web_main}admin/settings.php">{"Settings"|get_lang}</a></li>
<li><a href="{{ _p.web_main }}admin/">{{"Home"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/user_list.php">{{"UserList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/course_list.php">{{"CourseList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/session_list.php">{{"SessionsList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/settings.php">{{"Settings"|get_lang }}</a></li>
</ul>
</li>
{/if}
{% endif %}
</ul>
{/if}
{% endif %}
{if $_u.is_admin == 1}
<form class="navbar-search pull-left" action="{$_p.web_main}admin/user_list.php" method="get">
<input type="text" class="search-query span2" placeholder="{'SearchUsers'|get_lang}" name="keyword">
{% if _u.is_admin == 1 %}
<form class="navbar-search pull-left" action="{{ _p.web_main }}admin/user_list.php" method="get">
<input type="text" class="search-query span2" placeholder="{{'SearchUsers'|get_lang }}" name="keyword">
</form>
{/if}
{% endif %}
{if $_u.logged}
{% if _u.logged %}
<ul class="nav pull-right">
<li><a href="{$_p.web_main}social/home.php"><img src="{$_u.avatar_small}"/></a></li>
<li><a href="{{ _p.web_main }}social/home.php"><img src="{{ _u.avatar_small }}"/></a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{$_u.complete_name}<b class="caret"></b></a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ _u.complete_name }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{$_p.web_main}social/home.php">{"Profile"|get_lang}</a></li>
<li><a href="{$_p.web_main}calendar/agenda_js.php?type=personal">{"MyAgenda"|get_lang}</a></li>
<li><a href="{$_p.web_main}messages/inbox.php">{"Messages"|get_lang}</a></li>
<li><a href="{$_p.web_main}auth/my_progress.php">{"MyReporting"|get_lang}</a></li>
<li><a href="{{ _p.web_main }}social/home.php">{{"Profile"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}calendar/agenda_js.php?type=personal">{{"MyAgenda"|get_lang }}}</a></li>
<li><a href="{{ _p.web_main }}messages/inbox.php">{{"Messages"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}auth/my_progress.php">{{"MyReporting"|get_lang }}</a></li>
<!--<li class="divider"></li>
<li><a href="{$_p.web_main}social/invitations.php">{"PendingInvitations"|get_lang}</a></li> -->
<li><a href="{{ _p.web_main }}social/invitations.php">{{"PendingInvitations"|get_lang }}</a></li> -->
</ul>
</li>
<li><a href="{$_p.web}index.php?logout=logout">{"Logout"|get_lang}</a></li>
<li><a href="{{ _p.web }}index.php?logout=logout">{{"Logout"|get_lang }}</a></li>
</ul>
{/if}
{% endif %}
</div>
</div> <!-- /container-->
</div><!-- /navbar-inner -->
</div><!-- /navbar -->
<div id="topbar_push"></div>
{/if}
{% endif %}

@ -2,11 +2,11 @@
$(document).ready( function() {
$("#skills").fcbkcomplete({
json_url: "{$url}?a=find_skills",
json_url: "{{url}}?a=find_skills",
cache: false,
filter_case: false,
filter_hide: true,
complete_text:"{'StartToType'|get_lang}",
complete_text:"{{'StartToType'|get_lang}}",
firstselected: true,
//onremove: "testme",
onselect:"check_skills",
@ -36,10 +36,10 @@ $(document).ready( function() {
var params = $("#save_profile_form").serialize();
$.ajax({
url: '{$url}?a=save_profile&'+params,
url: '{{url}}?a=save_profile&'+params,
success:function(data) {
$("#dialog-form").dialog("close");
alert("{"Saved"|get_lang}");
alert("{{"Saved"|get_lang}}");
}
});
},
@ -63,11 +63,11 @@ function check_skills() {
var skill_id = $(this).val();
if (skill_id != "" ) {
$.ajax({
url: "{$url}?a=skill_exists",
url: "{{url}}?a=skill_exists",
data: "skill_id="+skill_id,
success: function(return_value) {
if (return_value == 0 ) {
alert("{'SkillDoesNotExist'|get_lang}");
alert("{{'SkillDoesNotExist'|get_lang}}");
//Deleting select option tag
$("#skills option[value="+skill_id+"]").remove();
//Deleting holder
@ -95,87 +95,86 @@ function checkLength( o, n, min, max ) {
}
}
</script>
{$form}
{{form}}
{if !empty($search_skill_list) }
{% if search_skill_list is not null %}
<div class="skills-skills">
<h3>{"Skills"|get_lang}</h3>
<h3>{{"Skills"|get_lang}}</h3>
<ul class="holder">
{foreach $search_skill_list as $search_skill_id}
{% for search_skill_id in search_skill_list %}
<li class="bit-box">
{$skill_list[$search_skill_id].name}
<a class="closebutton" href="?a=remove_skill&id={$search_skill_id}"></a>
{{ skill_list[search_skill_id].name}}
<a class="closebutton" href="?a=remove_skill&id={{search_skill_id}}"></a>
</li>
{/foreach}
{% endfor %}
</ul>
<a id="add_profile" class="btn" href="#"> {"SaveThisSearch"|get_lang}</a>
<a id="add_profile" class="btn" href="#"> {{"SaveThisSearch"|get_lang}}</a>
</div>
{/if}
{% endif %}
{if !empty($profiles) }
{% if profiles is not null %}
<div class="skills-profiles">
<h3>{"SkillProfiles"|get_lang}</h3>
<h3>{{"SkillProfiles"|get_lang}}</h3>
<ul class="holder">
{foreach $profiles as $profile}
{%for profile in profiles %}
<li class="bit-box">
<a href="?a=load_profile&id={$profile.id}">{$profile.name}</a>
<a href="?a=load_profile&id={{profile.id}}">{{profile.name}}</a>
</li>
{/foreach}
{% endfor %}
</ul>
</div>
{/if}
{% endif %}
{if !empty($order_user_list) }
{% if order_user_list is not null %}
<div class="skills-users">
{foreach $order_user_list as $count => $user_list}
<h2> {"Matches"|get_lang} {$count}/{$total_search_skills} </h2>
{foreach $user_list as $user}
{% for count, user_list in order_user_list %}
<h2> {{"Matches"|get_lang}} {{count}}/{{total_search_skills}} </h2>
{% for user in user_list %}
<div class="ui-widget" style="width:400px">
<div class="ui-widget-header">
<h3>
<img src="{$user['user'].avatar_small}" /> {$user['user'].complete_name} ({$user['user'].username})
<img src="{{user.user.avatar_small}}" /> {{user['user'].complete_name}} ({{user['user'].username}})
</h3>
</div>
<div class="ui-widget-content ">
<h4>{"Skills"|get_lang} {$user.total_found_skills} / {$total_search_skills}</h4>
<h4>{{"Skills"|get_lang}} {{user.total_found_skills}} / {{total_search_skills}}</h4>
<ul>
{foreach $user['skills'] as $skill_data}
{% for skill_data in user.skills %}
<li>
{if !empty({$skill_list[$skill_data.skill_id].name})}
<span class="label_tag skill">{$skill_list[$skill_data.skill_id].name}</span>
{else}
{"SkillNotFound"|get_lang}
{/if}
{if $skill_data.found}
*{"IHaveThisSkill"|get_lang}*
{/if}
{% if skill_list[skill_data.skill_id].name is not null %}
<span class="label_tag skill">{{skill_list[skill_data.skill_id].name}}</span>
{% else %}
{{"SkillNotFound"|get_lang}}
{% endif %}
{# if $skill_data.found
IHaveThisSkill"|get_lang
#}
</li>
{/foreach}
{% endfor %}
</ul>
</div>
</div>
{/foreach}
{/foreach}
{% endfor %}
{% endfor %}
</div>
{else}
{if !empty($search_skill_list) }
<div class="warning-message">{"NoResults"|get_lang}</div>
{/if}
{/if}
{% else %}
{% if search_skill_list is null %}
<div class="warning-message">{{"NoResults"|get_lang}}</div>
{% endif %}
{% endif %}
<div id="dialog-form" style="display:none;">
<form id="save_profile_form" class="form-horizontal" name="form">
<fieldset>
<div class="control-group">
<label class="control-label" for="name">{"Name"|get_lang}</label>
<label class="control-label" for="name">{{"Name"|get_lang}}</label>
<div class="controls">
<input type="text" name="name" id="name" size="40" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{"Description"|get_lang}</label>
<label class="control-label" for="name">{{"Description"|get_lang}}</label>
<div class="controls">
<textarea name="description" id="description" class="span2" rows="7"></textarea>
</div>

@ -20,7 +20,7 @@ body {
<script type="text/javascript">
//js settings
var url = '{$url}';
var url = '{{url}}';
var skills = []; //current window divs
var parents = []; //list of parents normally there should be only 2
var hidden_parent = '';
@ -28,17 +28,17 @@ var duration_value = 500;
//Block settings see the SkillVisualizer Class
var offset_x = {$skill_visualizer->offset_x};
var offset_y = {$skill_visualizer->offset_y};
var space_between_blocks_x = {$skill_visualizer->space_between_blocks_x};
var space_between_blocks_y = {$skill_visualizer->space_between_blocks_y};
var center_x = {$skill_visualizer->center_x};
var block_size = {$skill_visualizer->block_size};
var offset_x = {{skill_visualizer.offset_x}};
var offset_y = {{skill_visualizer.offset_y}};
var space_between_blocks_x = {{skill_visualizer.space_between_blocks_x}};
var space_between_blocks_y = {{skill_visualizer.space_between_blocks_y}};
var center_x = {{skill_visualizer.center_x}};
var block_size = {{skill_visualizer.block_size}};
//Setting the parent by default
var parents = ['block_1'];
jsPlumb.bind("ready", function() {
jsPlumb.ready(function() {
//Open dialog
$("#dialog-form").dialog({
@ -50,7 +50,7 @@ jsPlumb.bind("ready", function() {
//Filling skills select
/*
$.getJSON("{$url}&a=get_skills&parent_id="+parents[0], {},
$.getJSON("{{url}}&a=get_skills&parent_id="+parents[0], {},
function(data) {
$.each(data, function(n, parent) {
// add a new option with the JSON-specified value and text
@ -60,7 +60,7 @@ jsPlumb.bind("ready", function() {
);*/
//Filling gradebook select
$.getJSON("{$url}&a=get_gradebooks", {},
$.getJSON("{{url}}&a=get_gradebooks", {},
function(data) {
$.each(data, function(n, gradebook) {
// add a new option with the JSON-specified value and text
@ -87,7 +87,8 @@ jsPlumb.bind("ready", function() {
//Remove all options
$("#parent_id").find('option').remove();
$.getJSON("{$url}&a=get_skills&id="+my_id, {},
$.getJSON("{{url}}&a=get_skills&id="+my_id, {
},
function(data) {
$.each(data, function(n, parent) {
// add a new option with the JSON-specified value and text
@ -95,7 +96,7 @@ jsPlumb.bind("ready", function() {
});
}
);
});
});
var name = $( "#name" ),
description = $( "#description" ),
@ -107,7 +108,7 @@ jsPlumb.bind("ready", function() {
$("#dialog-form").dialog({
buttons: {
"{"Add"|get_lang}" : function() {
"{{"Add"|get_lang}}" : function() {
var bValid = true;
bValid = bValid && checkLength( name, "name", 1, 255 );
@ -244,47 +245,34 @@ jsPlumb.bind("ready", function() {
;(function() {
prepare = function(elId, endpoint) {
console.log('preparing = '+elId);
console.log('endpoint = '+endpoint);
jsPlumbDemo.initHover(elId);
prepare = function(div, endpointOptions) {
console.log('preparing = '+div);
console.log('endpointOptions = '+endpointOptions);
//jsPlumbDemo.initHover(elId);
//jsPlumbDemo.initAnimation(elId);
var e = jsPlumb.addEndpoint(elId, endpoint);
var endPoint = jsPlumb.addEndpoint(div, endpointOptions);
//jsPlumbDemo.initjulio(e);
skills.push({
element: elId, endp:e
element: div, endp:endPoint
});
return e;
return endPoint;
},
window.jsPlumbDemo = {
init : function() {
console.log('Import defaults');
jsPlumb.importDefaults({
// default drag options
DragOptions : { cursor: 'pointer', zIndex:2000 },
// default to blue at one end and green at the other
EndpointStyles : [{ fillStyle:'#225588' }, { fillStyle:'#558822' }],
// blue endpoints 7 px; green endpoints 11.
Endpoints : [ [ "Dot", {
radius:7
} ], [ "Dot", { radius:11 } ]],
// the overlays to decorate each connection with. note that the label overlay uses a function to generate the label text; in this
// case it returns the 'labelText' member that we set on each connection in the 'init' method below.
ConnectionOverlays : [
[ "Arrow", { location:0.9 } ],
[ "Label", {
location:0.1,
id:"label",
cssClass:"aLabel"
}]
]
});
jsPlumb.Defaults.Anchors = [ "LeftMiddle", "BottomRight" ];
/*jsPlumb.Defaults.PaintStyle = { strokeStyle:'#666' };
jsPlumb.Defaults.EndpointStyle = { width:20, height:16, strokeStyle:'#666' };
jsPlumb.Defaults.Endpoint = "Rectangle";
jsPlumb.Defaults.Anchors = ["TopCenter", "TopCenter"];*/
/*
// this is the paint style for the connecting lines..
var connectorPaintStyle = {
lineWidth:5,
@ -373,10 +361,14 @@ jsPlumb.bind("ready", function() {
uuids:["window4BottomCenter", "window1TopCenter"]});
jsPlumb.connect({
uuids:["window3BottomCenter", "window1BottomCenter"]});
*/
//jsPlumb.setMouseEventsEnabled(true);
open_block('block_1', 0);
// make all the window divs draggable
jsPlumb.draggable($(".window"));
{* $js *}
// listen for clicks on connections, and offer to delete connections on click.
@ -384,6 +376,8 @@ jsPlumb.bind("ready", function() {
if (confirm("Delete connection from " + conn.sourceId + " to " + conn.targetId + "?"))
jsPlumb.detach(conn);
});
}
};
})();
@ -411,7 +405,7 @@ $(document).ready( function() {
$(".chzn-select").chosen();
$("#menu").draggable();
//open_block('block_0');
});
@ -446,22 +440,14 @@ $(document).ready( function() {
</script>
<div id="menu" class="well" style="top:20px; left:20px; width:300px; z-index: 9000; opacity: 0.9;">
<h3>{'Skills'|get_lang}</h3>
<h3>{{'Skills'|get_lang}}</h3>
<div class="btn-group">
<a style="z-index: 1000" class="btn" id="add_item_link" href="#">{'AddSkill'|get_lang}</a>
<a style="z-index: 1000" class="btn" id="return_to_admin" href="{$_p.web_main}admin">{'BackToAdmin'|get_lang}</a>
<a style="z-index: 1000" class="btn" id="add_item_link" href="#">{{'AddSkill'|get_lang}}</a>
<a style="z-index: 1000" class="btn" id="return_to_admin" href="{{_p.web_main}}admin">{{'BackToAdmin'|get_lang}}</a>
</div>
</div>
<div id="demo">
<div class="window" id="window1"><strong>1</strong><br/><br/></div>
<div class="window" id="window2"><strong>2</strong><br/><br/></div>
<div class="window" id="window3"><strong>3</strong><br/><br/></div>
<div class="window" id="window4"><strong>4</strong><br/><br/></div>
</div>
{* $html *}
{# $html #}
<div id="dialog-form" style="display:none; z-index:9001;">
<p class="validateTips"></p>
@ -469,30 +455,30 @@ $(document).ready( function() {
<fieldset>
<input type="hidden" name="id" id="id"/>
<div class="control-group">
<label class="control-label" for="name">{'Name'|get_lang}</label>
<label class="control-label" for="name">{'Name'|get_lang}}</label>
<div class="controls">
<input type="text" name="name" id="name" size="40" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{'Parent'|get_lang}</label>
<label class="control-label" for="name">{'Parent'|get_lang}}</label>
<div class="controls">
<select id="parent_id" name="parent_id" />
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{'Gradebook'|get_lang}</label>
<label class="control-label" for="name">{'Gradebook'|get_lang}}</label>
<div class="controls">
<select id="gradebook_id" name="gradebook_id[]" multiple="multiple"/>
</select>
<span class="help-block">
{'WithCertificate'|get_lang}
{'WithCertificate'|get_lang}}
</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{'Description'|get_lang}</label>
<label class="control-label" for="name">{'Description'|get_lang}}</label>
<div class="controls">
<textarea name="description" id="description" class="span3" rows="7"></textarea>
</div>

@ -153,15 +153,15 @@ jsPlumb.bind("ready", function() {
;(function() {
prepare = function(elId, endpoint) {
jsPlumbDemo.initHover(elId);
prepare = function(div, endpointOptions) {
//jsPlumbDemo.initHover(elId);
//jsPlumbDemo.initAnimation(elId);
var e = jsPlumb.addEndpoint(elId, endpoint);
jsPlumbDemo.initjulio(e);
var endpoint = jsPlumb.addEndpoint(div, endpointOptions);
//jsPlumbDemo.initjulio(e);
skills.push({
element:elId, endp:e
element:div, endp:endpoint
});
return e;
return endpoint;
},
window.jsPlumbDemo = {
@ -169,11 +169,11 @@ jsPlumb.bind("ready", function() {
},
initHover :function(elId) {
$("#" + elId).click(function() {
/* $("#" + elId).click(function() {
var all = jsPlumb.getConnections({
source:elId
});
});
});*/
/*$("#" + elId).hover(
function() { $(this).addClass("bigdot-hover"); },

@ -1,7 +1,7 @@
<div class="page-header">
<h2>{$work.title}</h2>
<h2>{{ work.title}}</h2>
</div>
<p>
{$work.description}
{{ work.description}}
</p>

@ -1,4 +1,4 @@
{*
{#
This is a Chamilo plugin using Smarty you can use handy shorcuts like:
1. Shortcuts
@ -23,11 +23,11 @@
4. Read more
You can also see more examples in the the main/template/default/layout files
*}
{if $show_user_info.show_message}
#}
{% if show_user_info.show_message is not null %}
<div class="well">
{"Welcome"|get_lang} {$show_user_info.user_info.complete_name} ({$show_user_info.username})
{{"Welcome"|get_lang}} {{show_user_info.user_info.complete_name}} ({{show_user_info.username})
<br />
The administrator - {"siteName"|api_get_setting}
The administrator - {{"siteName"|get_setting}}
</div>
{/if}
{% endif %}
Loading…
Cancel
Save