Dnes je: Čtvrtek 26 Dubna 2018 Svátek má: Oto
Vyhledávání
Vyhledat text

Novinky
20.08.2012: Novy layout pro phpRS 2.8.x
V sekci download je možné stáhnout nový layout pro phpRS 2.8.x. "RS Tech Blog".

31.07.2012: Novy layout i pro phpRS 2.8.2
V sekci download je možné stáhnout nový layout pro phpRS 2.8.x. "White light".

12.04.2011: Nový plugin
V sekci download je možné stáhnout novy plugin pro editaci článků s integrovaným editorem.
Nejčtenější články

Neexistuji vhodna data!

Kalendář
<<  Duben  >>
PoÚtStČtSoNe
       1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30       
Počasí
Kompletní login

Uživatelské jméno:

Heslo:




Registrace nového čtenáře!

Vytvoření pluginu FCKeditoru pro phpRS 2.8.1

 Pro phpRS 2.8.1 jsem potřeboval editovat články pomocí FCKeditoru a úprava, která nahradí stávající editaci byla nevyhovujíci. Potřeboval jsem mít zároveň obě možnosti editace. Inspiroval jsem se pluginem pro phpRS 2.6.5 a úpravou ze stránek http://oldlukas.cz

Nejprve stáhneme ze stránek http://fckeditor.net soubor s editorem. K popsané úpravě je použita verze 2.6.3.
V rootu webu v adresáři plugin vytvoříme adresář fckeditor a v něm vytvoříme soubor plugin.php. Do něj vložíme následující kód.

<?php
######################################################################
# phpRS Plug-in modul: FCKEditor 2.6.3
######################################################################

// Copyright (c) 2001-2005 by Jiri Lukas (jirilukas@supersvet.cz)
// http://www.supersvet.cz/phprs/
// This program is free software. - Toto je bezplatny a svobodny software.

// jmeno plug-inu
$plugin_nazev="FCKEditor";
// pristupova prava: 1 = dle nastaveni v administraci; 2 = uplne vsichni; 3 = pouze admin
$pi_pristup="1";
// pridat polozku do hlavniho administracniho menu; ano = 1, ne = 0
$pi_menu="1";
// nazev noveho tlacitka v admin. menu
$pi_nazev_menu="Editace článků FCK";
// identifikacni retezec modulu (max. 15 znaku)
$pi_indent_modulu="fckclanky";
// relativni cesta k souboru s "rozcestnikem" k admin. sekci
$pi_inclakce_menu="plugin/fckeditor/fckarticles.php";
// volaci link zakladni funce
$pi_link_menu="akce=Articles";
// pridat aktivacni polozku do seznamu systemovych bloku; ano = 1, ne = 0
$pi_sys_blok="0";
// nazev systemoveho bloku
$pi_nazev_blok="";
// identifikacni zkratka systemoveho bloku (3 znaky)
$pi_zkratka_blok="";
// relativni cesta k vykonnemu soubour
$pi_inclsb_blok="";
// nazev vyvolane systemove funkce - nutno zapisovat bez prazdnych kulatych zavorek na konci
$pi_funkce_blok="";
?>

 

Dále překopírujeme soubor aarticles.php z adresáře admin do adresáře plugin/fckeditor.

Tento soubor přejmenujeme na fckarticles.php. V tomto souboru nahradíme všechny výskyty  řetězce value=\"clanky\" za řetězec value=\"fckclanky\" celkem 7x. Dále nahradíme řetězec modul=clanky za řetězec modul=fckclanky celkem 32x.

Za řádek 309 s tímto kódem.

<td align=\"left\"><input type=\"text\" name=\"aetitulek\" size=\"60\" class=\"textpole\" /></td></tr>

Vložíme řádek s tímto kódem.

<tr><td align=\"left\" colspan=\"2\"><div id=\"xToolbar\"></div></td></tr>

Dále najdeme řádek 312 s následujícím kódem.

<textarea name=\"aeuvod\" rows=\"8\" cols=\"85\" class=\"textbox\">".RS_CLA_CL_FORM_UVOD_INFO."</textarea></td></tr>

A nahradíme ho tímto kódem.

"; 
switch($GLOBALS['Uzivatel']->Ukaz("idtyp")):
 case "0": $jakygenerovat="Autor"; break; // autor
 case "1": $jakygenerovat="Redaktor"; break; // redaktor
 case "2": $jakygenerovat="Admin"; break; // admin
 default: $jakygenerovat="Autor"; break;
endswitch; 
include_once("./fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('aeuvod') ;
$oFCKeditor->ToolbarSet=$jakygenerovat;
$oFCKeditor->Config['ToolbarLocation'] = 'Out:xToolbar' ;
$oFCKeditor->Value= RS_CLA_CL_FORM_UVOD_INFO ;
$oFCKeditor->Height = '100' ;
$oFCKeditor->Width = '650' ;
$oFCKeditor->Create() ; 
echo" 
</td></tr>

Dále najdeme řádek 330 s následujícím kódem.

<textarea name=\"aetext\" rows=\"10\" cols=\"85\" class=\"textbox\">".RS_CLA_CL_FORM_HLA_TEXT_INFO."</textarea></td></tr>

A nahradíme ho tímto kódem.

"; 
switch($GLOBALS['Uzivatel']->Ukaz("idtyp")):
 case "0": $jakygenerovat="Autor"; break; // autor
 case "1": $jakygenerovat="Redaktor"; break; // redaktor
 case "2": $jakygenerovat="Admin"; break; // admin
 default: $jakygenerovat="Autor"; break;
endswitch; 
include_once("./fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('aetext') ;
$oFCKeditor->ToolbarSet=$jakygenerovat;
$oFCKeditor->Config['ToolbarLocation'] = 'Out:xToolbar' ;
$oFCKeditor->Value= RS_CLA_CL_FORM_HLA_TEXT_INFO ;
$oFCKeditor->Height = '650' ;
$oFCKeditor->Width = '650' ;
$oFCKeditor->Create() ; 
echo"
</td></tr>

Za řádek 730 s tímto kódem.

<td align=\"left\"><input type=\"text\" name=\"aetitulek\" value=\"".$data_clanek["titulek"]."\" size=\"60\" class=\"textpole\" /></td></tr>

Vložíme řádek s tímto kódem.

<tr><td align=\"left\" colspan=\"2\"><div id=\"xToolbar\"></div></td></tr>

Dále najdeme řádek 733 s následujícím kódem.

<textarea name=\"aeuvod\" rows=\"8\" cols=\"85\" class=\"textbox\">".KorekceHTML($data_clanek["uvod"])."</textarea></td></tr>

A nahradíme ho tímto kódem.

"; 
switch($GLOBALS['Uzivatel']->Ukaz("idtyp")):
 case "0": $jakygenerovat="Autor"; break; // autor
 case "1": $jakygenerovat="Redaktor"; break; // redaktor
 case "2": $jakygenerovat="Admin"; break; // admin
 default: $jakygenerovat="Autor"; break;
endswitch; 
include_once("./fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('aeuvod') ;
$oFCKeditor->ToolbarSet=$jakygenerovat;
$oFCKeditor->Value=$data_clanek["uvod"];
$oFCKeditor->Config['ToolbarLocation'] = 'Out:xToolbar' ;
$oFCKeditor->Height = '100' ;
$oFCKeditor->Width = '650' ;
$oFCKeditor->Create() ; 
echo"
</td></tr>

Dále najdeme řádek 751 s následujícím kódem.

<textarea name=\"aetext\" rows=\"10\" cols=\"85\" class=\"textbox\">".KorekceHTML($data_clanek["text"])."</textarea></td></tr>

A nahradíme ho tímto kódem.

"; 
switch($GLOBALS['Uzivatel']->Ukaz("idtyp")):
 case "0": $jakygenerovat="Autor"; break; // autor
 case "1": $jakygenerovat="Redaktor"; break; // redaktor
 case "2": $jakygenerovat="Admin"; break; // admin
 default: $jakygenerovat="Autor"; break;
endswitch; 
include_once("./fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('aetext') ;
$oFCKeditor->ToolbarSet=$jakygenerovat;
$oFCKeditor->Config['ToolbarLocation'] = 'Out:xToolbar' ;
$oFCKeditor->Value=$data_clanek["text"];
$oFCKeditor->Height = '650' ;
$oFCKeditor->Width = '650' ;
$oFCKeditor->Create() ; 
echo" 
</td></tr>

Z rozbaleného archivu editoru zkopírujeme celý adresář fckeditor do rootu webu.

Dále budeme editovat soubor fckconfig.js z adresáře fckeditor a najdeme v něm tento kód.
POZOR tento soubor je v kódování UTF-8.

FCKConfig.ToolbarSets["Default"] = [
	['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
	['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
	'/',
	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
	['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'],
	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
	['Link','Unlink','Anchor'],
	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
	'/',
	['Style','FontFormat','FontName','FontSize'],
	['TextColor','BGColor'],
	['FitWindow','ShowBlocks','-','About']		// No comma for the last row.
] ;

A nahradíme ho tímto kódem.

FCKConfig.ToolbarSets["Admin"] = [
	['Source','ShowBlocks'],
	['Cut','Copy','Paste','PasteText','PasteWord','-',
	'Undo','Redo','-','Find','Replace','-',
	'Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript','-',
	'OrderedList','UnorderedList','-','Outdent','Indent'],
	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull','-',
	'Link','Unlink','-',
	'Image','Table','Rule','Smiley','SpecialChar','-',
	'TextColor','BGColor','-','SelectAll','RemoveFormat'],
	['Style','FontFormat','FontName','FontSize']
] ;

FCKConfig.ToolbarSets["Redaktor"] = [
	['Source','ShowBlocks'],['Cut','Copy','Paste','PasteText','PasteWord','-',
	'-','Find','Replace','-',
	'Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript','-',
	'OrderedList','UnorderedList','-'],
	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull','-',
	'Link','Unlink','-',
	'Image','Table']
] ;

FCKConfig.ToolbarSets["Autor"] = [
	['Source','ShowBlocks'],['Cut','Copy','Paste','PasteText','PasteWord','-',
  'Bold','Italic','Underline','StrikeThrough','-',
  'Subscript','Superscript','-'],
	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull','-',
	'Link','Unlink','-','SelectAll','RemoveFormat','-','Image']
] ;

V adresáři fckeditor jsou dva soubory fckeditor_php4.php a fckeditor_php5.php.
V těchto souborech najděte řádek 133 s tímto kódem.

$this->BasePath		= '/fckeditor/' ;

A nahradíme ho tímto kódem.

$this->BasePath		= './fckeditor/' ;

Dále v adresáři lang\cz vytvoříme kopii souboru admin_sl_clanky_cz.php a pojmenujeme ji admin_sl_fckclanky_cz.php.

Dále v adresáři lang\sk vytvoříme kopii souboru admin_sl_clanky_sk.php a pojmenujeme ji admin_sl_fckclanky_sk.php.

Pokud chceme používat standartně dodávaný filemanager musíme editovat soubor config.php v adresáři fckeditor/editor/filemanager/connectors/php/

Najdeme řádek s kódem.

$Config['Enabled'] = false ;

A hodnotu false změníme na true

Najdeme řádek s kódem.

$Config['UserFilesPath'] = '/userfiles/' ;

A upravíme cestu do správného adresáře. Standartně je to adresář storage

Takže celý řádek bude vypadat takto.

$Config['UserFilesPath'] = '/storage/' ;

Pokud nechceme aby fckeditor vytvářel v adresáři storage své podadresáře file, image, flash, media upravíme kód
na řádkách 125 -126 na tento tvar.

$Config['FileTypesPath']['File']		= $Config['UserFilesPath'] . '/' ;
$Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'/' ;

na řádkách 132 - 133

$Config['FileTypesPath']['Image']		= $Config['UserFilesPath'] . '/' ;
$Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'/' ;

na řádkách 139 - 140

$Config['FileTypesPath']['Flash']		= $Config['UserFilesPath'] . '/' ;
$Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'/' ;

na řádkách 146 - 147

$Config['FileTypesPath']['Media']		= $Config['UserFilesPath'] . '/' ;
$Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'/' ;

Nevím zda to nejde udělat nějak lépe ale tato úprava funguje správně.

No a teď už zbývá jen nový plugin v admin rozhraní nainstalovat.

Celý upravený plugin je možné stáhnout v sekci download.


| Autor: administrator | Vydáno dne 06. 10. 2008 | 9822 přečtení |

| Informační e-mail | Vytisknout článek |
Tento web site byl vytvořen prostřednictvím phpRS 2.8.2 R8