Страница 1 из 1

Ошибки версии 1.19.2

СообщениеДобавлено: 24 янв 2017, 20:33
support
Ошибки Open Real Estate 1.19.2

Re: Ошибки версии 1.19.2

СообщениеДобавлено: 01 фев 2017, 13:43
finder
Если я в объявлении хочу добавить кириллическую ссылку, например "москва.рф" - то она не сохраняется в исходном коде. Можно сохранить только преобразовав такую ссылку методом Punycode в "xn--80adxhks.xn--p1ai"
Как исправить?

UPD. Еще одна ошибка у меня появилась.
В объявлении делаю ссылку типа "всплывающее окно".
При редактировании она в исходном коде показывается нормально - <a href="http://www.ptk.ru" onclick="window.open(this.href, '', 'resizable=no,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=no,dependent=no'); return false;" rel="nofollow">
Сохраняю и получаю на выходе такую ссылку в исходном коде - <a href="http://www.ptk.ru" rel="nofollow">
В новостях делаю аналогичные ссылки - и там они сохраняются и работают без замечаний.

Re: Ошибки версии 1.19.2

СообщениеДобавлено: 02 фев 2017, 13:39
Foton
Скорее всего так работает HTML Purifier, как вариант - можно отключить его для объявлений, добавляемых администратором.
Для этого в файле protected\modules\apartments\models\Apartment.php замените
Код: Выделить всё
$allWs = HFormEditor::getAllFields();

        $activeLangs = Lang::getActiveLangs(true);
        foreach($allWs as $row){
            if($row['type'] != FormDesigner::TYPE_TEXT_AREA_WS){
                continue;
            }
            if($row['is_i18n']){
                foreach($activeLangs as $lang){
                    $attr = $row['field'].'_'.$lang['name_iso'];
                    $this->{$attr} = purify($this->{$attr});
                }
            } else {
                $this->{$row['field']} = purify($this->{$row['field']});
            }
        }

на
Код: Выделить всё
if(!Yii::app()->user->checkAccess('backend_access')) {
            $allWs = HFormEditor::getAllFields();

            $activeLangs = Lang::getActiveLangs(true);
            foreach($allWs as $row){
                if($row['type'] != FormDesigner::TYPE_TEXT_AREA_WS){
                    continue;
                }
                if($row['is_i18n']){
                    foreach($activeLangs as $lang){
                        $attr = $row['field'].'_'.$lang['name_iso'];
                        $this->{$attr} = purify($this->{$attr});
                    }
                } else {
                    $this->{$row['field']} = purify($this->{$row['field']});
                }
            }
        }