reza_yki 103 ارسال شده در خرداد 95 گزارش بازنشر ارسال شده در خرداد 95 سلام من پنل برای قالب بزدم و نخواستم از پنل های آماده استفاده کنم پس خودم دست به کار شدم من اپلودری برای آپلود تصویر درست کردم ولی یک مشکل داره که امیدوارم دوستان کمکم کنن من از اپلودر در 2 جا استفاده کردم یکی برای آپلود لوگو و دیگری برای آپلود فاویکون مشکل این هست که وقتی لوگو رو آپلود می کنی درست عمل می کنه بعد از اون وقتی مخوای فاویکون رو اپلود کنی به جای آپلود در فاویکون تصویر در لوگو قرار می گیره این در حالی هست که وقتی لوگو رو آپلود می کنی و بعد ذخیره می کنی بعدش میری فاویکون رو آپلود میکنی درست عمل می کنه نمی دونم تونستم منظورم رو برسونم یا خیر احساس می کنم مشکل در قسما جی کوئری هست چون اگر هر دو رو باهم وقتی آپلود می کنه به مشکل بر می خوره در صورتی که جدا آپلود و ذخیره می کنی درست عمل میشه فک می کنم تونستم برسونم مطلب رو این هم از کد جی کوئری: //uploader jQuery(document).ready(function ($) { var custom_uploader; $(document).on('click', '.select-uploader', function (e) { e.preventDefault(); var $this = $(this); var $target = $this.data('target'); var $target_type = $this.data('target-type'); //If the uploader object has already been created, reopen the dialog if (custom_uploader) { custom_uploader.open(); return; } //Extend the wp.media object custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'انتخاب تصویر', button: { text: 'انتخاب تصویر' }, multiple: false }); //When a file is selected, grab the URL and set it as the text field's value custom_uploader.on('select', function () { attachment = custom_uploader.state().get('selection').first().toJSON(); switch(true){ case $target_type === 'image' : $('#' + $target).attr('src',attachment.url); $('#' + $target+'_input').val(attachment.url); break; } }); //Open the uploader dialog custom_uploader.open(); }); }); لطفا راهنمایی کنید ضروری هست این هم قسمت اینپوت: //logo <input type="text" class="img-path" id="yp_logo_input" name="yp_logo" value="<?php echo isset($yp_options ['yp_logo'])? $yp_options ['yp_logo']: get_template_directory_uri() . '/functions/admin/option-panel/img/default-logo.png'; ?>"> <button data-target-type="image" data-target="yp_logo" class="yp-btn select-uploader">بارگذاری</button> //favicon <input type="text" class="img-path" id="yp_icon_input" name="yp_icon" value="<?php echo isset($yp_options ['yp_icon'])? $yp_options ['yp_icon'] : get_template_directory_uri() . '/functions/admin/option-panel/img/default-favicon.png'; ?>"> <button data-target-type="image" data-target="yp_icon" class="yp-btn select-uploader">بارگذاری</button> نقل قول لینک به ارسال
Morteza 34190 ارسال شده در خرداد 95 گزارش بازنشر ارسال شده در خرداد 95 من الان سریع و چشمی چک کردم بنظر مشکلی تو این کدها نیست. چون آی دی و دیتاها رو درست جاگذاشتین. تا اینجا بنظر مشکلی نداره. 1 نقل قول لینک به ارسال
reza_yki 103 ارسال شده در خرداد 95 مالک گزارش بازنشر ارسال شده در خرداد 95 در هم اکنون، Morteza گفته است : من الان سریع و چشمی چک کردم بنظر مشکلی تو این کدها نیست. چون آی دی و دیتاها رو درست جاگذاشتین. تا اینجا بنظر مشکلی نداره. بله @Morteza جان وقتی جدا جدا عمل می کنم درست عمل می کنه ولی وقتی اول می رم لوگو رو آپلود می کنم بعد می رم دنبال فاویکون این مشکل به وجود میاد نقل قول لینک به ارسال
reza_yki 103 ارسال شده در خرداد 95 مالک گزارش بازنشر ارسال شده در خرداد 95 آیا باید ارایه ای درست کرد تا این مشکل به وجود نیاد و چطور؟ نقل قول لینک به ارسال
reza_yki 103 ارسال شده در خرداد 95 مالک گزارش بازنشر ارسال شده در خرداد 95 (ویرایش شده) من فکر می کنم مشکل اینه که دکمه ها هردوشون با یک کلاس مشترک استفاده شده یعنی هر دو از کلاس select-uploader استفاده کرده اند و در جی کوئری اشکال هست یعنی این قسمت: $(document).on('click', '.select-uploader', function (e) { ایا میشه کلاس + یه چیزه خاص کرد؟ این کد زیر برای یه قالب خارجی هست فک می کنم باید این شکلی باشه ولی نمی تونم: jQuery(document).on("click", "#upload_"+field+"_button" , function( event ){ میشه کمکم کنید ویرایش شده خرداد 95 توسط reza_yki نقل قول لینک به ارسال
Morteza 34190 ارسال شده در خرداد 95 گزارش بازنشر ارسال شده در خرداد 95 اگر بتونید فقط بخش آپلود رو بصورت کامل برای این دو فیلد اینجا قرار بدید من تست میکنم و بهتون مشکلش رو میگم. نقل قول لینک به ارسال
reza_yki 103 ارسال شده در خرداد 95 مالک گزارش بازنشر ارسال شده در خرداد 95 من کل قسمت هایی که مربوط به آپلودر بوده رو براتون جدا و در فایل zip ارسال کردم نکته: وقتی کلاس button رو تغییر می دم (برای فاویکون رو ازselect_uploader به select_uploader_icon تغییر میدم ) و قسمت جی کوئری رو هم کلا دوباره با اون کلاس جدید درست می کنم همه چی درست میشه ولی این طوری باید برای هر آپلودر یک بار دیگه کل قسمت جی کوئری رو بنویسم <input type="text" class="img-path" id="yp_icon_input" name="yp_icon" value="<?php echo isset($yp_options ['yp_icon'])? $yp_options ['yp_icon'] : get_template_directory_uri() . '/functions/admin/option-panel/img/default-favicon.png'; ?>"> <button data-target-type="image" data-target="yp_icon" class="yp-btn select_uploader_icon">بارگذاری</button> یعنی این شکلی باید بنویسم ولی نه استاندارد هست این روش نه بهینه: //uploader jQuery(document).ready(function ($) { var custom_uploader; $(document).on('click', '.select-uploader', function (e) { e.preventDefault(); var $this = $(this); var $target = $this.data('target'); var $target_type = $this.data('target-type'); //If the uploader object has already been created, reopen the dialog if (custom_uploader) { custom_uploader.open(); return; } //Extend the wp.media object custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'انتخاب تصویر', button: { text: 'انتخاب تصویر' }, multiple: false }); //When a file is selected, grab the URL and set it as the text field's value custom_uploader.on('select', function () { var attachment = custom_uploader.state().get('selection').first().toJSON(); switch(true){ case $target_type === 'image' : $('#' + $target).attr('src',attachment.url); $('#' + $target+'_input').val(attachment.url); break; // case $target_type === 'textbox': // $('#' + $target).val(attachment.url); // break; } }); //Open the uploader dialog custom_uploader.open(); }); //// }); //آپلودر برای فاویکون /////// jQuery(document).ready(function ($) { var custom_uploader; $(document).on('click', '.select_uploader_icon', function (e) { // فقط به خاطر این قسمت دوباره کل کد ها رو تکرار میکنم e.preventDefault(); var $this = $(this); var $target = $this.data('target'); var $target_type = $this.data('target-type'); //If the uploader object has already been created, reopen the dialog if (custom_uploader) { custom_uploader.open(); return; } //Extend the wp.media object custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'انتخاب تصویر', button: { text: 'انتخاب تصویر' }, multiple: false }); //When a file is selected, grab the URL and set it as the text field's value custom_uploader.on('select', function () { var attachment = custom_uploader.state().get('selection').first().toJSON(); switch(true){ case $target_type === 'image' : $('#' + $target).attr('src',attachment.url); $('#' + $target+'_input').val(attachment.url); break; // case $target_type === 'textbox': // $('#' + $target).val(attachment.url); // break; } }); //Open the uploader dialog custom_uploader.open(); }); }); منتظر پاسختون هستم ممنون uploader.zip نقل قول لینک به ارسال
reza_yki 103 ارسال شده در خرداد 95 مالک گزارش بازنشر ارسال شده در خرداد 95 اساتید پیشنهادی نداشتن؟ نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .