Ответить Новая тема Новый опрос 
 преста обрезает стили
SmileNEt
Новичок
Сообщений: 8
Регистрация: 22-01-2016


05-02-2016 02:26
На странице перехожу в редактор "source code" и добавляю:
Код:
<div style="width:90%; min-height: 60px; border: 1px solid black;">
тут еще что то
</div>

после сохранения получаю:
Код:
<div style="width: 90%; border: 1px solid #000000;">
тут еще что то
</div>

Почему обрезаются некоторые стили, в данном примере
Код:
min-height: 60px;

сейчас точно не вспомню, но это не единственный стиль который исчезает после сохранения.
Куда и почему исчезает?


Сообщение отредактировал SmileNEt (04-02-2016 22:26)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


05-02-2016 13:27
Панель управления > Настройки > Общие настройки :: Использовать библиотеку HTMLPurifier > Нет.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SmileNEt
Новичок
Сообщений: 8
Регистрация: 22-01-2016


06-02-2016 00:19
Цитата:( Алекс @ 05-02-2016 09:27 Смотреть сообщение )
Панель управления > Настройки > Общие настройки :: Использовать библиотеку HTMLPurifier > Нет.

Спасибо. Еще вопрос, по какому принципу он решает что резать а что нет,?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-02-2016 01:52
Цитата:( SmileNEt @ 06-02-2016 01:19 Смотреть сообщение )
по какому принципу он решает что резать а что нет,?

Конфиг: /classes/Tools.php метод purifyHTML.
Директория HTMLPurifier: /tools/htmlpurifier/
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SmileNEt
Новичок
Сообщений: 8
Регистрация: 22-01-2016


06-02-2016 03:05
Спасибо. Правда ничего в нем не понял ))
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SmileNEt
Новичок
Сообщений: 8
Регистрация: 22-01-2016


06-02-2016 17:55
Назрел еще вопрос. Нагуглить ничего не получается.
Поставил модуль smartshortcode. работает как положено везде, кроме модуля smartblog.
В админке в редакторе шорткод добавляется, но на странице поста блога выводится в том же виде, т.е. при выводе страницы шорткод не преобразуется в html

сборка шорткода:
[HIDE]
Код:
<a href="" class="backlink">Back to shortcode main.</a>
<form action="" id="smartshortcode_note_form" class="smartshortcode_form">
    <div class="form-group"><label>Notification</label></div>
    <div class="tabfields_wrap">
        <div class="tabfields form-group">
            <label>Текст:</label>
            <textarea rows="5" cols="15" class="note_content form-control">Введите текст</textarea>
        </div>        
        <div class="tabfields form-group">
            <label>Стиль:</label>
            <select class="note_style form-control">
                <option value="box_alert_default">Серый</option>                
                <option value="box_alert_blue">Синий</option>                
                <option value="box_alert_alarm">Опасность</option>                
                <option value="box_alert_info">Информация</option>                
                <option value="box_alert_warning">Предупреждение</option>                
            </select>
        </div>
        <div class="tabfields form-group">
            <label>Дополнительный класс:</label><input type="text" value="" class="note_add_class form-control" />
        </div>      
    </div>
    <div>        
        <input type="submit" class="btn btn-primary" id="submit_tab_values" value="Вставить шорткод" />
    </div>
</form>
<script type="text/javascript">
$(function(){
    
    $(document.body).on('submit','#smartshortcode_note_form',function(){
        
        var content = $(this).find('.note_content').val();                
        var style = $(this).find('.note_style > option:selected').val();        
        var extra = $(this).find('.note_add_class').val();
        
        var scode = '[alert_box class="';
        
        scode += style;
        
        if(extra != '')
            scode += ' '+extra;
        
        scode += '"]'+content+'[/alert_box]';
        
        parent.tinyMCE.execCommand('mceInsertContent', false,scode);
        parent.tinyMCE.activeEditor.windowManager.close();
        return false;
        
    });

});
</script>
[/HIDE]

разборка шорткода:

[HIDE]
Код:
<?php
  function sds_alert_box($atts, $content = null, $tag, $hook_name) {
        extract(SmartShortCode::shortcode_atts(array(
            'class' => ''
        ), $atts));
        return '<div class="box_alert">
                    <div class="'.$class.'">
                        <div class="box_alert_box_img">
                            <img class="box_alert_img" src="/img/textblock/'.$class.'.png"></img>
                        </div>
                        <div class="box_alert_text">'
                            .SmartShortCode::do_shortcode($content,$hook_name).
                        '</div>
                    </div>
                </div>';        
    }
    SmartShortCode::add_shortcode('alert_box', 'sds_alert_box');

[/HIDE]


Сообщение отредактировал SmileNEt (06-02-2016 13:56)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SmileNEt
Новичок
Сообщений: 8
Регистрация: 22-01-2016


07-02-2016 03:19
Победил, костыль конечно, но умней ничего не придумал, если у кого будет правильно решение буду рад увидеть.

В общем суть в том, что shortcode.php не подключался в smartblog.
Путем тыка поиска, нашел где и откуда не подключается. Вот вся цепочка:
За вывод на страницу отвечает SmartBlogPost.php:78

Код:
if((Module::isEnabled('smartshortcode') == 1) && (Module::isInstalled('smartshortcode') == 1)){
                 require_once(_PS_MODULE_DIR_ . 'smartshortcode/smartshortcode.php');
                $smartshortcode = new SmartShortCode();
                $result['content'] = $smartshortcode->parse($post[0]['content']);


в 79 строке подключается smartshortcode.php через который подключаются все остальные скрипты smartshortcode. Сам smartshortcode.php подключался, но почему то (для ответа на этот вопрос у меня знаний не хватает) не подключался:

Код:
include "{$dir}/{$file}/front/shortcode.php";


Полностью код: smartshortcode.php:226

Код:
public function hooksdsShortcodeFront($params){
        $context = isset($this->context) ? $this->context : Context::getContext();
        $dir = dirname(__FILE__).'/addons';    
        if (is_dir($dir) && (!isset($context->controller->controller_type) || $context->controller->controller_type == 'front')) {
            if ($dh = opendir($dir)) {
                while (($file = readdir($dh)) !== false) {
                    if($file != '.' && $file != '..'){
                        if(is_dir("{$dir}/{$file}/front")){
                            include "{$dir}/{$file}/front/shortcode.php";                      
                        }
                    }
                }
                closedir($dh);
            }
        }
    }

Сам хук (на сколько я понимаю что это хук) на страницах престы работает, но вот в модуль блога почему то не хочет "заходить"

В итоге подключил shortcode.php непосредственно в SmartBlogPost.php

Код:
if((Module::isEnabled('smartshortcode') == 1) && (Module::isInstalled('smartshortcode') == 1)){
                 require_once(_PS_MODULE_DIR_ . 'smartshortcode/smartshortcode.php');
                 require_once(_PS_MODULE_DIR_ . 'smartshortcode/addons/alert_box/front/shortcode.php');
                $smartshortcode = new SmartShortCode();
                $result['content'] = $smartshortcode->parse($post[0]['content']);

Результат положительный шорткоды обрабатываются

С остальными не пробовал, не знаю только этот не работает в блоге или все.


Сообщение отредактировал SmileNEt (06-02-2016 23:21)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос