Poszukuję działającego rozwiązania integracji darmowego filemanagera z edytorem ckeditor.
Na stronie projektu AjexFileManager'a jest teoretyczny opis integracji:
http://demphest.ru/ru/programming/ajex-filemanager/
Mam działającego CMS'a w katalogu public html
Wrzucam tam, tak jak w pakiecie demo:
AjexFileManager
ckeditor
Teraz staram się podpiąć konieczne do działania skrypty do strony z edytorem w module CMS'a:
Kod
function addScriptCKeditor() {
echo '<script type="text/javascript" src="../ckeditor/ckeditor.js"></script></script>';
echo '<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/ajex.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery-ui.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.form.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.cookie.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.MultiFile.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/ajex.filemanager.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/dynatree/jquery.dynatree.js"></script>';
echo '<script type="text/javascript">
echo '<script type="text/javascript">
var ckeditor = CKEDITOR.replace(\'editor1\');
AjexFileManager.init({
path: \'http://127.0.0.1:4001/mojastrona/ckeditor\',
returnTo: \'ckeditor\',
editor: ckeditor
});</script>';
}
// end /////////////////////////////
echo '<script type="text/javascript" src="../ckeditor/ckeditor.js"></script></script>';
echo '<script type="text/javascript" src="../ckeditor/ckeditor.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/ajex.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery-ui.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.form.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.cookie.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/jquery.MultiFile.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/ajex.filemanager.js"></script>';
echo '<script type="text/javascript" src="../AjexFileManager/lib/dynatree/jquery.dynatree.js"></script>';
echo '<script type="text/javascript">
echo '<script type="text/javascript">
var ckeditor = CKEDITOR.replace(\'editor1\');
AjexFileManager.init({
path: \'http://127.0.0.1:4001/mojastrona/ckeditor\',
returnTo: \'ckeditor\',
editor: ckeditor
});</script>';
}
// end /////////////////////////////
Następnie wymyśliłem sobie działające wywołanie edytora i w nim odwołanie do filemanager'a:
Kod
function ckeditor(&$te) {
if($_SESSION['adminLogIn']) {
$ckoptions="{
filebrowserBrowseUrl: '../AjexFileManager/index.html',
skin : 'kama'
}";
$te[2] = $te[2] . '<script type="text/javascript">CKEDITOR.replace( \'editbox\', ' . $ckoptions . ' );</script>';
}
}
if($_SESSION['adminLogIn']) {
$ckoptions="{
filebrowserBrowseUrl: '../AjexFileManager/index.html',
skin : 'kama'
}";
$te[2] = $te[2] . '<script type="text/javascript">CKEDITOR.replace( \'editbox\', ' . $ckoptions . ' );</script>';
}
}
Edytor działa co najważniejsze - więc pomysł na wywołanie ckeditora jest ok i zgodny z ideą budowy modułów do tego CMS'a, ale wspomniany filemanager pokazuje swoje okno, a w nim brakuje mi elementów z jego menu, nie pokazuje mi miniatur obrazków, nie rozwija drzewa z katalogiem obrazków, nie pokazuje ich w oknie itd..., ale mogę za to zobaczyć about ;-), i wybrać obrazek do załadowania ze swojego dysku - tyle, że go nie załaduje - a potem nic z nim nie zrobię, bo nic mi się nie wyświetla w podkatalogach z obrazkami.
Ustawienia konfiguracyjne są w pliku ../AjexFileManager/ajax/php/ajax.php
gdzie są definicje ścieżek:
$cfg['url'] = 'mojastrona/grafiki'; // folder gdzie przechowywane sa obrazki
02.$cfg['root'] = $_SERVER['DOCUMENT_ROOT'] . DIR_SEP . $cfg['url'] . DIR_SEP; // http://www.yousite.com/upload/
03.$cfg['quickdir'] = '';
Czy komuś udało się uruchomić akurat ten filemanager, wraz ze swoim CMS-em?
Testowałem też inny, polski filemanager do ckeditor'a o nazwie PGRFileManager: http://pgrfilemanager.sourceforge.net/
Na localhoście mi działa, ale bez generowania miniatur - brak ImageMagic, i problem z działaniem i konfiguracją samego PHPThumb'a
http://phpthumb.sourceforge.net
a na serwerze nie chce ruszyć - tam podaje mi komunikat dotyczący jego kodu w linii 28:
Kod
Parse error: syntax error, unexpected T_IS_EQUAL, expecting '(' in /home/mojastrona/public_html/moduly/system_ckeditor/plugins/pgrfilemanager/PGRFileManager.php on line 28
Sam kod generujący problem wygląda tak:
Kod
include_once 'php/init.php';
$PGRUploaderExtension = "";
if (PGRFileManagerConfig::$allowedExtensions == "") $PGRUploaderExtension = "*.*"; // feralna linia nr 28 //
else
foreach(explode("|", PGRFileManagerConfig::$allowedExtensions) as $key => $extension) {
if ($key > 0) $PGRUploaderExtension .= ";";
$PGRUploaderExtension .= "*." . $extension;
}
?>
$PGRUploaderExtension = "";
if (PGRFileManagerConfig::$allowedExtensions == "") $PGRUploaderExtension = "*.*"; // feralna linia nr 28 //
else
foreach(explode("|", PGRFileManagerConfig::$allowedExtensions) as $key => $extension) {
if ($key > 0) $PGRUploaderExtension .= ";";
$PGRUploaderExtension .= "*." . $extension;
}
?>
PHP na serwerze nie toleruje składni zastosowanej przez autora.
Czy ktoś doświadczony w php może mi podpowiedzieć, jak poprawić składnię linii nr 28, by nie było problemu z jego uruchomieniem na serwerze?
Dziękuję i pozdrawiam