جواب تمرین این جلسه

پرسیده شده
فعالیت 1042 روز پیش
دیده شده 652 بار
0

سلام استاد.

بنده این تمرین رو با روش switch بازنویسی کردم و اینجا میذارم. لطفا نظرتون رو بدید. 

در ضمن به اروری برخورد نکردم و بدون مشکل اجرا میشه. فقط میخوام بدونم درست انجام دادم از لحاظ استاندارد یا خیر؟؟

ممنون

 

 

در فایل main.php:

<div class="wrap">
    <h1> لیست اطلاعات </h1>
    <a href="<?php echo add_query_arg(['action'=>'add']); ?>">اضافه کردن آیتم جدید</a>
    <table class="widefat">
        <thead>
        <tr>
            <td>شناسه</td>
            <td>نام</td>
            <td>نام خانوادگی</td>
            <td>موبایل</td>
            <td>عملیات</td>
        </tr>
        </thead>
        <tbody>
		<?php foreach ( $samples as $sample ) : ?>
            <tr>
                <td><?php echo $sample->ID; ?></td>
                <td><?php echo $sample->firstName; ?></td>
                <td><?php echo $sample->lastName; ?></td>
                <td><?php echo $sample->mobile; ?></td>
                <td>
                    <a href="<?php echo add_query_arg(['action' => 'edit', 'item' => $sample->ID]); ?>">
                        ویرایش
                    </a>
                    <a href="<?php echo add_query_arg(['action' => 'delete', 'item' => $sample->ID]); ?>">
                        حذف کردن
                    </a>
                </td>
            </tr>
		<?php endforeach; ?>
        </tbody>
    </table>
</div>

 

 

در فایل menu.php:

<?php
function wp_apis_register_menus() {
	add_menu_page(
		'پلاگین سفارشی',
		'پلاگین سفارشی',
		'manage_options',
		'wp_apis_admin',
		'wp_apis_main_menu_handler'
	);
	add_submenu_page(
		'wp_apis_admin',
		'تنظیمات',
		'تنظیمات',
		'manage_options',
		'wp_apis_general',
		'wp_apis_general_page'
	);
}

function wp_apis_main_menu_handler() {
	global $wpdb;
	if ( isset( $_GET['action'] ) ) {
		$action = $_GET['action'];

		switch ($action){

			case "delete":
				$item = intval( $_GET['item'] );
				if ( $item > 0 ) {
					$wpdb->delete( $wpdb->prefix . 'sample', [ 'ID' => $item ] );
				}
				$samples = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}sample" );
				include WP_APIS_TPL . '/admin/menus/main.php';
				break;

			case "add":
				if ( isset( $_POST['saveData'] ) ) {
					$wpdb->insert( $wpdb->prefix . 'sample', [
						'firstName' => $_POST['firstName'],
						'lastName'  => $_POST['lastName'],
						'mobile'    => $_POST['mobile']
					] );
					ob_clean();
					$redirect = site_url('/wp-admin/admin.php?page=wp_apis_admin');
					wp_redirect( $redirect );
					exit;
				}
				include WP_APIS_TPL . '/admin/menus/add.php';
				break;

			case "edit":
				$item= intval( $_GET['item'] );
				if ( $item > 0 && isset( $_POST['updateData'] ) ) {
					$wpdb->update( $wpdb->prefix . 'sample',
						[
							'firstName' => $_POST['firstName'],
							'lastName'  => $_POST['lastName'],
							'mobile'    => $_POST['mobile']
						],
						['ID'=>$item]
					);
					ob_clean();
					$redirect = site_url('/wp-admin/admin.php?page=wp_apis_admin');
					wp_redirect( $redirect );
					exit;
				}
				$sample = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}sample WHERE `ID`=$item" );
				include WP_APIS_TPL . '/admin/menus/edit.php';
				break;
		}

	} else {
		$samples = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}sample" );
		include WP_APIS_TPL . '/admin/menus/main.php';
	}

}

function wp_apis_general_page() {
	if ( isset( $_POST['saveSetting'] ) ) {
		if ( isset( $_POST['is_plugin_active'] ) ) {
			update_option( 'wp_apis_is_active', 1 );
		} else {
			delete_option( 'wp_apis_is_active' );
		}

	}
	$current_plugin_status = get_option( 'wp_apis_is_active', 0 );
	include WP_APIS_TPL . '/admin/menus/general.php';
}

add_action( 'admin_menu', 'wp_apis_register_menus' );

function my_custom_redirect() {
	ob_start();
}
add_action('init', 'my_custom_redirect');

 

 

در فایل edit.php:

<div class="wrap">
	<h1>برورسانی آیتم</h1>
	<form method="post">
		<table class="form-table">
			<tr valign="top">
				<th scope="row">نام</th>
				<td>
					<input type="text" name="firstName" value="<?php echo $sample->firstName; ?>">
				</td>
			</tr>
			<tr valign="top">
				<th scope="row">نام خانوادگی</th>
				<td>
					<input type="text" name="lastName"value="<?php echo $sample->lastName; ?>">
				</td>
			</tr>
			<tr valign="top">
				<th scope="row">شماره همراه</th>
				<td>
					<input type="text" name="mobile"value="<?php echo $sample->mobile; ?>">
				</td>
			</tr>
			<tr valign="top">
				<th scope="row"></th>
				<td>
					<input type="submit" class="button button-primary" name="updateData" value="بروز رسانی">
				</td>
			</tr>
		</table>
	</form>
</div>

 

فایل add.php:

<div class="wrap">
    <h1>اضافه کردن آیتم جدید</h1>
    <form method="post">
        <table class="form-table">
            <tr valign="top">
                <th scope="row">نام</th>
                <td>
                    <input type="text" name="firstName">
                </td>
            </tr>
            <tr valign="top">
                <th scope="row">نام خانوادگی</th>
                <td>
                    <input type="text" name="lastName">
                </td>
            </tr>
            <tr valign="top">
                <th scope="row">شماره همراه</th>
                <td>
                    <input type="text" name="mobile">
                </td>
            </tr>
            <tr valign="top">
                <th scope="row"></th>
                <td>
                    <input type="submit" class="button button-primary" name="saveData" value="ذخیره سازی">
                </td>
            </tr>
        </table>
    </form>
</div>
فایل پیوست

احمد اسماعیلی
احمد اسماعیلی

16 خرداد 00

0
حذف شده

سلام خدمت شما. تمرین ها این جا بررسی نمیشن. حتما در بخش تمرین پاسخ خودتون رو ارسال کنید.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

18 خرداد 00

0
حذف شده

برای این قسمت بخش ارسال تمرین وجود نداشت.

فایل پیوست

احمد اسماعیلی

توسط

احمد اسماعیلی

18 خرداد 00