- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 36
последняя 1.10.1
открывайте файл /templates/_default_/components/com_blog_edit_post.tpl
находите строка примерно 72
<td colspan="2"> <div class="usr_msg_bbcodebox">{$bb_toolbar}</div> {$smilies} {$autogrow}
<td colspan="2"> {if !$is_admin} <div class="usr_msg_bbcodebox">{$bb_toolbar}</div> {$smilies} {/if} {$autogrow}
и открываете другой /core/classes/blog.class.php
в нем находите две одноименные функции и заменяете на те что приводятся ниже:
public function addPost($item){ $item = cmsCore::callEvent('ADD_POST', $item); $inUser = cmsUser::getInstance(); //парсим bb-код перед записью в базу // Парсим по отдельности части текста, если есть тег [cut $parse_bb = $inUser->is_admin ? false : true; $msg_to = $this->getPostShort($item['content']); $msg_to = cmsCore::parseSmiles($msg_to, $parse_bb); $msg_after = $this->getPostShort($item['content'], false, true); $msg_after = cmsCore::parseSmiles($msg_after, $parse_bb); $cut = $this->getPostCut($item['content']); $item['content_html'] = $msg_to . $cut . $msg_after; } else { $item['content_html'] = cmsCore::parseSmiles($item['content'], $parse_bb); } // Экранируем специальные символы if ( $parse_bb ) { $item['content'] = cmsDatabase::escape_string($item['content']); $item['content_html'] = cmsDatabase::escape_string($item['content_html']); } $post_id = $this->inDB->insert('cms_blog_posts', $item); if(!$post_id) { return false; } cmsInsertTags($item['tags'], $this->getTarget('tags'), $post_id); $item['id'] = $post_id; $item['seolink'] = $this->generatePostSeoLink($item); $this->inDB->query("UPDATE cms_blog_posts SET seolink='{$item['seolink']}' WHERE id = '{$post_id}'"); if ($item['published']){ cmsUser::checkAwards($item['user_id']); cmsCore::callEvent('ADD_POST_DONE', $item); } cmsCore::setIdUploadImage('post', $post_id); }
public function updatePost($post_id, $item, $update_seo_link = false){ $item['id'] = $post_id; $item = cmsCore::callEvent('UPDATE_POST', $item); $inUser = cmsUser::getInstance(); $parse_bb = $inUser->is_admin ? false : true; if ($update_seo_link){ $item['seolink'] = $this->generatePostSeoLink($item); } $msg_to = $this->getPostShort($item['content']); $msg_to = cmsCore::parseSmiles($msg_to, $parse_bb); $msg_after = $this->getPostShort($item['content'], false, true); $msg_after = cmsCore::parseSmiles($msg_after, $parse_bb); $cut = $this->getPostCut($item['content']); $item['content_html'] = $msg_to . $cut . $msg_after; } else { $item['content_html'] = cmsCore::parseSmiles($item['content'], $parse_bb); } if ( $parse_bb ) { $item['content'] = cmsDatabase::escape_string($item['content']); $item['content_html'] = cmsDatabase::escape_string($item['content_html'] . 'парсер сработал'); } $this->inDB->update('cms_blog_posts', $item, $post_id); cmsInsertTags($item['tags'], $this->getTarget('tags'), $post_id); }
у меня шаблон не дефолтный, все равно менять в /templates/_default_/ ?
и еще вы писали:
Добавьте проверку на админа перед вставкой панели редактора в шаблоне блога
И во frontend.php блогов при записи и обновлении поста для админа в функции parseSmiles() вторым параметром укажите false
вот с этим бы еще поподробнее, потому что эти изменения мне дадут текстовую область без обработки BB во всех блогах?
у меня шаблон не дефолтный, все равно менять в /templates/_default_/ ?
— нет меняйте в своем шаблоне…
И во frontend.php блогов при записи и обновлении поста для админа в функции parseSmiles() вторым параметром укажите false
— в 1.10.1 функции вынесены в класс…
Всё что вам нужно сделать я описал в посте №18.
создаю пост — вставляю исходный код — сохраняю — в результате на странице исходный код так и показывается с html тегами
если еще раз редактировать запсиь (пересохранить) — то теперь отображается нормально как и должно быть
как это можно поправить?
покрайне мере [cut=Читать далее...] — это работает!
Если да — то это еще лучше! Только бы тогда можно вернуть панельку с кнопками? как это сделать?
и еще… он получается и BB коды понимать будет после изменений?
покрайне мере [cut=Читать далее...] — это работает!
— кроме этого тега больше ничего не будет обрабатываться
создаю пост — вставляю исходный код — сохраняю
— проверьте правильно ли вы изменили функцию addPost()
еще раз вам огромное спасибо за помощь! кармы прибавил сколько мог и удачи вам!
В 1.10.1 есть все эвенты чтобы реализовать это плагином, но см. 1 пункт…
Ну и довольно много где придётся править чтобы это правильно реализовать.
У меня есть в планах разработка WYSIWYG редактора под 1.10.2 но релиз будет скорее всего после лета на основе SCEditor 1.4.x…
заменяем функцию в core/cms.php
public static function parseSmiles($text, $parse_bbcode=false){ $inUser = cmsUser::getInstance(); $_parse_text = self::callEvent('GET_PARSER', array('return'=>'','text'=>$text,'parse_bbcode'=>$parse_bbcode)); if($_parse_text['return']){ return $_parse_text['return']; } self::includeFile('includes/bbcode/bbcode.lib.php'); if (!$parse_bbcode){ $text = $inUser->is_admin ? $text : bbcode::autoLink($text); } else { //parse bbcode $bb = new bbcode($text); $text = $bb->get_html(); // конвертируем в смайлы в изображения $text = $bb->replaceEmotionToSmile($text); } return $text; }
Вставляю целиком весь код статьи — ничего не сохраняется
пробую частями по чуть чуть добавлять код и сохранять — сохраняется! как будто какое то ограничение стоит?
<p>текст, текст… <span style="line-height: 115%; font-family: 'Calibri','sans-serif'; color: red; font-size: 12pt; font-weight: bold">А теперь не очень “вкусная” правда, текст!</span></p>
- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 36