Борис И

Борис И

Был в сети 15 января 2023, 17:28
Заказы не принимаю
Здравствуйте. Почему снипет складывает картинки в папку по умолчанию, хотя указана другая. Где я накосячил.
[[!ogimage?
        &resId=`[[+id]]`
        &textPosition=`bottom`
        &textAlign=`left`
        &fontColor=`#fafafa`
        &brightness=`-100` 
        &override=`1`
        &width=`600`
        &fontSize=`30`
        &imageSrc=`/assets/images/img/ogimage_background1.jpg` 
        previewsUrl=`/assets/images/ogimage/categor/` 
        &imageSrc=`[[rezimgcrop? &input=`[[+firstImage?]]` &options=`r-0x365`]]`
        &caption=`[[+longtitle]]`]]
К сожалению плагин кривой. При сохранении с фронта, форма «подвисает». Ресурс в админке появляется, а на фронте висит т.е нет никаких сообщений.
Помогите, куда копать, уже несколько дней бьюсь, и победа не в мою пользу
Не судите строго, я нисколько не программист. Пытаюсь в меру своих знаний решить задачу. Принимаю любую критику, благодарен за улучшение.
Суть, плагин который ищет в ресурсе /0/ и заменяет на /id/
<?php
$id=$modx->resource->get('id');
 
if(isset($id)) {
    $content = $modx->resource->getContent();
    $content=preg_replace('/\/[0]{1}\//',"/".$id."/",$content);
    $object->setContent($content);
    $object->save();
}
Срабатывает по: OnDocFormSave и OnBeforeDocFormSave
При пересохранении (в админке) все пути с 0 меняет на id
Нашел уже небольшую экзотическую проблему с данным плагином. При создании копии ресурса и срабатывании плагина он меняет 0 на id ресурса, при этом фото по данному id нет т.к. они в папке ресурса оригинала.
Думаю что с фронта с Tickets он работать не будет, там id ресурса еще не присвоен.

Буду очень признателен, если удастся решить проблему без костылей в виде кривого плагина.
Все как положено, сам спросил, сам ответил)
Вдруг кому пригодится, для примера:
Для своих стилей, код
style_formats: [
       {title: 'Выделение синим', block: 'div', classes: 'blb'},
       {title: 'Выделение зеленым', block: 'div', classes: 'blg'},
       {title: 'Выделение красным', block: 'div', classes: 'blr'},
       {title: 'Выделение', block: 'div', classes: 'bl'},
    ],
Весь код ниже
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>
tinyMCE.PluginManager.add('stylebuttons', function(editor, url) {
['pre', 'p', 'code', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(function(name){
editor.addButton("style-" + name, {
tooltip: "Header " + name.toUpperCase(),
text: name.toUpperCase(),
onClick: function() { editor.execCommand('mceToggleFormat', false, name); },
onPostRender: function() {
var self = this, setup = function() {
editor.formatter.formatChanged(name, function(state) {
self.active(state);
});
};
editor.formatter ? setup() : editor.on('init', setup);
}
})
});
});

tinymce.init({
selector: "#ticket-editor",
relative_urls: false,
remove_script_host: false,
style_formats: [
       {title: 'Выделение синим', block: 'div', classes: 'blb'},
       {title: 'Выделение зеленым', block: 'div', classes: 'blg'},
       {title: 'Выделение красным', block: 'div', classes: 'blr'},
       {title: 'Выделение', block: 'div', classes: 'bl'},
    ],
setup: function (editor) {editor.on('change', function () {editor.save();});},
plugins: ['advlist autolink lists link image charmap print preview anchor','searchreplace visualblocks code fullscreen','insertdatetime media table contextmenu paste code  stylebuttons ticketsfiles'],
advlist_bullet_styles:'',
advlist_number_styles:'',
menu:{},
toolbar:'undo redo | style-h2 style-h3 style-h4 bold blockquote italic underline strikethrough alignleft aligncenter | bullist numlist | link image media code visualblocks   styleselect'
});
</script>
Здравствуйте.
Подскажите пожалуйста. Нужно добавить кнопку с добавлением своих стилей к тексту (блоку).
В вызове
toolbar:'undo redo | style-h2 style-h3 style-h4 bold blockquote italic underline strikethrough alignleft aligncenter | bullist numlist | link image media code visualblocks   styleselect'
добавил styleselect. Кнопка Formats в редакторе появилась, там стандартные стили (теги — обертки).
В настройках tiny.css_selectors прописал свои стили.
Не работает, выводит стили (теги — обертки) уже вшитые в редактор. Что я делаю не так
Опять нашел косяк. После пересохраниения тикета, к картинкам добавляет второй слеш.
Исправил, так
вместо
tinymce.init({
selector: "#ticket-editor",
relative_urls: false,
стало
tinymce.init({
selector: "#ticket-editor",
relative_urls: false,
remove_script_host: false,
весь код такой
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>
tinyMCE.PluginManager.add('stylebuttons', function(editor, url) {
['pre', 'p', 'code', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(function(name){
editor.addButton("style-" + name, {
tooltip: "Header " + name.toUpperCase(),
text: name.toUpperCase(),
onClick: function() { editor.execCommand('mceToggleFormat', false, name); },
onPostRender: function() {
var self = this, setup = function() {
editor.formatter.formatChanged(name, function(state) {
self.active(state);
});
};
editor.formatter ? setup() : editor.on('init', setup);
}
})
});
});

tinymce.init({
selector: "#ticket-editor",
relative_urls: false,
 remove_script_host: false,
setup: function (editor) {editor.on('change', function () {editor.save();});},
plugins: ['advlist autolink lists link image charmap print preview anchor','searchreplace visualblocks code fullscreen','insertdatetime media table contextmenu paste code  stylebuttons ticketsfiles'],
advlist_bullet_styles:'',
advlist_number_styles:'',
menu:{},
toolbar:'undo redo | style-h2 style-h3 bold blockquote italic underline strikethrough alignleft aligncenter | bullist numlist | link image media code '
});
</script>
Столкнулся с похожей ситуацией. Картинки перестали грузиться с фронта, даже у админа «Доступ запрещен». Пересмотрел все от прав на папки, до источников файлов и политик.
Сайт настраивал и периодически ковырял шаблоны. Проблему нашел случайно. На сранице добавления (редактирования) тикета были подключены комментарии (в шаблоне).
Если на странице добавления (редактирования) тикета подключены комментарии, убирите их, они там не нужны.
Спасибо, отличное решение. Периодически, в процессе пересохранения тикета с фронта у url картинок (/assets/images/tickets/14/kartinka.jpg) удалялся слеш перед ссылкой (assets/images/tickets/14/kartinka.jpg),
после чего отображение ломалось т.к. вместо site.ru/assets/images/tickets/14/kartinka.jpg
было site.ru/razdel/assets/images/tickets/14/kartinka.jpg
Решилось:
1. добавил в
tinymce.init({
selector: "#ticket-editor",
relative_urls: false,
2. в параметрах плагина Path Options установил fullpathurl вместо docrelative
Пока все нормально.