ნაწილი № 2 - javascript WYSIWYG რედაქტორის დამატება
იმის გამო რომ მომდევნო ფაილში საკმაოდ დიდი კოდია, ჩვენ მას გავყოფთ რამოდენიმე ნაწილად, და ყველა ნაწილს დეტალურად ავხნით.
Code
secure/index.php
============
<?php
include("../header.html");
// gverduis saxelis migeba motxovnis velidan
$page = $_GET['page'] . '.txt';
if (!$_GET['page']) {
echo("<h1>გვერდი მითითებული არ არის</h1>\n");
include("../footer.html");
exit;
}
ჯერჯერობით ყველაფერი ნაცნობია პირველიგ აკვეთილიდან. ჩვენ ვკითხულობთ ჰედერს და ვიღებთ გვერდის დასახელებას. რადგან ჩვენ სხვა პაპკაში ვიმყოფებით (secure)ჩვენ აუცლებლად გვჭირდება ცოტა მოდიფიკაცია გაუკეთოთ ბმულებს ფუტერამდე და ქუდამდე.
Code
if ($_POST['page']) {
$handle = fopen("../pages/$page", 'w');
fwrite($handle, $_POST['page']);
fclose($handle);
echo($_POST['page']);
include("../footer.html");
exit;
}
იქიდან გამომდინარე რომ რედაქტორი საშვალებას გვაძლევს დავარედაქტიროთ და იგივე სკრიპტი დაამუშავებს რეზულტატებს, ზემო თოცემული კოდი შეამოწმებს გამოვეაქვეყნეთ თუ არა გვერდი. თუკი გამოვაქვეყნეთ გვერდი კონტენტით - მაშინ სკრიპტი ხნის ფასილს (რომელიც მითიტებული ქონდა მოთხოვნაში), გადაწერს მას, ხურავს და გვაჩვენებს ჩვენ განახლებულ ფაილს. ბოლოს კი გამოაქვს.
Code
if (file_exists("../pages/$page")) {
$FILE = fopen("../pages/$page", "rt");
while (!feof($FILE)) {
$text .= fgets($FILE);
}
fclose($FILE);
} else {
echo("<h1>ახალი გვერდი: $page</h1>\n");
$text = "<p></p>";
}
თუკი ჩვენ მიუთითეთ გვერდი რომელიც არსებობს, მაშინ სკრიპტი გარდაქმნის ტექსტს ცვლადზე $text. თუ არ არსებობს, მაშინ სკრიპტი გვეტყვის რომ ჩვენ ვქმნით ახალ გვერდს და ცვლადი $text შეიძნებს უბრალო პარაგრაფის სახეს (
).
შემდეგ ჩვენ ვუერთებთ TinyMCE javascript რედაქტორს. Важно при подключении следитьმნიშვნელოვანია მიერთებისას გამოვიყენოთ სწორი ბმულები თავად რედაქტორამდე.
Code
echo <<< EOM
<script language="javascript" type="text/javascript" src="/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom"
});
</script>
EOM;
როგორც წესი javascript ჩვენ ვტვირთავთ ხოლმე ჩვენი გვერდის ქუდში. მაგრამ ჩვენს შემთხვევაში ქუდზე პასუხისმგებელია 1ფაილი , რომელიც იტვირტება საიტის ყველა გვერდთან. სექცია "init" შეიცავს რედაქტორის ყველა ნასტორიკას ველი "mode: textareas" ნიშნავს, რომ ყველა ტექსტური ველი გვერდზე გახდებიან TinyMCE WYSIWYG ველები (ანუ მათი რედაქტირება შესაძლებელი იქნება WYSIWYG სტილით). TinyMCE-ის ოფიციალურ სატიზე დიდი ინფორმაციაა ნასტროიკებზე.
Code
$this_page = $_SERVER['PHP_SELF'];
$query_string = $_SERVER['QUERY_STRING'];
echo("<form method=\"post\" action=\"$this_page$query_string\">\n");
echo("<textarea id=\"page\" name=\"page\" rows=25 cols=80>\n");
echo(htmlspecialchars($text));
echo("</textarea>\n");
echo("<input type=\"submit\" value=\"შენახვა\">\n");
echo("</form>\n");
ზემოთ მოცემული კოდი ქმნის ფორმას, ტექსტურ ველს და ღილაკს "შენახვა". "htmlspecialchars($text)" რომელსაც გამოიტანს ცვლადიდან $text მთელი ტექსტი ქმნის ყველა სპეციალურ სიმბოლოს HTML კოდში. ეს კეთდება იმისათვის , რომ HTML,რომელიც იმყოფება ტექსტურ ფაილებში არ კომფლიქტობდეს HTML გვერდთან. ამის შემდეგ მირებული ტექსტი გადაეცემა ტექსტურ ველს. მას შემდეგ რაც დავაჭერთ "შენახვა", სკრიპტი მიმართავს ამავე გვერდს ამავე მოთხოვნით, მაგრამ ამჯერად შეცვლილი ინფორმაციით.
Code
include("../footer.html");
?>
და ბოლოს არ დაგვავიწყდეს ფუტერი.
პ.ს
აი ჩვენ შევქმენით უბრალო CMS ფაილებზე.ის არ არის უნაკლო და საჭიროებს დამუშავებასა და დახვეწას, მაგრამ უბრალო საიტებისთვის გამოდგება. იმედი მაქვს ამ გაკვეთილში თქვენ სასარგებლო ინფორმაციას მიიღებთ და შეისწავლით. ველი კომენტარებსაც