Kohana Framework PHP wykorzystanie markdown

Markdown to świetne narzędzie mające bardzo duże zastosowanie. Dzięki niemu w bardzo prosty sposób możemy formatować tekst, co więcej nie musimy znać składni języka HTML a jedynie kilka prostych oznaczeń. Dobrym zastosowaniem tego narzędzia jest system komentarzy. Z jednej strony blokujemy  jawnie korzystanie z tagów html ze względów bezpieczeństwa, a z drugiej strony pozwalamy użytkownikom na bezpieczne formatowanie swojego tekstu.

Jak to zrobić w Kohana?

Implementacja jest bardzo prosta wystarczy znaleźć odpowiedni moduł na GitHub a następnie zacząć z niego korzystać. Ja znalazłem taki https://github.com/aptgraph/kohana-markdown moduł i na podstawie niego będzie ten artykuł.

Instalacja

Klonujemy repozytorium do folderu /modules korzystam pod Windowsem z Git Bash

git clone git://github.com/stroppytux/kohana-markdown.git modules/markdown

Możesz również zrobić to ręcznie. Pobrać pliki z repozytorium. W katalogu /modules utworzyć folder /modules/markdown i wrzucić tam pobrane pliki. Należy jednak pamiętać aby w w folderze markdown znalazły się pliki

classes  config  README.md

Konfiguracja

Kolejnym krokiem jest konfiguracja, czyli klasycznie przenosimy plik markdown.php z folderu /modules/markdown/config do /application/config

Możemy zrobić to dużo szybciej wykonując komendę w Git Bash

cp modules/markdown/config/markdown.php application/config/

W ustawieniach najbardziej nas interesuje opcja type, która może przyjmować wartość xhtml oraz html . W tym miejscu mówimy programowi czy ma generować kod zgodny z html czy xhtml, który wybrać oczywiście zależy od tego jak napisana jest nasza strona.

W /application/bootrstrap.php inicjalizujemy nasz nowy moduł po przez dodanie nowej linii kodu

'markdown'      => MODPATH.'markdown',      // Markdown module

Markdown w akcji

Przykładowy controller

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Post extends Controller_Default {

public function action_index() {


$this->template->content = View::factory('front/post')->bind('comments', $comm);
$comm = View::factory('front/comments')->bind('comments', $commsData);
$commsData = ORM::factory('comment')->find_all();


if (isset($_POST['save-comm'])) {

$comData = ORM::factory('comment');
$comData->post_id = $this->request->param('id');
$comData->poster = Arr::get($_POST, 'poster');
$comData->content = Markdown::instance()->transform(Security::encode_php_tags(Arr::get($_POST, 'content')));
//Security::encode_php_tags($str) spowoduje, że tagi html będą wyświetlane jak zwykły tekst.
//Markdown::instance()->transform zamieni znaczniki Markdown na kod html.
$comData->save();

}
}


}
?>

 

One thought on “Kohana Framework PHP wykorzystanie markdown

Comments are closed.