Цитата:
Сообщение от Pavel Antonov
Конечно! Будет полезно...
|
Для создания кнопки в HTMLArea необходимо прежде всего конечно установить сам RTE HTMLArea.
Затем заходите в каталог /typo3conf/ext/rtehtmlarea/htmlarea/plugins и копируете с надлежащими правами плугин попроще - я выбрал InsertSmiley. В результате в этом каталоге возник каталог InsertPodrobno - назовем его так (Вставить Подробность (по аналогии с
http://gazeta.ru)). Обратите внимание на то что в названии этого каталога есть большие буквы. Внутри этого каталога не удаляйте пока ничего.
Переименовываем insert-smiley.js в insert-podrobno-compressed.js (по умолчанию используются сжатые скрипты - нам же нужны для правки несжатые). В нем везде заменяем InsertSmiley на InsertPodrobno. Кроме названия рисунка ed_smiley.gif.
В подкаталоге popups переименовываем insertsmiley.html в insertpodrobno.html
Внутри locallang.php оставляем:
$LOCAL_LANG = Array (
'default' => Array (
'Insert Podrobno' => 'Insert Podrobno',
'Smiley' => 'Smiley',
'Cancel' => 'Cancel',
),
'ru' => Array (
'Insert Podrobno' => 'Вставить подробность',
'Smiley' => 'Смайлик',
'Cancel' => 'Отмена',
),
);
В /typo3conf/ext/rtehtmlarea/class.tx_rtehtmlarea_base.php добавляем элементы типа "InsertPodrobno" или "insertpodrobno" в массивы и строки:
$defaultToolbarOrder,
$conf_toolbar_convert,
$pluginButton,
$pluginList,
$this->defaultToolbarOrder,
действуя по обстоятельствам
также меняем conf-файлы - ext_conf_template.txt и ext_localconf.php - добавляете название InsertPlugin в HTMLAreaPluginList
Заходим в Менеджер расширений и там добавляем в htmlArea RTE в List of htmlArea plugins в конец InsertPodrobno
В TS ставим на всякий случай
RTE.config.tt_news.bodytext {
showButtons = insertpodrobno
}
Обновляем кэш typo3conf
Как видите все очень просто. В конце панели инструментов - можете посмотреть - возникла рожица.
Далее уже работаете с JavaScript.
Например в файле insert-podrobno-compressed.js исправляете
InsertPodrobno.setTagHandler = function(instance) {
return (function(param) {
if(param && typeof(param.filePodrobno) != "undefined") {
instance.editor.focusEditor();
instance.editor.insertHTML(param.filePodrobno);
}
});
};
а в файле popups/insertpodrobno.html добавить в конец
<iframe src='podrobn1.html' name='podrobno'></iframe>
<button onclick='aaa()'></button>
<script>function aaa() {
var params = {};
params.filePodrobno = podrobno.document.body.innerHTML;
__dlg_close(params);
return false;
}</script>
то при нажатии на кнопку в текст визуального редактора вставится содержимое файла podrobno1.html в каталоге popups
У меня же есть еще выпадающий список для выбора этих podrobnХ.html файлов