Есть ли стандартное решение для вставки feincms MediaFile в элемент формы RichTextContent (ckeditor или tinyMCE)? Я не смог найти в документации ... Теперь пользователям нужно скопировать вставку URL-адреса в medialib, затем перейдите на страницу и вставьте ...Feincms MediaFile в RichTextContent
6
A
ответ
2
Вы должны создать свою собственную реализацию для этого. Overwriting rejectRelatedLookupPopup немного хакерский, но у Django, похоже, нет поддержки для лучшего решения.
ОБНОВЛЕНИЕ: Этот ticket описывает всплывающее окно.
В вашей статической папке, где живет 'ckeditor', создайте плагин, например.
/app/
/static/
/app/
/js/
/ckeditor/
/plugins/
/feincms/
/images/
mediaFile.png
plugin.js
plugin.js
/**
* Basic sample plugin inserting a feincms mediaFile into the CKEditor editing area.
*/
// Register the plugin with the editor.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.plugins.html
CKEDITOR.plugins.add('feincms',
{
// The plugin initialization logic goes inside this method.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.pluginDefinition.html#init
init: function(editor)
{
// Define an editor command that inserts a feincms.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#addCommand
editor.addCommand('insertMediaFile',
{
// Define a function that will be fired when the command is executed.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.commandDefinition.html#exec
exec : function(editor)
{
// Define your callback function
function insertMediaFile(imageUrl) {
// Insert the imageUrl into the document. Style represents some standard props.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertHtml
editor.insertHtml('<img src="/media/' + imageUrl + '" style="float:left;margin-right:10px;margin-bottom:10px;width:200px;" />');
}
var imageUrl;
window.dismissRelatedLookupPopup = function (win, chosenId) {
imageUrl = $(win.document.body).find('#_refkey_' + chosenId).val();
insertMediaFile(imageUrl);
var name = windowname_to_id(win.name);
var elem = document.getElementById(name);
if (elem) {
if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) {
elem.value += ',' + chosenId;
} else {
document.getElementById(name).value = chosenId;
}
}
win.close();
};
var win = window.open('/admin/medialibrary/mediafile/?pop=1', 'id_image', 'height=500,width=800,resizable=yes,scrollbars=yes');
win.focus();
}
});
// Create a toolbar button that executes the plugin command.
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.html#addButton
editor.ui.addButton('feincms',
{
// Toolbar button tooltip.
label: 'Insert MediaFile',
// Reference to the plugin command name.
command: 'insertMediaFile',
// Button's icon file path.
icon: this.path + 'images/mediaFile.png'
});
}
});
Убедитесь, чтобы добавить плагин в сценарий инициализации CKEditor, например,
{ name: 'insert', items : [ 'feincms','HorizontalRule','SpecialChar' ] },
0
Не то, чтобы я знал. Если вы всегда (или иногда) нужен MediaFile, связанный с RichTextContent, написать свой собственный тип контента:
from feincms.module.medialibrary.fields import MediaFileForeignKey
from feincms.content.richtext.models import RichTextContent
class RichTextAndMFContent(RichTextContent):
mf = MediaFileForeignKey(MediaFile)
class Meta:
abstract = True
def render(self, **kwargs):
...
+0
Спасибо, но на самом деле это не ответ на вопрос – user2298943
Смежные вопросы
- 1. FeinCMS Первичной установки: Шаблоны
- 2. Как установить стороннее приложение на FeinCMS?
- 3. FeinCMS, как получить доступ к атрибуту родительского объекта content_types
- 4. Переупорядочить поля типа содержимого FeinCMS на странице Admin
- 5. FeinCMS, промежуточная модель по типу содержимого поля
- 6. uploadcare fileFrom ngCordova MediaFile
- 7. UWP - Преобразование MediaFile в StorageFile
- 8. Обработка Исключение в приложении MediaFile
- 9. AudioStreaming mediafile from web
- 10. FilteredSelectMultiple widget on field feincms content type
- 11. Список статей Form FeinCMS Content Typs
- 12. Feincms ApplicationContent переписать контекст
- 13. Настроить feincms admin form
- 14. Перенос страниц FeinCMS не работает
- 15. выгрузить данные из Джанго Feincms
- 16. Imperavi Redactor интеграция feincms/администратор/
- 17. MediaFile КР8 не играет с помощью Uri
- 18. Feincms, список созданных страниц с определенным шаблоном
- 19. DJANGO: feinCMS отсутствует mptt при попытке sync.db
- 20. Feincms find page with specific content type
- 21. Xamarin Forms Media Plugin, Get stream или StorageFile from MediaFile
- 22. Как я могу подклассифицировать мои ModelAdmins в проекте Django FeinCMS?
- 23. Настройка страницы feincms администратора в зависимости от пользователя
- 24. VPAID javascript mediafile, который загружает случайный файл VAST
- 25. Django custom admin action для столбца действий FeinCMS
- 26. FeinCMS разрешает тип содержимого только один раз для объекта страницы
- 27. У кого-нибудь есть опыт работы с FeinCMS или Mezzanine?
- 28. Может ли <MediaFile> начать чтение до завершения генерации видео?
- 29. FeinCMS; как убедиться, что процесс content_type(), зарегистрированный в классе расширения Base, выполняется.
- 30. переход от Django1.3 к Django1.4 приводит к выпуску feincms drag-n-drop
Вот о чем я придумал ... – user2298943