Ограниченный набор форматирования для пользователей

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Ограниченный набор форматирования для пользователей

Сообщение sdelkadrom » 18 сен 2017, 13:39

Файл protected/modules/formdesigner/models/HFormEditor.php позволяет ограничить набор форматирование в текстовом редакторе для пользователей. Но, эти ограничения не действуют на уже существующее поле – «описание». Ограничения работают только для вновь созданных полей с текстовым редактором. Как применить к существующему поля «описание» ограниченный набор форматирования прописанный в HFormEditor.php ?
sdelkadrom
Гражданин
Гражданин
 
Сообщения: 77
Зарегистрирован: 02 июн 2016, 14:25
Очки репутации: 5

Re: Ограниченный набор форматирования для пользователей

Сообщение Foton » 19 сен 2017, 10:58

Опишите подробнее, какие именно ограничения вы имеете в виду?
Foton
Разработчик
Разработчик
 
Сообщения: 431
Зарегистрирован: 26 янв 2012, 14:58
Очки репутации: 8

Re: Ограниченный набор форматирования для пользователей

Сообщение sdelkadrom » 21 сен 2017, 16:18

Пользователь не должен иметь возможности редактировать html-код, добавлять ссылки, фото, изменять стили, шрифт, цвет шрифта и т.п. действия. Сейчас в форме подачи объявления для поля «описание» выводится текстовой редактор с тулбаром содержащим все доступные функции редактора. В protected/modules/formdesigner/models/HFormEditor.php есть возможность ограничить средства форматирования для пользователей:
Код: Выделить всё

                case FormDesigner
::TYPE_TEXT_AREA_WS:
                    if ($row['is_i18n']) {
                        Yii::app()->controller->widget('application.modules.lang.components.langFieldWidget', array(
                            'model' => $model,
                            'field' => $row['field'],
                            'type' => 'text-editor'
                        ));
                    } else {
                        // даем пользователям ограниченый набор форматирования
                        $toolbar = array(
                            //array('Source', '-', 'Bold', 'Italic', 'Underline', 'Strike'),
                           array('Cut', 'Copy', 'PasteText', '-', 'Undo', 'Redo'),
                            array('NumberedList', 'BulletedList'),
                            //array('Styles', 'Format', 'Font', 'FontSize', 'TextColor', 'BGColor'),
                            //array('Image', 'Link', 'Unlink', 'SpecialChar'),
                        );

                        $filebrowserImageUploadUrl = '';

                        if (Yii::app()->user->checkAccess('backend_access')) { // if admin - enable upload image
                            $filebrowserImageUploadUrl = Yii::app()->createAbsoluteUrl('/site/uploadimage', array('type' => 'imageUpload', Yii::app()->request->csrfTokenName => Yii::app()->request->csrfToken));

                            $toolbar = array(
                                array('Source', '-', 'Bold', 'Italic', 'Underline', 'Strike'),
                                array('Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'),
                                array('NumberedList', 'BulletedList', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'),
                                array('Styles', 'Format', 'Font', 'FontSize', 'TextColor', 'BGColor'),
                                array('Image', 'Link', 'Unlink', 'SpecialChar'),
                            );
                        }

                        Yii::app()->controller->widget('application.extensions.editMe.widgets.ExtEditMe', array(
                            'model' => $model,
                            'attribute' => $row['field'],
                            'toolbar' => $toolbar,
                            'filebrowserImageUploadUrl' => $filebrowserImageUploadUrl,
                            'htmlOptions' => array('id' => $model->id)
                        ));
                    }

                    break;
 

Но, для существующего поля «описание» с текстовым редактором эти ограничение не действуют. Тулбар для существующего поля «описание» настраивается в /protected/modules/lang/components/ langFieldWidget.php но настройки общие и для администратора (модератора) и для пользователей:
Код: Выделить всё

case 
'text-editor':
                $html .= '<div class="clear"></div>';

                $filebrowserBrowseUrl = $filebrowserImageBrowseUrl = $filebrowserFlashBrowseUrl = '';
                $filebrowserUploadUrl = $filebrowserImageUploadUrl = $filebrowserFlashUploadUrl = '';
                $allowedContent = false;

                if (Yii::app()->user->checkAccess('upload_from_wysiwyg')) { // if admin - enable upload image
                    //$filebrowserImageUploadUrl = Yii::app()->createAbsoluteUrl('/site/uploadimage', array('type' => 'imageUpload', Yii::app()->request->csrfTokenName => Yii::app()->request->csrfToken));
                    
                    $filebrowserBrowseUrl 
= Yii::app()->getBaseUrl(true).'/re_kcfinder/browse.php?opener=ckeditor&type=files';
                    $filebrowserImageBrowseUrl = Yii::app()->getBaseUrl(true).'/re_kcfinder/browse.php?opener=ckeditor&type=images';
                    $filebrowserFlashBrowseUrl = Yii::app()->getBaseUrl(true).'/re_kcfinder/browse.php?opener=ckeditor&type=flash';
                    
                    $filebrowserUploadUrl 
= Yii::app()->getBaseUrl(true).'/re_kcfinder/upload.php?opener=ckeditor&type=files';
                    $filebrowserImageUploadUrl = Yii::app()->getBaseUrl(true).'/re_kcfinder/upload.php?opener=ckeditor&type=images';
                    $filebrowserFlashUploadUrl = Yii::app()->getBaseUrl(true).'/re_kcfinder/upload.php?opener=ckeditor&type=flash';
                    
                    $allowedContent 
= true;
                }

                $html .= $this->widget('application.extensions.editMe.widgets.ExtEditMe', array(
                    'model' => $this->model,
                    'attribute' => $field,
                    'toolbar' => array(
                        array('Source', '-', 'Bold', 'Italic', 'Underline', 'Strike'),
                        array('Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'),
                        array('NumberedList', 'BulletedList', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'),
                        array('Styles', 'Format', 'Font', 'FontSize', 'TextColor', 'BGColor'),
                        array('Image', 'Link', 'Unlink', 'SpecialChar'),
                    ),
                    'allowedContent' => $allowedContent,
                    
                    
'filebrowserBrowseUrl' => $filebrowserBrowseUrl,
                    'filebrowserImageBrowseUrl' => $filebrowserImageBrowseUrl,
                    'filebrowserFlashBrowseUrl' => $filebrowserFlashBrowseUrl,
                    
                    
'filebrowserUploadUrl' => $filebrowserUploadUrl,
                    'filebrowserImageUploadUrl' => $filebrowserImageUploadUrl,
                    'filebrowserFlashUploadUrl' => $filebrowserFlashUploadUrl,
                    
                    
'htmlOptions' => array('id' => $fieldId)
                ), true);
                break;

Необходимо ограничить тулбар для пользователей, при этом без ограничения тулбара для администратора (модератора).
sdelkadrom
Гражданин
Гражданин
 
Сообщения: 77
Зарегистрирован: 02 июн 2016, 14:25
Очки репутации: 5

Re: Ограниченный набор форматирования для пользователей

Сообщение Foton » 22 сен 2017, 11:08

Можно использовать условие по значению Yii::app()->user->checkAccess('backend_access')
Foton
Разработчик
Разработчик
 
Сообщения: 431
Зарегистрирован: 26 янв 2012, 14:58
Очки репутации: 8


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron