Forums / National / Russian / Модули и плагины / [Update] HTML CKEditor для страниц v.1.0.2

<<<12345>>>

HTML Wysiwyg редактор CKEditor для страниц

Alex300
#16 2009-09-11 18:22
# motor2hg :
Можно сделать так, при первом открытии Ajax FileManager в папке например /datas/users/users_files формируется папка с именем пользователя в которую он - пользователь будет складывает свои файлы, пользоваться ими удалять, редактировать. Папки других пользователей в директории /datas/users/users_files он может просматривать, но вносить правки и удалять файлы не может. Хотя надобности просмотра чужих файловых архивов под вопросом.

У меня на сайте он устроен так:
В поле Extra2 страницы (которое может редактировать только админ), вносится текстовое название папки. При сохранении страницы она создается в папке "User_Files". Одна и та же папка может быть назначена нескольким страницам. Когда пользователь редактирует страницу эта папка для Ajax FileManager становится корневой. И выше в папку User_Files он подняться и получить доступ к чужим файлам не может. Для админа корневая папка всегда User_Files. Он видит файлы всех пользователей.

Этот вариант пока не выкладывал в паблик. Он несколько спецефичный. Могу выложить, если такой вариант может кому-то подойдет. Если сообщество решит, что такой вариант лучше, чем первый, то это включу в следующий релиз.

Прошу высказаться по этому поводу тех, кто уже пользуется плагином.

# motor2hg : А ещё так как встроенный редактор BBcode не отключается, то можно автоматически менять редактор при переключении парсинга, выбрал BBCode имеешь - markitup выбрал, HTML - CKEditor v.3.

Хорошая идея. Надо подумать. Вероятно надо сделать на JavaScript переключение редакторов. Пользователь щелкнул по выпадающему списку выбора парсинга, скрипт подгружает нужный редактор. Не знаю получится ли такой фокус, но вполне может получиться.

К следующему релизу плагина, думаю, уже определюсь.
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2009-09-11 18:29, 14 years ago)
motor2hg
#17 2009-09-11 19:19
# Alex300 : У меня на сайте он устроен так:
В поле Extra2 страницы (которое может редактировать только админ), вносится текстовое название папки. При сохранении страницы она создается в папке "User_Files". Одна и та же папка может быть назначена нескольким страницам. Когда пользователь редактирует страницу эта папка для Ajax FileManager становится корневой. И выше в папку User_Files он подняться и получить доступ к чужим файлам не может. Для админа корневая папка всегда User_Files. Он видит файлы всех пользователей.

Надо выложить этот вариант попробовать, так со слов не могу понять.

PS
Схема работы должна состоять в следующем.
Админ хозяин всего скарба папки "User_Files"


Каждый пользователь с определёнными правами хозяин только своей папки, которая расположится если ему это потребуется в папке "User_Files".

При таком раскладе, тому же Админу, будет легче отслеживать это творчество пользователей если их папки будут соответствовать никнеймам(коротким именам пользователей).

Т.е., ага datas/users/user_files/motor2hg куча всякого дерьма принадлежит motor2hg - удаляем.

Тут сразу встаёт вопрос о проверке на соответствие файла его расширению, чтобы в картинку не прописывали эксплоиты и т.п., та проблема, которую решали Киландор и Траст, когда поломали Seditio.

И тут же, как это не печально создаётся проблема государства внутри государства, есть же ядро движка, а получается, мы помимо штатного Персонального Файлового Хранилища, пытаемся соорудить костыль, который, как бы вуалирует его недостатки. Получается надстройка, повторение того, что уже, как бы есть в движке, но недоразвитое. Двойная работа. Надо подымать вопрос о совершенствовании PFS движка, и возможно скрипт, который предлагается в этом плагине не плохая идея. В прочем, я могу и ошибаться.
This post was edited by motor2hg (2009-09-11 19:43, 14 years ago)
Sergeich
#18 2009-09-11 19:35
Согласен с motor2hg. Лучше развить имеющийся файловый архив, даже путём полного переписывания, чем городить костыли в виде альтернатив. По поводу названия папок - использовать никнеймы не лучшая идея, каждый пользователь имеет свой уникальный номерной идентификатор, вот его и нужно использовать.
Alex300
#19 2009-09-11 19:51
У меня на сайте Ajax FileManager используется только админом в основном.
Мне, неудобно в стандартном PFS хранить кучу всяких иллюстраций к новостям за несколько лет, я их и храню в отдельной папке. Там и флеш и видео и изображения и архивы. Пользователи, которые могут править страницы - их у меня не много и я легко все отслеживаю и опасности нет. При большом количестве пользователей, лучше все же использовать стандартный PFS, а Ajax FileManager только для админов.

