2018-04-15 22:23:11 +02:00
|
|
|
<!-- TABS -->
|
|
|
|
<ul class="nav nav-tabs" id="dynamicTab" role="tablist">
|
|
|
|
<li class="nav-item">
|
|
|
|
<a class="nav-link active" id="content-tab" data-toggle="tab" href="#content" role="tab" aria-controls="content" aria-selected="true">Content</a>
|
|
|
|
</li>
|
|
|
|
<li class="nav-item">
|
|
|
|
<a class="nav-link" id="images-tab" data-toggle="tab" href="#images" role="tab" aria-controls="images" aria-selected="false">Images</a>
|
|
|
|
</li>
|
|
|
|
<li class="nav-item">
|
|
|
|
<a class="nav-link " id="options-tab" data-toggle="tab" href="#options" role="tab" aria-controls="options" aria-selected="false">Options</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<?php
|
2018-05-08 00:15:40 +02:00
|
|
|
echo Bootstrap::formOpen(array(
|
|
|
|
'id'=>'jsform',
|
|
|
|
'class'=>'tab-content mt-4'
|
|
|
|
));
|
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Token CSRF
|
|
|
|
echo Bootstrap::formInputHidden(array(
|
|
|
|
'name'=>'tokenCSRF',
|
|
|
|
'value'=>$Security->getTokenCSRF()
|
|
|
|
));
|
|
|
|
|
|
|
|
// Parent
|
|
|
|
echo Bootstrap::formInputHidden(array(
|
|
|
|
'name'=>'parent',
|
|
|
|
'value'=>''
|
|
|
|
));
|
|
|
|
|
2018-05-08 00:15:40 +02:00
|
|
|
// UUID
|
|
|
|
echo Bootstrap::formInputHidden(array(
|
|
|
|
'name'=>'uuid',
|
|
|
|
'value'=>$dbPages->generateUUID()
|
|
|
|
));
|
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Status = published, draft, sticky, static
|
|
|
|
echo Bootstrap::formInputHidden(array(
|
|
|
|
'name'=>'status',
|
|
|
|
'value'=>'published'
|
|
|
|
));
|
|
|
|
?>
|
|
|
|
|
|
|
|
<!-- TABS CONTENT -->
|
|
|
|
<div class="tab-pane show active" id="content" role="tabpanel" aria-labelledby="content-tab">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
// Title
|
|
|
|
echo Bootstrap::formInputTextBlock(array(
|
|
|
|
'name'=>'title',
|
|
|
|
'placeholder'=>'Enter title',
|
2018-05-02 19:59:45 +02:00
|
|
|
'class'=>'form-control-lg',
|
|
|
|
'value'=>''
|
2018-04-15 22:23:11 +02:00
|
|
|
));
|
|
|
|
?>
|
|
|
|
|
|
|
|
<div class="form-group mt-2">
|
|
|
|
<div id="jscontent" name="content"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group mt-2">
|
2018-05-08 00:15:40 +02:00
|
|
|
<button type="submit" class="btn btn-primary">Save</button>
|
2018-04-15 22:23:11 +02:00
|
|
|
<button type="button" class="btn" id="jssaveAsDraft">Save as draft</button>
|
2018-05-08 00:15:40 +02:00
|
|
|
<a href="<?php echo HTML_PATH_ADMIN_ROOT ?>dashboard" class="btn"><?php echo $L->g('Cancel') ?></a>
|
2018-04-15 22:23:11 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- TABS IMAGES -->
|
|
|
|
<div class="tab-pane" id="images" role="tabpanel" aria-labelledby="images-tab">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
echo Bootstrap::formTitle(array('title'=>'Select images'));
|
|
|
|
?>
|
|
|
|
|
|
|
|
<button type="button" class="btn" data-toggle="modal" data-target="#jsbluditMediaModal">Media Manager</button>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
echo Bootstrap::formTitle(array('title'=>'Cover image'));
|
|
|
|
?>
|
|
|
|
|
|
|
|
<img class="img-thumbnail" alt="200x200" src="data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%22200%22%20height%3D%22200%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%20200%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%23holder_1627e1b2b7e%20text%20%7B%20fill%3Argba(255%2C255%2C255%2C.75)%3Bfont-weight%3Anormal%3Bfont-family%3AHelvetica%2C%20monospace%3Bfont-size%3A10pt%20%7D%20%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cg%20id%3D%22holder_1627e1b2b7e%22%3E%3Crect%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22%23777%22%3E%3C%2Frect%3E%3Cg%3E%3Ctext%20x%3D%2274.4296875%22%20y%3D%22104.65%22%3E200x200%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E" data-holder-rendered="true" style="width: 100px; height: 100px;">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
echo Bootstrap::formTitle(array('title'=>'External Cover image'));
|
|
|
|
?>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
echo Bootstrap::formInputTextBlock(array(
|
|
|
|
'name'=>'externalCoverImage',
|
|
|
|
'placeholder'=>'https://',
|
2018-05-02 19:59:45 +02:00
|
|
|
'value'=>'',
|
|
|
|
'tip'=>'Set a cover image from external URL, such as a CDN or some server dedicate for images.'
|
2018-04-15 22:23:11 +02:00
|
|
|
));
|
|
|
|
?>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- TABS OPTIONS -->
|
|
|
|
<div class="tab-pane" id="options" role="tabpanel" aria-labelledby="options-tab">
|
|
|
|
<?php
|
2018-05-02 19:59:45 +02:00
|
|
|
echo Bootstrap::formTitle(array('title'=>'General'));
|
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Category
|
|
|
|
echo Bootstrap::formSelect(array(
|
|
|
|
'name'=>'category',
|
|
|
|
'label'=>'Category',
|
|
|
|
'selected'=>'',
|
2018-05-08 00:15:40 +02:00
|
|
|
'options'=>$dbCategories->getKeyNameArray()
|
2018-04-15 22:23:11 +02:00
|
|
|
));
|
|
|
|
|
|
|
|
// Tags
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'tags',
|
|
|
|
'label'=>'Tags',
|
|
|
|
'placeholder'=>'Tags separeted by comma'
|
|
|
|
));
|
|
|
|
|
|
|
|
// Description
|
|
|
|
echo Bootstrap::formTextarea(array(
|
|
|
|
'name'=>'description',
|
|
|
|
'label'=>'Description',
|
|
|
|
'placeholder'=>'Small description about the content',
|
|
|
|
'rows'=>'4'
|
|
|
|
));
|
2018-05-02 19:59:45 +02:00
|
|
|
|
|
|
|
echo Bootstrap::formTitle(array('title'=>'Advanced'));
|
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Date
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'date',
|
|
|
|
'label'=>'Date',
|
2018-05-08 00:15:40 +02:00
|
|
|
'placeholder'=>'YYYY-MM-DD hh:mm:ss',
|
|
|
|
'value'=>Date::current(DB_DATE_FORMAT)
|
2018-04-15 22:23:11 +02:00
|
|
|
));
|
|
|
|
|
|
|
|
// Type
|
|
|
|
echo Bootstrap::formSelect(array(
|
|
|
|
'name'=>'type',
|
|
|
|
'label'=>'Type',
|
|
|
|
'selected'=>'',
|
|
|
|
'options'=>array(
|
|
|
|
''=>'- Default -',
|
|
|
|
'sticky'=>'Sticky',
|
|
|
|
'static'=>'Static'
|
|
|
|
)
|
|
|
|
));
|
|
|
|
|
|
|
|
// Parent
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'parentTMP',
|
|
|
|
'label'=>'Parent',
|
|
|
|
'placeholder'=>'Start writing the title of the page parent'
|
|
|
|
));
|
|
|
|
|
|
|
|
// Position
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'position',
|
|
|
|
'label'=>'Position',
|
|
|
|
'placeholder'=>''
|
|
|
|
));
|
|
|
|
|
|
|
|
// Friendly URL
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'slug',
|
|
|
|
'label'=>'Friendly URL',
|
|
|
|
'placeholder'=>'Leave empty for automaticly complete'
|
|
|
|
));
|
|
|
|
|
|
|
|
// Template
|
|
|
|
echo Bootstrap::formInputText(array(
|
|
|
|
'name'=>'template',
|
|
|
|
'label'=>'Template',
|
|
|
|
'placeholder'=>''
|
|
|
|
));
|
|
|
|
?>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</form>
|
2015-05-05 03:00:01 +02:00
|
|
|
|
|
|
|
<script>
|
2018-04-15 22:23:11 +02:00
|
|
|
$(document).ready(function() {
|
2017-01-10 17:43:38 +01:00
|
|
|
|
|
|
|
// Button Save as draft
|
2018-04-15 22:23:11 +02:00
|
|
|
$("#jssaveAsDraft").on("click", function() {
|
2017-01-10 17:43:38 +01:00
|
|
|
$("#jsstatus").val("draft");
|
2018-05-08 00:15:40 +02:00
|
|
|
$("#jsform").submit();
|
2017-01-10 17:43:38 +01:00
|
|
|
});
|
|
|
|
|
2018-05-08 00:15:40 +02:00
|
|
|
// Type selector modified the status hidden field
|
2018-04-15 22:23:11 +02:00
|
|
|
$("#jstype").on("change", function() {
|
|
|
|
var status = $("#jstype option:selected").val();
|
|
|
|
$("#jsstatus").val(status);
|
|
|
|
});
|
2017-01-10 17:43:38 +01:00
|
|
|
|
2018-05-08 00:15:40 +02:00
|
|
|
// Generate slug when the user type the title
|
|
|
|
$("#jstitle").keyup(function() {
|
|
|
|
var text = $(this).val();
|
|
|
|
var parent = $("#jsparent").val();
|
|
|
|
var currentKey = "";
|
|
|
|
var ajax = new bluditAjax();
|
|
|
|
ajax.generateSlug(text, parent, currentKey, $("#jsslug"));
|
|
|
|
});
|
|
|
|
|
|
|
|
// Autosave interval
|
|
|
|
setInterval(function() {
|
|
|
|
var uuid = $("#jsuuid").val();
|
|
|
|
var title = $("#jstitle").val();
|
|
|
|
var content = editorGetContent();
|
|
|
|
var ajax = new bluditAjax();
|
|
|
|
// showAlert is the function to display an alert defined in alert.php
|
|
|
|
ajax.autosave(uuid, title, content, showAlert);
|
|
|
|
},
|
|
|
|
10*1000
|
|
|
|
);
|
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Template autocomplete
|
|
|
|
$('input[name="template"]').autoComplete({
|
|
|
|
minChars: 2,
|
|
|
|
source: function(term, suggest){
|
|
|
|
term = term.toLowerCase();
|
|
|
|
var choices = ['ActionScript', 'Acti', 'Asp'];
|
|
|
|
var matches = [];
|
|
|
|
for (i=0; i<choices.length; i++)
|
|
|
|
if (~choices[i].toLowerCase().indexOf(term)) matches.push(choices[i]);
|
|
|
|
suggest(matches);
|
2017-01-10 17:43:38 +01:00
|
|
|
}
|
|
|
|
});
|
2015-05-05 03:00:01 +02:00
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
// Parent autocomplete
|
|
|
|
var parentsXHR;
|
|
|
|
var parentsList; // Keep the parent list returned to get the key by the title page
|
|
|
|
$("#jsparentTMP").autoComplete({
|
|
|
|
source: function(term, response) {
|
|
|
|
// Prevent call inmediatly another ajax request
|
|
|
|
try { parentsXHR.abort(); } catch(e){}
|
|
|
|
parentsXHR = $.getJSON("<?php echo HTML_PATH_ADMIN_ROOT ?>ajax/get-parents", {query: term},
|
|
|
|
function(data) {
|
|
|
|
parentsList = data;
|
|
|
|
term = term.toLowerCase();
|
|
|
|
var matches = [];
|
|
|
|
for (var title in data) {
|
|
|
|
if (~title.toLowerCase().indexOf(term))
|
|
|
|
matches.push(title);
|
|
|
|
}
|
|
|
|
response(matches);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
onSelect: function(e, term, item) {
|
|
|
|
var parentKey = parentsList[term];
|
|
|
|
$("#jsparent").attr("value", parentKey);
|
2018-01-21 23:23:22 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2015-05-05 03:00:01 +02:00
|
|
|
});
|
2018-04-15 22:23:11 +02:00
|
|
|
</script>
|
2015-03-27 02:00:01 +01:00
|
|
|
|
2018-04-15 22:23:11 +02:00
|
|
|
<?php
|
|
|
|
// Include Bludit Media Manager
|
|
|
|
include(PATH_ADMIN_THEMES.'booty/html/media.php');
|
2018-05-08 00:15:40 +02:00
|
|
|
?>
|