site ecommerce php mvc & pdo الجزء التاسع


فهاد الجزء التاسع من site ecommerce php mvc & pdo غادي ندوزوا لآخر جزء لي هو الجزء الخاص بالأدمن أول حاجة غادي نزيدوا ل controller لي غادي يمكن من عرض les pages الخاصين بالأدمن منبعد غادي نشوفوا كيفاش نعرضوا les produits و les commandes لي عندنا فقاعدة البيانات.

نظرة سريعة بالفيديو


1- إضافة ل AdminController


ف dossier controllers غادي تزيد fichier جديد سميه AdminController.php لي فيه ل fonction :

- index لي غادي تاخذ إسم ل page لي عندنا ف dossier admin لي غادي نزيدو من بعد وتعرضها نفس الحاجة لي سبق ودرنا ف HomeController.

الكود ديال الملف هو :

                                    
                                        <?php

class AdminController{
    public function index($page){
        include('views/admin/'.$page.'.php');
    }
}
                                    
                                

2- إضافة الملف dashboard.php


ف dossier views زيد dossier admin فيه زيد fichier dashboard.php هذا هو الملف لي غادي يمشيلو الادمن أول مغادي يسجل الدخول ديالو ولي فيه فقط روابط كتدي للملف الخاص بعرض ل produits ول commandes.

ممكن تزيد فيه لي بغيتي ماشي ضروري تدير لي داير أنا.

الكود ديال الملف هو :

                                    
                                        <div class="container">
    <div class="row my-5">
        <div class="col-md-4">
            <div class="card p-3 bg-danger">
                <div class="card-body">
                    <h3 class="card-text text-center">
                        <a href="<?php echo BASE_URL?>products" 
                        style="text-decoration:none;color:white;font-weight:bold">Produits</a>
                    </h3>
                </div>
            </div>
        </div>
        <div class="col-md-4">
            <div class="card p-3 bg-primary">
                <div class="card-body">
                    <h3 class="card-text text-center">
                        <a href="<?php echo BASE_URL?>orders" 
                        style="text-decoration:none;color:white;font-weight:bold">Commandes</a>
                    </h3>
                </div>
            </div>
        </div>
    </div>
</div>
                                    
                                

3- إضافة الملف orders.php


دائما ف dossier admin فيه زيد fichier orders.php هذا هو الملف لي غادي نعرضوا فيه les commandes لي سبق وداروا الناس لي زاروا الموقع ديالنا.

les commandes كنعرضهم ف table منبعد مكن exécuter ل fonction  getAllOrders لي سبق وزدنا فل controller OrdersController.

ممكن تزيد لي بغيتي فالكود.

الكود ديال الملف هو :

                                      
                                        <?php
  if(isset($_SESSION['admin']) && $_SESSION['admin'] == true){
    $data = new OrdersController();
    $orders = $data->getAllOrders();
  }else{
      Redirect::to("home");
  }
?>
<div class="container">
  <div class="row my-5">
    <div class="col-md-10 mx-auto">
        <div class="card bg-light p-3">
            <table class="table table-hover table-inverse">
                <h3 class="font-weight-bold">Commandes</h3>
                <thead>
                    <tr>
                        <th>Nom & Prénom</th>
                        <th>Produit</th>
                        <th>Quantité</th>
                        <th>Prix</th>
                        <th>Total</th>
                        <th>Effectuée le</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach($orders as $order) :?>
                    <tr>
                        <td><?php echo $order["fullname"];?></td>
                        <td><?php echo $order["product"];?></td>
                        <td><?php echo $order["qte"];?></td>
                        <td><?php echo $order["price"];?></td>
                        <td><?php echo $order["total"];?></td>
                        <td><?php echo $order["done_at"];?></td>
                    </tr>
                    <?php endforeach;?>
                </tbody>
            </table>
        </div>
    </div>
  </div>
</div>
                                      
                                    

4- إضافة الملف products.php


دائما ف dossier admin فيه زيد fichier products.php هذا هو الملف لي غادي نعرضوا فيه les produits لي عندنا فقاعدة البيانات.

les produits كنعرضهم ف table منبعد مكن exécuter ل fonction getAllProducts لي سبق وزدنا فل controller ProductsController.

عندي أيضا روابط الإضافة والتعديل والحذف لي كيديوني ل les pages لي غادي نزيدو من بعد.

الكود ديال الملف هو :

                                        
                                            <?php
  if(isset($_SESSION['admin']) && $_SESSION['admin'] == true){
    $data = new ProductsController();
    $products = $data->getAllProducts();
  }else{
      Redirect::to("home");
  }
?>
<div class="container">
  <div class="row my-5">
    <div class="col-md-10 mx-auto">
        <div class="form-group">
            <a href="<?php echo BASE_URL?>addProduct" class="btn btn-primary btn-sm">
                Ajouter
            </a>
        </div>
        <form id="form" action="<?php echo BASE_URL?>updateProduct" method="post">
            <input type="hidden" name="product_id" id="product_id">
        </form>
        <form id="delete_form" action="<?php echo BASE_URL?>deleteProduct" method="post">
            <input type="hidden" name="delete_product_id" id="delete_product_id">
        </form>
        <div class="card bg-light p-3">
            <table class="table table-hover table-inverse">
                <h3 class="font-weight-bold">Produits</h3>
                <thead>
                    <tr>
                        <th>Libellé</th>
                        <th>Prix</th>
                        <th>Quantité</th>
                        <th>Description</th>
                        <th>Image</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach($products as $product) :?>
                    <tr>
                        <td><?php echo $product["product_title"];?></td>
                        <td><?php echo $product["product_price"];?></td>
                        <td><?php echo $product["product_quantity"];?></td>
                        <td><?php echo substr($product["product_description"],0,100);?></td>
                        <td>
                            <img width="50" height="50" 
                            src="./public/uploads/<?php echo $product["product_image"];?>"
                            alt="" class="img-fluid">
                        </td>
                        <td class="d-flex flex-row justify-content-center align-items-center">
                            <a onclick="submitForm(<?php echo $product['product_id'];?>)" class="btn btn-warning btn-sm mr-1">
                                Modifier
                            </a>
                            <a onclick="deleteForm(<?php echo $product['product_id'];?>)" class="btn btn-danger btn-sm">
                                Supprimer
                            </a>
                        </td>
                    </tr>
                    <?php endforeach;?>
                </tbody>
            </table>
        </div>
    </div>
  </div>
</div>
                                        
                                    

كلمات مفاتيح :