К тому же, судя по trac, к версии Cotonti 0.7.0 возможности PFS будут значительно расширены. Major update of the PFS system. По этому, думаю и не стоит сильно пока заморачиваться на Ajax FileManager для всех пользователей.

Вот тот вариант, что используется у меня на сайте. (скачать)

Для его использования в шаблоны page.add.tpl и page.edit.tpl нужно добавить возможность для администратора редактировать поле page_extra2.
Внесенное в него текстовое значение будет названием папки, которая создатся внутри "User_Files" и которая будет корневой для пользователя, владельца редактируемой страницы.
При удалении страницы, папка тоже удалится, если нет других страниц, использющих ее.
Файл ".~ccess" из архива скопировать в папку "User_Files".

Части кода, которые не попали в раздел DOWNLOADS выделены блоком
// ======= не релизить, пока :) ================
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Ratibor
#20 2009-09-12 01:44
# motor2hg : Пробовал в Opera 10. Первое, что бросилось в глаза постоянно пытается влепить в начало тег <p></p>.
Это в свою очередь не даёт правильно оформить title для постраничной разбивки для первого пункта.
Последующие newpage title /title работают правильно.
Добавь в config.js следующее:
config.enterMode = CKEDITOR.ENTER_BR;

и будет тебе счастье.
Не задавай глупых вопросов, не услышишь вранья.
Dr2005alex
#21 2009-09-12 03:06
Alex300

Исправь мелкие косячки!При указании пути к общему css.
contentsCss : '".$cfg['mainurl']."/skins/".$skin."/".$skin."/.css',
меняй
contentsCss : '".$cfg['mainurl']."/skins/".$skin."/".$skin.".css',
А то общий css не подключается!
WebKaa.ru - Cotonti Relax
motor2hg
#22 2009-09-12 04:01
Ratibor - спасибо сработало, Alex300, наверное есть резон добавить эту информацию в шапку.

Для того чтобы вначале текста при редактирования его в CKEditor не появлялись <p></p>, требуется добавить строку
config.enterMode = CKEDITOR.ENTER_BR;
в файл config.js.


PS Это нужно для правильного формирования
[title][/title]
первой страницы многостраничного текста если такой предполагается.
Это можно вынести в setup плагина, как опцию.
Alex300
#23 2009-09-12 06:01
косячек с подключением CSS подправил. Архив перезалит.

config.enterMode = CKEDITOR.ENTER_BR;
Добавлять в дистрибутив пока не стал. На оффсайте не рекомендуют использовать эту опцию. Возможно нужно искать другие пути. Напимер добавление соответствующей кнопки на панель редактора. Как временную меру, кому необходимо, можно сделать это самому. Либо добавить вышеуказанную строку в файл config.js., либо в файлах ckeditor.page.add.php и ckeditor.page.edit.php в месте инициализации редактора, где нибудь между строкой
CKEDITOR.replace( 'rpagetext',{
и
smiley_path : '/images/smilies/'
вставить строку
enterMode : CKEDITOR.ENTER_BR,

Применение этой опции приведет к тому, что по нажатию "Enter" новый обзац будет не заключен в теги <p> </p>, а разделителем абзацев станет <br />
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
motor2hg
#24 2009-09-12 06:33
Файл ".~ccess" из архива скопировать в папку "User_Files".

Я такого файла не нашёл в архиве.
По этому папка взятая с поля extra2 не создаётся
This post was edited by motor2hg (2009-09-12 06:43, 14 years ago)
Alex300
#25 2009-09-12 06:44
Странно. Я его вижу в корне архива. На всякий случай перезалил ckeditor_norel.zip
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
motor2hg
#26 2009-09-12 06:55
Теперь есть

Added 11 minutes later:

Я не понимаю как рабтает.
Админ видит корень папки "User_Files" и все вложения
// Дополнительная папка для хранения файлов для клиентов портала
if ($usr['isadmin']){ // admin
		
	// Имя создаваемой папки
	$NewFolderName = sed_import('newpageextra2','P','TXT');
	
	if ($NewFolderName != ''){    	//  Создать новую папку
		// Если папки нет, создаем ее, иначе пускаю юзают существующую!
		if (!is_dir("User_Files/".$NewFolderName)){
			if (!mkdir ("User_Files/".$NewFolderName, 0777)) $error_string .= $L['Folder_Not_Created']."->".$NewFolderName;
		}
		copy("User_Files/.~ccess", "User_Files/".$NewFolderName."/.htaccess");
	}
	unset($_SESSION['FileBroserFolder']);
}
// ======= не релизить, пока :) ================

Если папки нет, создаем ее, иначе пускаю юзают существующую!

Кто юзает? Я админ, юзаю любую!
Непонятно.

Или я могу пользователю создать в статье а он будет её юзать? Он должен по ПМ у меня это запросить?
Не пойму
Может объяснишь логику использования
{PAGEADD_FORM_EXTRA2}{PAGEEDIT_FORM_EXTRA2}
в какой момент создаётся папка и для кого она создаётся если я и так как админ могу её создать, а обычный юзер её создать в принципе не может исходя из кода выше?
This post was edited by motor2hg (2009-09-12 07:31, 14 years ago)
Alex300
#27 2009-09-12 07:42
# motor2hg :
Я не понимаю как рабтает.

Или я могу пользователю создать в статье а он будет её юзать?
Именно. Это поле нужно только для того, чтобы создавать папку для хранения файлов для пользователя, который может редактировать эту страницу. Там где нет такого пользователя, заполнять его не нужно.
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
motor2hg
#28 2009-09-12 08:22
Я всё перепробовал, папка не создаётся ни в какую!

Я вхожу админом

{PAGEADD_FORM_EXTRA2}{PAGEEDIT_FORM_EXTRA2}

прописаны в соответствующих tpl в какой момент создаётся папка? Когда я заполняю поле и жму:

Pablish!
Ответ движка:

 Update values for this page
->1


Например для папки с именем 1, но сама папка не образуется. В чём проблема непонятно?

Added 16 minutes later:

Всё нашёл, у тебя жёстко путь прописан в файлах ckeditor.page.add.add.done.php и ckeditor.page.edit.update.first.php надо:



Так работает.

И схема работы следующая, если страница только создаётся, то нажатие кнопки Pablish! - не закрывает вновь созданный документ, а создаёт папку в директории
['plugin']['ckeditor']['altFolder'] 
заданной при настройках плагина и вверху появляется надпись
 Update values for this page
->Имя папки которое вы записали в экстраполе 2
Для публикации статьи требуется ещё раз нажать Pablish.
При редактировании статьи имя папки, которая уже создана изменяется и форма редактировани сразу закрывается, проверил всё так и есть. Удобно!

При удалении статьи папка тоже удаляется со всем хламом, тоже удобно проверил работает.

Мне очень понравилась идея и реализация - супер, не знаю как на счёт безопасности, но удобно и всё красиво по папкам для каждой статьи а не в общую свалку.

ЗЫ: c этим надо что-то решать, чтоб красиво было. :)

Added 15 minutes later:

+Плагин надо подправить ибо, не все модули в UTF-8

Added 12 hours 57 minutes later:

Подсветки синтаксиса не хватает! User only, тоже не хватает и спойлера.

Added 4 minutes later:

При переключении на другие скины например DutchCotonti лажает, не встраивается + что самое паршивое может снести папки с изображениями там ведь экстра поля юзер может забыть прописать, а это значит, что названия папки нет, результат уничтожение папки и всего содержимого при нажатии кнопки Update. По уму надо сделать защиту от дурака.
This post was edited by motor2hg (2009-09-13 07:43, 14 years ago)
Dr2005alex
#29 2009-09-13 23:25
WebKaa.ru - Cotonti Relax
motor2hg
#30 2009-09-14 05:30
Надо это добавить в шапку иначе потеряется.

<<<12345>>>