V2 dev into master #21
@@ -1,4 +1,5 @@
|
|||||||
# NeoCMS
|
# NeoCMS
|
||||||
|
|
||||||
## Version 2.0
|
## Version 2.0
|
||||||
|
|
||||||
Version 2.0 is a complete rewrite to ensure we support the latest jQuery and TinyMCE GPL version.
|
Version 2.0 is a complete rewrite to ensure we support the latest jQuery and TinyMCE GPL version.
|
||||||
@@ -16,6 +17,7 @@ To install:
|
|||||||
* PHP 8 on Linux. None of that Windows Server crap
|
* PHP 8 on Linux. None of that Windows Server crap
|
||||||
|
|
||||||
## Known Bugs
|
## Known Bugs
|
||||||
|
|
||||||
* Templating (New Page) not yet implemented
|
* Templating (New Page) not yet implemented
|
||||||
* File (not images) uploads need to be implemented
|
* File (not images) uploads need to be implemented
|
||||||
* Not completely tested
|
* Not completely tested
|
||||||
|
|||||||
@@ -6,9 +6,61 @@ switch ($_REQUEST["action"]) {
|
|||||||
case "save":
|
case "save":
|
||||||
if (!empty($_POST['uri']) && !empty($_POST['content'])) {
|
if (!empty($_POST['uri']) && !empty($_POST['content'])) {
|
||||||
$_SESSION['core']->saveContent($_POST['uri'], $_POST['content']);
|
$_SESSION['core']->saveContent($_POST['uri'], $_POST['content']);
|
||||||
die("Page Updated.");
|
echo 'Page Updated.';
|
||||||
} else {
|
} else {
|
||||||
die('Unable to save page');
|
echo 'Unable to save page';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getTemplates AJAX call to get list of files
|
||||||
|
*/
|
||||||
|
case "getTemplates":
|
||||||
|
header('Content-type: application/json');
|
||||||
|
$files = array_diff(scandir("../templates/"), array('..', '.'));
|
||||||
|
$returnArray = [];
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$returnArray[] = array("id" => $file, "name" => str_replace(array(".html", ".htm"), "", $file));
|
||||||
|
}
|
||||||
|
echo json_encode($returnArray);
|
||||||
|
break;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* newPage AJAX call to take a template file and create a new page
|
||||||
|
*/
|
||||||
|
case "newPage":
|
||||||
|
header('Content-type: application/json');
|
||||||
|
|
||||||
|
$filename = str_replace("..", "", $_POST['filename']);
|
||||||
|
$template = str_replace("..", "", $_POST['template']);
|
||||||
|
if (!str_ends_with($filename, ".htm") && !str_ends_with($filename, ".html")) {
|
||||||
|
$filename .= ".html";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some vhosts can supply a trailing slash on DOCUMENT_ROOT so tidy it up
|
||||||
|
$destination = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT'] . "/" . $filename);
|
||||||
|
|
||||||
|
|
||||||
|
if (!file_exists("../templates/" . $template)) die(json_encode(array("error" => "Template not found")));
|
||||||
|
if (file_exists($destination)) die(json_encode(array("error" => "Page or file already exists")));
|
||||||
|
|
||||||
|
file_put_contents($destination, file_get_contents("../templates/" . $template));
|
||||||
|
if (!file_exists($destination)) die(json_encode(array("error" => "Template copy failed")));
|
||||||
|
echo json_encode(array("ok" => "DONE_THE_NEEDFUL", "url" => str_replace("//", "/", "/" . $filename)));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "getPages":
|
||||||
|
header('Content-type: application/json');
|
||||||
|
$it = new RecursiveDirectoryIterator("../../");
|
||||||
|
$returnArray = [];
|
||||||
|
foreach (new RecursiveIteratorIterator($it) as $file) {
|
||||||
|
// Strip document root from URI, so relative
|
||||||
|
$file = str_replace($_SERVER["DOCUMENT_ROOT"], "", $file->getRealPath());
|
||||||
|
|
||||||
|
if (!str_starts_with($file, "/cms/") && (str_ends_with($file, ".html") || str_ends_with($file, ".htm")))
|
||||||
|
$returnArray[] = array("name" => $file, "url" => $file);
|
||||||
|
}
|
||||||
|
echo json_encode($returnArray);
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -100,3 +100,72 @@ body {
|
|||||||
position: relative;
|
position: relative;
|
||||||
top: 1px;
|
top: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
New Page Modal
|
||||||
|
*/
|
||||||
|
|
||||||
|
#newPageDialog {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.newpage-content {
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #fefefe;
|
||||||
|
border: 1px solid #888;
|
||||||
|
width: 400px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.newpage-content form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.newpage-content label {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.newpage-content input[type="text"] {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#newPageForm label {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
File List Modal
|
||||||
|
*/
|
||||||
|
|
||||||
|
#fileListDialog {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filelist-content {
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #fefefe;
|
||||||
|
border: 1px solid #888;
|
||||||
|
width: 400px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fileList {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fileList li {
|
||||||
|
padding: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fileList li:hover {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+29
-1
@@ -3,16 +3,20 @@ require_once "neoCMSCore.php";
|
|||||||
require_once "init.php";
|
require_once "init.php";
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="en-gb">
|
||||||
<head>
|
<head>
|
||||||
<title>NeoCMS</title>
|
<title>NeoCMS</title>
|
||||||
<!-- Include jQuery -->
|
<!-- Include jQuery -->
|
||||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||||
|
<script src="https://code.jquery.com/ui/1.14.0/jquery-ui.min.js" crossorigin="anonymous"></script>
|
||||||
<!-- Include TinyMCE -->
|
<!-- Include TinyMCE -->
|
||||||
<script src="/cms/tinymce/tinymce.min.js"></script>
|
<script src="/cms/tinymce/tinymce.min.js"></script>
|
||||||
<!-- Include Bootstrap for modal -->
|
<!-- Include Bootstrap for modal -->
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
|
||||||
|
|
||||||
|
<!-- Include JqueryUI CSS -->
|
||||||
|
<link rel="stylesheet" href="https://code.jquery.com/ui/1.14.0/themes/base/jquery-ui.css">
|
||||||
|
|
||||||
<!-- Include editor styles -->
|
<!-- Include editor styles -->
|
||||||
<link rel="stylesheet" href="/cms/css/editor.css">
|
<link rel="stylesheet" href="/cms/css/editor.css">
|
||||||
|
|
||||||
@@ -58,6 +62,30 @@ require_once "init.php";
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!--New Page modal -->
|
||||||
|
<div id="newPageDialog" title="Create a New Page">
|
||||||
|
<div class="newpage-content">
|
||||||
|
<form id="newPageForm">
|
||||||
|
<div id="radioList">
|
||||||
|
<!-- Radio buttons will be populated here -->
|
||||||
|
</div>
|
||||||
|
<label for="filename">New Filename:</label>
|
||||||
|
<input type="text" id="filename" name="filename" placeholder="Enter new filename" required>
|
||||||
|
|
||||||
|
<button type="submit">Submit</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Page list modal -->
|
||||||
|
<div id="fileListDialog" title="Select an Existing Page">
|
||||||
|
<div class="filelist-content">
|
||||||
|
<ul id="fileList">
|
||||||
|
<!-- File names will be populated here -->
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script src="/cms/js/cms.js"></script>
|
<script src="/cms/js/cms.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
+112
-2
@@ -51,6 +51,7 @@ $(document).ready(function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Save changes made to a div, but not save to the file on the server
|
||||||
$('#saveBtn').click(function () {
|
$('#saveBtn').click(function () {
|
||||||
// Get the data from TinyMCE
|
// Get the data from TinyMCE
|
||||||
var data = tinymce.get('editor').getContent();
|
var data = tinymce.get('editor').getContent();
|
||||||
@@ -69,13 +70,122 @@ $(document).ready(function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Handle Saving changes to the page
|
||||||
$('#savePage').click(() => {
|
$('#savePage').click(() => {
|
||||||
$.post("./controller/", {
|
$.post("/cms/controller/", {
|
||||||
action: "save",
|
action: "save",
|
||||||
uri: $('#frameContainer').contents().get(0).location.pathname,
|
uri: $('#frameContainer').contents().get(0).location.pathname,
|
||||||
content: new XMLSerializer().serializeToString($('#frameContainer').contents().get(0))
|
content: new XMLSerializer().serializeToString($('#frameContainer').contents().get(0))
|
||||||
}, function (data) {
|
}, function (data) {
|
||||||
alert(data)
|
// alert(data)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Show dialog for page templates
|
||||||
|
$("#newPage").click(function () {
|
||||||
|
loadListOfTemplates(); // Call the function to load items when the modal is opened
|
||||||
|
$("#newPageDialog").dialog({
|
||||||
|
modal: true,
|
||||||
|
width: 500,
|
||||||
|
buttons: {
|
||||||
|
Close: function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Handle form submission for creating a new page
|
||||||
|
$("#newPageForm").submit(function (event) {
|
||||||
|
event.preventDefault(); // Prevent the default form submission
|
||||||
|
|
||||||
|
let selectedItemId = $('input[name="item"]:checked').val();
|
||||||
|
let filename = $("#filename").val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/cms/controller/?action=newPage",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
template: selectedItemId,
|
||||||
|
filename: filename
|
||||||
|
},
|
||||||
|
success: function (response) {
|
||||||
|
if (typeof response.error != "undefined") {
|
||||||
|
alert(response.error);
|
||||||
|
} else {
|
||||||
|
$('#frameContainer').contents().get(0).location.href = response.url;
|
||||||
|
$("#newPageForm").dialog("close"); // Close the modal on success
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
alert('Failed to create the new page.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Function to load the items via an AJAX GET request and populate the radio buttons for page templates
|
||||||
|
function loadListOfTemplates() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/cms/controller/?action=getTemplates",
|
||||||
|
method: "GET",
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
let radioList = $('#radioList');
|
||||||
|
radioList.empty(); // Clear previous content
|
||||||
|
data.forEach(function (item, index) {
|
||||||
|
radioList.append(`
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="item" value="${item.id}" ${index === 0 ? 'checked' : ''}>
|
||||||
|
${item.name}
|
||||||
|
</label>
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
alert('Failed to load templates.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to load the list of filenames via AJAX
|
||||||
|
function loadListOfPages() {
|
||||||
|
$.ajax({
|
||||||
|
url: "/cms/controller/?action=getPages", // Replace with your actual API endpoint
|
||||||
|
method: "GET",
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
let fileList = $('#fileList');
|
||||||
|
fileList.empty(); // Clear previous list
|
||||||
|
|
||||||
|
data.forEach(function (file) {
|
||||||
|
fileList.append(`<li data-url="${file.url}">${file.name}</li>`);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add click event to list items to redirect
|
||||||
|
$("#fileList li").click(function () {
|
||||||
|
const fileUrl = $(this).data("url");
|
||||||
|
$('#frameContainer').contents().get(0).location.href = fileUrl; // Redirect to the clicked file's URL
|
||||||
|
$("#fileListDialog").dialog("close"); // Close the modal
|
||||||
|
});
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
alert('Failed to load file list.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle 'Select Page' button
|
||||||
|
$("#selectPage").click(function () {
|
||||||
|
loadListOfPages(); // Call function to load the file list
|
||||||
|
$("#fileList").dialog({
|
||||||
|
modal: true,
|
||||||
|
width: 500,
|
||||||
|
buttons: {
|
||||||
|
Close: function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
+10
-3
@@ -4,8 +4,8 @@ require_once "../init.php";
|
|||||||
// Initialize error message variable
|
// Initialize error message variable
|
||||||
$error = '';
|
$error = '';
|
||||||
|
|
||||||
if(isset($_POST['username']) && isset($_POST['password'])){
|
if (isset($_POST['username']) && isset($_POST['password'])) {
|
||||||
if(!$_SESSION['core']->login($_POST['username'],$_POST['password'])) {
|
if (!$_SESSION['core']->login($_POST['username'], $_POST['password'])) {
|
||||||
$error = "Invalid username or password";
|
$error = "Invalid username or password";
|
||||||
} else {
|
} else {
|
||||||
header("Location:/cms/");
|
header("Location:/cms/");
|
||||||
@@ -24,24 +24,28 @@ if(isset($_POST['username']) && isset($_POST['password'])){
|
|||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
background-color: #eef1f5;
|
background-color: #eef1f5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container {
|
.login-container {
|
||||||
width: 350px;
|
width: 350px;
|
||||||
margin: 100px auto;
|
margin: 100px auto;
|
||||||
padding: 40px;
|
padding: 40px;
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container h2 {
|
.login-container h2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container label {
|
.login-container label {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
color: #555555;
|
color: #555555;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container input[type="text"],
|
.login-container input[type="text"],
|
||||||
.login-container input[type="password"] {
|
.login-container input[type="password"] {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -51,6 +55,7 @@ if(isset($_POST['username']) && isset($_POST['password'])){
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container button {
|
.login-container button {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
@@ -61,9 +66,11 @@ if(isset($_POST['username']) && isset($_POST['password'])){
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-container button:hover {
|
.login-container button:hover {
|
||||||
background-color: #005bb5;
|
background-color: #005bb5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-message {
|
.error-message {
|
||||||
color: #ff4d4d;
|
color: #ff4d4d;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Welcome to NeoCMS</title>
|
||||||
|
<link href="/cms/css/welcome.style.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<img alt="Application Logo" class="logo" src="/cms/img/welcomeLogo.png">
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<h1>Welcome to NeoCMS</h1>
|
||||||
|
<p>This is another example template, found in /cms/templates/ - remove me and replace me with your own site
|
||||||
|
templates!</p>
|
||||||
|
<p class="editable">
|
||||||
|
This box is editable!<br/>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||||
|
Quisque sit amet accumsan tortor. Itaque earum rerum hic tenetur a sapiente delectus.
|
||||||
|
</p>
|
||||||
|
</main>
|
||||||
|
<footer>
|
||||||
|
<p>© 2024 Andy Dixon</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Welcome to NeoCMS</title>
|
||||||
|
<link href="/cms/css/welcome.style.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<img alt="Application Logo" class="logo" src="/cms/img/welcomeLogo.png">
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<h1>Welcome to NeoCMS</h1>
|
||||||
|
<p>This is an example template, found in /cms/templates/ - remove me and replace me with your own site
|
||||||
|
templates!</p>
|
||||||
|
<p class="editable">
|
||||||
|
This box is editable!<br/>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||||
|
Quisque sit amet accumsan tortor. Itaque earum rerum hic tenetur a sapiente delectus.
|
||||||
|
</p>
|
||||||
|
</main>
|
||||||
|
<footer>
|
||||||
|
<p>© 2024 Andy Dixon</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
||||||
'<h1>بدء التنقل بواسطة لوحة المفاتيح</h1>\n' +
|
'<h1>بدء التنقل بواسطة لوحة المفاتيح</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>التركيز على شريط القوائم</dt>\n' +
|
' <dt>التركيز على شريط القوائم</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
||||||
'<h1>Начало на навигацията с клавиатурата</h1>\n' +
|
'<h1>Начало на навигацията с клавиатурата</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Фокусиране върху лентата с менюта</dt>\n' +
|
' <dt>Фокусиране върху лентата с менюта</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
||||||
'<h1>Inici de la navegació amb el teclat</h1>\n' +
|
'<h1>Inici de la navegació amb el teclat</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Enfocar la barra de menús</dt>\n' +
|
' <dt>Enfocar la barra de menús</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
||||||
'<h1>Začínáme navigovat pomocí klávesnice</h1>\n' +
|
'<h1>Začínáme navigovat pomocí klávesnice</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Přejít na řádek nabídek</dt>\n' +
|
' <dt>Přejít na řádek nabídek</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
||||||
'<h1>Start tastaturnavigation</h1>\n' +
|
'<h1>Start tastaturnavigation</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokuser på menulinjen</dt>\n' +
|
' <dt>Fokuser på menulinjen</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
||||||
'<h1>Grundlagen der Tastaturnavigation</h1>\n' +
|
'<h1>Grundlagen der Tastaturnavigation</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokus auf Menüleiste</dt>\n' +
|
' <dt>Fokus auf Menüleiste</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
||||||
'<h1>Έναρξη πλοήγησης μέσω πληκτρολογίου</h1>\n' +
|
'<h1>Έναρξη πλοήγησης μέσω πληκτρολογίου</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Εστίαση στη γραμμή μενού</dt>\n' +
|
' <dt>Εστίαση στη γραμμή μενού</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
||||||
'<h1>Begin keyboard navigation</h1>\n' +
|
'<h1>Begin keyboard navigation</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Focus the Menu bar</dt>\n' +
|
' <dt>Focus the Menu bar</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
||||||
'<h1>Iniciar la navegación con el teclado</h1>\n' +
|
'<h1>Iniciar la navegación con el teclado</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Enfocar la barra de menús</dt>\n' +
|
' <dt>Enfocar la barra de menús</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
||||||
'<h1>Hasi teklatuaren nabigazioa</h1>\n' +
|
'<h1>Hasi teklatuaren nabigazioa</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokuratu menu-barra</dt>\n' +
|
' <dt>Fokuratu menu-barra</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
||||||
'<h1>شروع پیمایش صفحهکلید</h1>\n' +
|
'<h1>شروع پیمایش صفحهکلید</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>تمرکز بر نوار منو</dt>\n' +
|
' <dt>تمرکز بر نوار منو</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
||||||
'<h1>Näppäimistönavigoinnin aloittaminen</h1>\n' +
|
'<h1>Näppäimistönavigoinnin aloittaminen</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Siirrä kohdistus valikkopalkkiin</dt>\n' +
|
' <dt>Siirrä kohdistus valikkopalkkiin</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
||||||
'<h1>Débuter la navigation au clavier</h1>\n' +
|
'<h1>Débuter la navigation au clavier</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Cibler la barre du menu</dt>\n' +
|
' <dt>Cibler la barre du menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
||||||
'<h1>התחל ניווט במקלדת</h1>\n' +
|
'<h1>התחל ניווט במקלדת</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>התמקד בשורת התפריטים</dt>\n' +
|
' <dt>התמקד בשורת התפריטים</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
||||||
'<h1>कीबोर्ड नेविगेशन शुरू करें</h1>\n' +
|
'<h1>कीबोर्ड नेविगेशन शुरू करें</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>मेन्यू बार पर फ़ोकस करें</dt>\n' +
|
' <dt>मेन्यू बार पर फ़ोकस करें</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
||||||
'<h1>Početak navigacije na tipkovnici</h1>\n' +
|
'<h1>Početak navigacije na tipkovnici</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokusiranje trake izbornika</dt>\n' +
|
' <dt>Fokusiranje trake izbornika</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
||||||
'<h1>Billentyűzetes navigáció indítása</h1>\n' +
|
'<h1>Billentyűzetes navigáció indítása</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fókusz a menüsávra</dt>\n' +
|
' <dt>Fókusz a menüsávra</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
||||||
'<h1>Memulai navigasi keyboard</h1>\n' +
|
'<h1>Memulai navigasi keyboard</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokus pada bilah Menu</dt>\n' +
|
' <dt>Fokus pada bilah Menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
||||||
'<h1>Iniziare la navigazione tramite tastiera</h1>\n' +
|
'<h1>Iniziare la navigazione tramite tastiera</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Impostare lo stato attivo per la barra dei menu</dt>\n' +
|
' <dt>Impostare lo stato attivo per la barra dei menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
||||||
'<h1>キーボード ナビゲーションの開始</h1>\n' +
|
'<h1>キーボード ナビゲーションの開始</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>メニュー バーをフォーカス</dt>\n' +
|
' <dt>メニュー バーをフォーカス</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
||||||
'<h1>Пернетақта навигациясын бастау</h1>\n' +
|
'<h1>Пернетақта навигациясын бастау</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Мәзір жолағын фокустау</dt>\n' +
|
' <dt>Мәзір жолағын фокустау</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
||||||
'<h1>키보드 탐색 시작</h1>\n' +
|
'<h1>키보드 탐색 시작</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>메뉴 모음 포커스 표시</dt>\n' +
|
' <dt>메뉴 모음 포커스 표시</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
||||||
'<h1>Mulakan navigasi papan kekunci</h1>\n' +
|
'<h1>Mulakan navigasi papan kekunci</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokus bar Menu</dt>\n' +
|
' <dt>Fokus bar Menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
||||||
'<h1>Starte tastaturnavigering</h1>\n' +
|
'<h1>Starte tastaturnavigering</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Utheve menylinjen</dt>\n' +
|
' <dt>Utheve menylinjen</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
||||||
'<h1>Toetsenbordnavigatie starten</h1>\n' +
|
'<h1>Toetsenbordnavigatie starten</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Focus op de menubalk instellen</dt>\n' +
|
' <dt>Focus op de menubalk instellen</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
||||||
'<h1>Początek nawigacji przy użyciu klawiatury</h1>\n' +
|
'<h1>Początek nawigacji przy użyciu klawiatury</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Ustaw fokus na pasek menu</dt>\n' +
|
' <dt>Ustaw fokus na pasek menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
||||||
'<h1>Iniciar navegação pelo teclado</h1>\n' +
|
'<h1>Iniciar navegação pelo teclado</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Foco na barra de menus</dt>\n' +
|
' <dt>Foco na barra de menus</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
||||||
'<h1>Iniciar navegação com teclado</h1>\n' +
|
'<h1>Iniciar navegação com teclado</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Foco na barra de menu</dt>\n' +
|
' <dt>Foco na barra de menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
||||||
'<h1>Începeți navigarea de la tastatură</h1>\n' +
|
'<h1>Începeți navigarea de la tastatură</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Focalizare pe bara de meniu</dt>\n' +
|
' <dt>Focalizare pe bara de meniu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
||||||
'<h1>Начните управление с помощью клавиатуры</h1>\n' +
|
'<h1>Начните управление с помощью клавиатуры</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Фокус на панели меню</dt>\n' +
|
' <dt>Фокус на панели меню</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
||||||
'<h1>Začíname s navigáciou pomocou klávesnice</h1>\n' +
|
'<h1>Začíname s navigáciou pomocou klávesnice</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Prejsť na panel s ponukami</dt>\n' +
|
' <dt>Prejsť na panel s ponukami</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
||||||
'<h1>Začetek krmarjenja s tipkovnico</h1>\n' +
|
'<h1>Začetek krmarjenja s tipkovnico</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokus na menijsko vrstico</dt>\n' +
|
' <dt>Fokus na menijsko vrstico</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
||||||
'<h1>Påbörja tangentbordsnavigering</h1>\n' +
|
'<h1>Påbörja tangentbordsnavigering</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Fokusera på menyraden</dt>\n' +
|
' <dt>Fokusera på menyraden</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
||||||
'<h1>เริ่มต้นการนำทางด้วยแป้นพิมพ์</h1>\n' +
|
'<h1>เริ่มต้นการนำทางด้วยแป้นพิมพ์</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>โฟกัสที่แถบเมนู</dt>\n' +
|
' <dt>โฟกัสที่แถบเมนู</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
||||||
'<h1>Klavyeyle gezintiyi başlatma</h1>\n' +
|
'<h1>Klavyeyle gezintiyi başlatma</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Menü çubuğuna odaklan</dt>\n' +
|
' <dt>Menü çubuğuna odaklan</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
||||||
'<h1>Початок роботи з навігацією за допомогою клавіатури</h1>\n' +
|
'<h1>Початок роботи з навігацією за допомогою клавіатури</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Фокус на рядок меню</dt>\n' +
|
' <dt>Фокус на рядок меню</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
||||||
'<h1>Bắt đầu điều hướng bàn phím</h1>\n' +
|
'<h1>Bắt đầu điều hướng bàn phím</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>Tập trung vào thanh menu</dt>\n' +
|
' <dt>Tập trung vào thanh menu</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
||||||
'<h1>开始键盘导航</h1>\n' +
|
'<h1>开始键盘导航</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>使菜单栏处于焦点</dt>\n' +
|
' <dt>使菜单栏处于焦点</dt>\n' +
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
||||||
'<h1>開始鍵盤瀏覽</h1>\n' +
|
'<h1>開始鍵盤瀏覽</h1>\n' +
|
||||||
'\n' +
|
'\n' +
|
||||||
'<dl>\n' +
|
'<dl>\n' +
|
||||||
' <dt>跳至功能表列</dt>\n' +
|
' <dt>跳至功能表列</dt>\n' +
|
||||||
|
|||||||
Vendored
+915
-76
File diff suppressed because it is too large
Load Diff
+9
-3
@@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Welcome to Our Application</title>
|
<title>Welcome to NeoCMS</title>
|
||||||
<link href="/cms/css/welcome.style.css" rel="stylesheet">
|
<link href="/cms/css/welcome.style.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -11,9 +11,15 @@
|
|||||||
</header>
|
</header>
|
||||||
<main>
|
<main>
|
||||||
<h1>Welcome to NeoCMS</h1>
|
<h1>Welcome to NeoCMS</h1>
|
||||||
<p>Put some content in here</p>
|
<p>Introducing a cutting-edge CMS designed to effortlessly integrate with your existing flat-file website—no
|
||||||
|
database required. Our databaseless WYSIWYG content management system empowers you to create, edit, and manage
|
||||||
|
content visually, all while maintaining the simplicity and speed of a flat-file setup. Enjoy a seamless
|
||||||
|
experience that combines the flexibility of a modern CMS with the efficiency of a static website, allowing you
|
||||||
|
to focus on content without the complexity of database management. Perfect for developers and creators looking
|
||||||
|
to streamline workflows without sacrificing control or performance.</p>
|
||||||
|
|
||||||
<p class="editable">
|
<p class="editable">
|
||||||
This box is editable!<br/>
|
This box is editable! Just click me to edit me!<br/>
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||||
Quisque sit amet accumsan tortor. Itaque earum rerum hic tenetur a sapiente delectus.
|
Quisque sit amet accumsan tortor. Itaque earum rerum hic tenetur a sapiente delectus.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user