A-fshin 1936 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 (ویرایش شده) درود.من اومدم ابتدا آپشن homebuilder رو از بقیه ی آپشن ها جداکردم.$pasargad_array_options = array( 'pasargad_options', 'pasargad_boxs' );pasargad_options برای آرایه های مختلف تعریف شده و pasargad_boxs هم برای homebuilder پوسته و باکس های drag&drop.کاری که می خوام انجام بدم امکان تهیه نسخه ی پشتیبان از پنل تنظیمات و امکان بازگردانی آن است.توسط کد زیر آرایه ها رو که در پنل کاربر ذخیره و تنطیم می کنه encode می کنم<?php$encode = base64_encode(serialize(get_option( 'pasargad_options' )));?>و در یک textarea نمایش می دم و کاربر می تونه اون رو کپی و بعدها می تونه بازگردانی کنه.اما کد بالا homebuilder رو مقادیرش رو encode نمی کنه باید کد زیر رو برای در ادامه ی کد بالا قرار بدم ( کارم اشتباهه چون اینبار فقط homebuilder رو می شه encode کرد)$encode = base64_encode(serialize(get_option( 'pasargad_boxs' )));در قسمت save و restore کردن نسخه ی پشتیبان برای decode کردن و ذخیره سازی این مقادیر به صورت زیر عمل کردم.add_action('wp_ajax_pasargad_save_data', 'pasargad_ajax_save_panel');function pasargad_ajax_save_panel(){$pasargad_restored = $_POST['pasargad_restore'];$decode = unserialize(base64_decode($pasargad_restored));$pasargad_value = array('pasargad_options');$pasargad_value = array('pasargad_boxs');$pasargad_value['pasargad_options'] = $decode;$pasargad_value['pasargad_boxs'] = $decode;if($pasargad_restored) {$data = $pasargad_value;}else{$data = $_POST;}pasargad_save_panel('ajax', $data);}function pasargad_save_panel($from, $data){global $pasargad_array_options;if ('pasargad_save_data' == $_REQUEST['action']) {foreach ($pasargad_array_options as $option) {if( isset( $data[$option] )){array_walk_recursive( $data[$option] , 'pasargad_clean_options');update_option($option , $data[$option]);}else{delete_option($option);}}} elseif ('pasargad_reset_data' == $_REQUEST['action']) {foreach ($pasargad_array_options as $option) {if( isset( $data[$option] )){array_walk_recursive( $data[$option] , 'pasargad_clean_options');update_option($option , $data[$option]);}else{delete_option($option);}}header("Location: admin.php?page=pasargad-panel&reset=true");if($from == "direct"){}die("reset!");}}function casestudy_icons() {در کدهای بالا pasargad_options و pasargad_boxs به صورت زیر تعریف شده که decode بشن$decode = unserialize(base64_decode($pasargad_restored));$pasargad_value = array('pasargad_options');$pasargad_value = array('pasargad_boxs');$pasargad_value['pasargad_options'] = $decode;$pasargad_value['pasargad_boxs'] = $decode;الان فقط می تونم تنها یا homebuilder یا باقی تنظیمات رو نسخه ی پشتیبان درست کنم.چیکار کنم هر دوی اونها با هم encode بشن.حتی از کد زیر هم برای encode کردن استفاده کردم اما نشد و دیگه هیچی بازگردانی نمی شه.<?phpglobal $pasargad_array_options ;$encode = array();foreach( $pasargad_array_options as $option ){ if( get_option( $option ) ) $encode[$option] = get_option( $option ) ;}?> ویرایش شده مرداد 93 توسط افشیـــــن نقل قول لینک به ارسال
A-fshin 1936 ارسال شده در مرداد 93 مالک گزارش بازنشر ارسال شده در مرداد 93 (ویرایش شده) از اساتید کسی نمی تونه کمک کنه؟!من می خوام pasargad_boxs و pasargad_options رو با هم encode کنم و کاربر کد encode شده رو در یک textarea دیگه با آی دی pasargad_restore اونو بازگردانی کنهمن اومدم به جای کدهای بالا بصورت زیر بخش encode رو تعریف کردم:<?phpglobal $pasargad_array_options ;$ps_options = array();foreach( $pasargad_array_options as $option ){if( get_option( $option ) )$ps_options[$option] = get_option( $option ) ;}?><?php ?><textarea style="width:100%;margin-bottom:10px;" rows="6" type="textarea" cols="" rows=""><?php echo $pssettings = base64_encode( serialize( $ps_options )); ?></textarea>سپس برای decode کردن هم بصورت زیر در فانکشن پنل تعرف کردم :add_action('wp_ajax_pasargad_save_data', 'pasargad_ajax_save_panel');function pasargad_ajax_save_panel(){if( !empty( $data['pasargad_restore'] ) ){$data = unserialize(base64_decode( $data['pasargad_restore'] ));}else{$data = $_POST;}pasargad_save_panel('ajax', $data);}باز هم قادر به بازگردانی نیست ویرایش شده مرداد 93 توسط افشیـــــن نقل قول لینک به ارسال
Parsa 23463 ارسال شده در مرداد 93 گزارش بازنشر ارسال شده در مرداد 93 شما اگر میخواهید دو تارو باهم به کاربر بدهیدمیتوانید پس از انکد شدنبا کاراکتری خاص برای مثال ||| (3 پایپ) از هم جدا کنیدسپس هنگام بازگردانی براساس کاراکترها explode کنید 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .