Dayver |
|
---|---|
#46306 Kabak: По большому счёту если тащить всё подобные изменения в коробку то она быстро превратится в очень сложную систему разобратся в которой будет черезвычайно сложно. А поскольку код движка из-за своей простоты является очень надёжным и быстрым то это путь в другую сторону. Но решать подобные задачи можно и нужно немного другим методом.
Опишу свой подход как бы решал эту конкретную задачу я в своих проектах. Допустим есть у вас сайт APC ... и нужно вам делать изменения конкретно под этот проект. Тогда создаём плагин с именем например apc и складываем в него все решения которые руки норовят запихнуть в код движка или стандартных модулей и расширений. Так же и с этой конкретной задачей - добавляете новый параметр в конфигурацию своего плагина apc. Дале используя хуки (конкретно по теме обсуждения подойдёт page.add.tags ) создаёте альтернативный тегу 'PAGEADD_FORM_TEXT' свой , например 'PAGEADD_FORM_TEXT_APC' и используете в шаблоне его вместо стандартного. Тогда обновление движка не спровоцирует ситуацию что все ваши внедрения в системные файлы пропадут, а сама настройка и генерация тега по прежнему будут работать из вашего сайто-плагина так как вы ожидаете. // в вашем случае вместо cot::$cfg['page']['minimaxieditor'] // сипользуйте конфигурацию из плагина cot::$cfg['plugin']['apc']['minimaxieditor'] При таком подходе все индивидуальные доработки под конкретно ваш сайт или задачи будут хранится в уникальном плагине ... если задачи от проекта к проекту однотипные то можете выделить сборник подобных решений в одном плагине (и загружать его во все свои сайты), а совсем уникальные задачи решать в индивидуальном сайтовом плагине. При таком подходе и движок не загромождается решениями которые возможно нужны будут только вам и процес обновления будет доступен в ваших проектах. Pavlo Tkachenko aka Dayver
|
|
Dit bericht is bewerkt door Dayver (2023-04-03 10:44, 1 jaar ago) |
Kabak |
|
---|---|
А чем утяжетит работу движка встроенная в админку настройка для поставляемго в базовоё версии CKEditor ? По-моему, писать плагин из-за каждого тумблера для админки - не выход, а как раз утяженение элементарных и удобных вещей. ( я просто высказываю мои мысли вслух. Это никого ни к чему не обязывает )
Главное, что вы рассказали мне где что искать и менять. Буду решать на моё усмотрение... Есть ещё проще вариант - зайти в config.js от CKEditor и заменить все меню на те, которые хочешь видеть в любом разделе сайта... всего и делов-то. И плагин писать не нужно. |
Dayver |
|
---|---|
#46322 Kabak: Конкретно эта доработка никак. Я в целом говорю что хотелок много может поступать и решение не каждой бывает простым. Я высказал общую концепцию почему движок до этого времени дожил таким шустрым и надёжным. #46322 Kabak: Так идею я как раз и высказал что не под каждый тумблер свой плагин, а один кастомный плагин под все не стандартные ... это немного по другому уже воспринимается. Pavlo Tkachenko aka Dayver
|
Kabak |
|
---|---|
Может кто знает как получить доступ к элементу code от CKEditor . Я хочу подсвечивать или где-то выводить имя языка программирования на котором примеры в блоках code ?
Можно это сделать во время генерации страницы - генерить какой-то класс для конкретного блока CKEditor code или какую-нибудь иную метку, чтобы в CSS это использовать и отображать ? Например
CKEditor для блоков кода генерит <pre class="brush:cpp;"> <pre class="brush:php;">
без JS как-то можно обойтись ? |
|
Dit bericht is bewerkt door Kabak (2023-08-30 11:37, 7 maanden ago) |
Alex300 |
|
---|---|
как вариант серез CSS создав правила для всех классов Если используется SyntaxHighlighter то он генерит такие дивы: Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
|
Dit bericht is bewerkt door Alex300 (2023-08-30 16:14, 7 maanden ago) |
Kort |
|
---|---|
#47045 Alex300: А почему не CSS: div.syntaxhighlighter.php { background: #eee; position: relative; } div.syntaxhighlighter.php:before { content: 'PHP'; background: #ddd; position: absolute; top: 0; left: 0; } и далее по тексту? SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
Dit bericht is bewerkt door Kort (2023-08-30 17:54, 7 maanden ago) |
Kabak |
|
---|---|
Да, просто добавил в CSS
div.syntaxhighlighter.php:before { content: 'PHP'; background: #f70a0a; border :#f70a0a solid 1px; border-radius : 3px; position: absolute; top: 0px; left: 55px; } div.syntaxhighlighter.cpp:before { content: 'CPP'; background: #0285ff; border :#0285ff solid 1px; border-radius : 3px; position: absolute; top: 0px; left: 55px; }
Благодарю за помощь. Осталось красиво сделать. Добавлено 6 дней спустя: Почему-то не всегда высвечивается с первого раза. Открываю отладчик в браузере и тогда появляются надписи. В чём может быть косяк ? Не до конца загрузилась страница или в кэше браузера сидит старая страница ? |
|
Dit bericht is bewerkt door Kabak (2023-09-06 08:51, 7 maanden ago) |
Kort |
|
---|---|
div.syntaxhighlighter { position: relative; } div.syntaxhighlighter:before { color: @white; padding: 0 .5rem; background: @black; position: absolute; top: 0; left: 0; z-index: 1; } div.syntaxhighlighter.php:before { content: 'PHP'; } div.syntaxhighlighter.xml:before { content: 'XML'; } С такими стилями у меня работает в Mozilla, Chrome и Edge и сразу и после перезагрузки страницы. Посмотри что в консоли, для очистки совести отключи кэш Cotonti и почисти кэш браузера. Если на странице эти стили не прогрузились, посмотри в отладчике как и где загрузился css-файл с ними, на месте ли стили div'а. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
Dit bericht is bewerkt door Kort (2023-09-06 12:53, 7 maanden ago) |
Alex300 |
|
---|---|
Отладчик страницы отключает кеш браузера. Возможно браузер закешировал старую версию CSS-ки Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Kabak |
|
---|---|
Похоже дело было в кеше браузера. При отладке кеш браузера у меня отключается |
Kort |
|
---|---|
#47058 Kort:div.syntaxhighlighter { position: relative; } div.syntaxhighlighter:before { color: @white; padding: 0 .5rem; background: @black; position: absolute; top: 0; left: 0; z-index: 1; } div.syntaxhighlighter.php:before { content: 'PHP'; } div.syntaxhighlighter.xml:before { content: 'XML'; } Если подумать, то правильнее было бы так: div:has(> div.syntaxhighlighter) { position: relative; } div:has(> div.syntaxhighlighter):before { position: absolute; top: 0; right: 0; z-index: 1; } div:has(> div.syntaxhighlighter.css):before { content: 'CSS/LESS'; } div:has(> div.syntaxhighlighter.php):before { content: 'PHP'; } div:has(> div.syntaxhighlighter.xml):before { content: 'XML'; } Псевдокласс :before() должен применяться для непосредственного родительского элемента .syntaxhighlighter, иначе при горизонтальной прокрутке "лэйба" будет тоже скролиться. Но в Mozilla работать не будет -- псевдокласс :has() в нем пока что не реализован. В остальных браузерах все ок. P.S. Или этот самый безымянный родительский div должен перестать быть безымянным. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
Dit bericht is bewerkt door Kort (2023-09-15 06:31, 7 maanden ago) |
Kabak |
|
---|---|
#46319 Dayver:#46306 Kabak: 1) С какими характеристиками нужно создавать такой плагин ? hook global ? 2) Как именно следует переопределять переменные настрооек в своём плагине ? где почитать ? |
Kort |
|
---|---|
SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Kabak |
|
---|---|
Я обновілся до 0.9.24beta и слетели настройки или какие-то моменты которые я прописывал прямо в движке - в php или .js от плагінов. Безусловно решение от Dayver очень подойдёт хоятбы для того что можно запихнуть в cfg. |
Kort |
|
---|---|
Ну это вряд ли Дайвер придумал. Я думаю, все так делают -- это ж логично. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|