حسین ستاری
2 سال پیش توسط حسین ستاری مطرح شد
8 پاسخ

مشکل در ویرایش پست با ckeditor

سلام من برای نوشتن و ویرایش پست از ckeditor استفاده میکنم موقع نوشتن همه چیز اوکیه ولی موقع ویرایش اون چیزی که نوشتم دقیقا نیست یعنی یه تغییراتی داخل اش انجام میده مثلا تگ h2 رو میکنه p یا یجایی رنگ داده بودم به متن اون رو از بین برده یا بین چندتا بند فاصله رو بیشتر کرده
مشکل فقط زمانیه که دیتا داره تو ckedtior نمایش داده میشه یعنی تو دیتابیس همه چیز اوکیه و حتی خروجی پست هم مشکلی نداره مشکل فقط زمانیه که قراره پست ویرایش بشه و داخل ckeditor اطلاعات اینطوری میشه
ورژن چهار فول پکیج استفاده میکنم
@mhyeganeh
@endworld
@SpyStar0003
@sinashahoveisi
@mrkaf
@hesammousavi
@amin.webdesign
@rezajahangir
@null


ثبت پرسش جدید
سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 2 سال پیش مطرح شد
0

سلام توی فرانت دیتایی که موقع خروجی میده رو بگیر و همون دیتا رو دوباره به عنوان initialValue بده بهش. اگه مشکل داشت که نسخه ادیتور رو تغییر بده. نسخه ckEditor قدیمیه الان ckEditor 5 اومده که توی این سایت راحت میتونی چیزی که میخوای رو بسازی و آخرش کدشو بگیری. اگه مشکل نداشت، باگ توی ارسال و دریافتش داری که همه اطلاعات یا فرستاده نمیشه یا دریافت نمیشه


حسین ستاری
تخصص : برنامه نویس
@Ho3ein 2 سال پیش مطرح شد
0

@sinashahoveisi
سلام نسخه ادیتور عوض کردم باز هم این مشکل رو دارم البته به پنج روهمون نسخه چهار تعوض کردم مشکل همچنان پابرجاست
چطور میتونم تنظیمات کانفیک رو طوری کنم که دقیقا همون چیزی که میگیره رو برگردونه و فیلتر این وسط اتفاق نیوفته


سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 2 سال پیش مطرح شد
0

@Ho3ein
قطعا باید اینجوری باشه دیگه. ورودی هرچی میدی بهش همون رو رندر کنه و نمایش بده. به نظرم مشکل از اون نسخه است


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 2 سال پیش مطرح شد
0

سلام به شما دوست عزیز.
لطف کنید کدتونو قرار بدین.


حسین ستاری
تخصص : برنامه نویس
@Ho3ein 2 سال پیش مطرح شد
0

@rezajahangir

<script src="/ckeditor/ckeditor.js"></script>
        <script>
            var options = {
                filebrowserImageBrowseUrl: '/admin/laravel-filemanager?type=Images',
                filebrowserImageUploadUrl: '/admin/laravel-filemanager/upload?type=Images&_token={{csrf_token()}}',
                filebrowserBrowseUrl: '/admin/laravel-filemanager?type=Files',
                filebrowserUploadUrl: '/admin/laravel-filemanager/upload?type=Files&_token={{csrf_token()}}'
            };

            CKEDITOR.replace('text', options);
<div class="form-group">
                <label for="inputEmail3" class="col-sm-2 control-label">متن مقاله :</label>
                <textarea class="form-control @error('body') is-invalid @enderror" name="body"
                          id="text" cols="30"
                          rows="10">{{ $article->body }} </textarea>
                @error('body')
                <span class="invalid-feedback" role="alert">
                                                            <strong>{{ $message }}</strong>
                                                        </span>
                @enderror
            </div>

فایل config

CKEDITOR.editorConfig = function (config) {

    config.contentsLangDirection = 'rtl';

    config.language = 'en';

    // config.extraPlugins = 'syntaxhighlight';
    config.extraPlugins = 'codesnippet';
    config.codeSnippet_theme = 'paraiso.dark';

};

من تو پروژه های دیگه هم از ckeditor استفاده کردم و مشکلی نداشته اما نمیدونم اینجا چرا اینطوری میشه


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 2 سال پیش مطرح شد
0

سلام
به جای

 {{$article->body}} 

اینطوری بذار

{!! $article->body !!}

حسین ستاری
تخصص : برنامه نویس
@Ho3ein 2 سال پیش مطرح شد
0

@amin.webdesign
اینطوری هم نمیشه


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 2 سال پیش مطرح شد
0

توضیحاتی که در ادامه خدمتتون عرض میکنم با ckeditor ورژن 4 نوشته شده است.
بلید مربوط به ایجاد مقاله رو به صورت زیر بنویسید:

<div class="form-group">
    <label for="description">متن</label>
    <textarea class="form-control" name="description" placeholder="متن را وارد کنید"></textarea>
</div>
<script src="https://cdn.ckeditor.com/4.16.0/standard/ckeditor.js"></script>
<script>
    CKEDITOR.replace('description', {
    language: 'fa',
    filebrowserUploadUrl: '{{ route("editor-upload", ["_token" => csrf_token()]) }}',
    filebrowserUploadMethod: 'form'
    })
</script>

بلید مربوط به ویرایش مقاله هم به صورت زیر بنویسید:

<div class="form-group">
    <label for="description">متن</label>
    <textarea class="form-control" name="description" placeholder="متن را وارد کنید">{{ $article->description }}</textarea>
</div>
<script src="https://cdn.ckeditor.com/4.16.0/standard/ckeditor.js"></script>
<script>
    CKEDITOR.replace('description', {
    language: 'fa',
    filebrowserUploadUrl: '{{ route("editor-upload", ["_token" => csrf_token()]) }}',
    filebrowserUploadMethod: 'form'
    })
</script>

یک روت به صورت زیر تعریف کنید:

Route::post('/editor/upload', [EditorUploadController::class, 'upload'])->name('editor-upload');

و در آخر فانکشن زیر رو داخل کنترلر EditorUploadController بنویسید:

public function upload(Request $request)
{
    $path = 'upload/articles';
    if ($files = $request->file('upload'))
    $file_name = $files->store($path, 'public_files');
    $function = $request->CKEditorFuncNum;
    $url = asset($file_name);
    return response("<script>window.parent.CKEDITOR.tools.callFunction({$function}, '{$url}', 'فایل به درستی آپلود شد')</script>");
}

و نیاز به هیچ چیز دیگه ای نیست و با قرار دادن کدهای بالا همچی به درستی کار خواهد کرد.
فقط من متوجه فایل config نشدم، کجا تعریف کردین؟
امیدوارم مفید بوده باشه.
موفق باشید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام