مشروع Photos Gallery بل PHP الجزء الثالث

منذ 5 سنوات imadbelasri PHP
PH

فهاد الجزء الثالث من المشروع ديالنا غادي نكملو الملفات لي غادي يمكنو من التعامل مع المعلومات الخاصة بالمستخدم الصور وكذلك التعليقات وغادي نزيدو واحد الملف لي غادي يتكلف بعرض عدد محدود من الصور والتنقل بين صفحات العرض.


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


- الملف user.php

دائما فالمجلد admin/includes كنزيد ملف كنسميه user.php هاد الملف هو لي كيتضمن المعلومات الخاصة بالمستخدم بالإضافة لfonction save لي كنمكن من تعديل المستخدم فحالة وجود id أو إضافة مستخدم فحالة غياب لid و أيضا لfonction image_path_and_placeholder لي كترجع الصورة ديال المستخدم الكود ديال الملف هو :

                                                    
                                                        <?php

/**
 * 
 */
class User extends Db_object
{
    protected static $table = "users";
    protected static $db_fields = array('pseudo','nom','prenom','passe','filename');
    public $id;
    public $pseudo;
    public $nom;
    public $prenom;
    public $passe;
    public $filename;
    public $upload_directory = "images";
    public $image_placeholder = "https://placeholdit.imgix.net/~text?txtsize=33&txt=62%C3%9762&w=62&h=62";
    public function save(){
        return isset($this->id) ? $this->update() : $this->create();
    }
    public function image_path_and_placeholder(){
        return empty($this->filename) ? $this->image_placeholder: $this->upload_directory.DS.$this->filename;
    }
}

                                                    
                                                

- الملف photo.php

دائما فالمجلد admin/includes كنزيد ملف كنسميه photo.php هاد الملف هو لي كيتضمن المعلومات الخاصة بالصورة بالإضافة لfonction delete_photo لي كتمكن من حذف صورة مختارة و أيضا لfonction picture_path لي كترجع الإسم ديال الصورة الكود ديال الملف هو :

                                                        
                                                            <?php

/**
 * 
 */
class Photo extends Db_object
{
    protected static $table = "photos";
    protected static $db_fields = array('photo_id','title','description','filename','type','size');
    public $id;
    public $title;
    public $description;
    public $filename;
    public $type;
    public $size;
    public $tmp_path;
    public $upload_directory = "images";
    public $errors = array();
    public $upload_errors_array = array(
        0=>"Fichier envoyé avec succés", 
        1=>"La taille du fichier dépasse la taille maximale autorisée", 
        2=>"La taille du fichier dépasse la taille maximale indiquée dans le formulaire" ,
        3=>"Le fichier est partiellement téléchargé", 
        4=>"Aucun fichier téléchargé", 
        6=>"Dossier temporaire introuvable" 
    );
    public function picture_path(){
        return $this->upload_directory.DS.$this->filename;
    }
    public function delete_photo(){
        if($this->delete()){
            $target_path = SITE_ROOT.DS.'admin'.DS.$this->picture_path();
            return unlink($target_path) ? true : false;
        }else{
            return false;
        }
    }
}

                                                        
                                                    

- الملف comment.php

دائما فالمجلد admin/includes كنزيد ملف كنسميه comment.php هاد الملف هو لي كيتضمن المعلومات الخاصة بالتعليق وصاحب التعليق بالإضافة لfonction create_comment لي فقط كتربط لvariables بvaleurs ديالهم وترجع التعليق لي منبعد كيتزاد فقاعدة البيانات بواسطة لfonction save و أيضا لfonction find_photo_commentsلي كترجع التعليقات ديال كل صورة الكود ديال الملف هو :

                                                        
                                                            <?php

/**
 * 
 */
class Comment extends Db_object
{
    protected static $table = "comments";
    protected static $db_fields = array('id','photo_id','user_id','comment','date');
    public $id;
    public $photo_id;
    public $user_id;
    public $comment;
    public $date;
    public static function create_comment($photo_id,$user_id,$comment){
        if(!empty($photo_id)  && !empty($user_id) && !empty($comment)){
            $new_comment = new Comment();
            $new_comment->photo_id = $photo_id;
            $new_comment->user_id = $user_id;
            $new_comment->comment = $comment;
            $new_comment->date = date("Y-m-d h:m:s");
            return $new_comment;
        }else{
            return false;
        }
    } 
    public static function find_photo_comments($photo_id = 0){
        $sql = "SELECT * FROM ".static::$table." WHERE photo_id = $photo_id";
        $result =  static::find_this_query($sql);
        return !empty($result) ? ($result) : false;
    }   
    public function save(){
        if($this->create()){
            return true;
        }
    }
}

                                                        
                                                    

- الملف pagination.php

دائما فالمجلد admin/includes كنزيد ملف كنسميه pagination.php هاد الملف هو لي غادي يمكنا من عرض عدد محدود من الصور والتنقل بين صفحات العرض الكود ديال الملف هو :

                                                        
                                                            <?php

/**
 * 
 */
class Pagination
{
    public $current_page;
    public $item_per_page;
    public $count_total_items;



    public function __construct($page = 1,$perpage = 4,$count_total_items = 0){
        $this->current_page = (int)$page;
        $this->item_per_page = (int)$perpage;
        $this->count_total_items = (int)$count_total_items;
    }
    public function next(){
        return $this->current_page + 1;
    }
    public function previous(){
        return $this->current_page - 1;
    }
    public function page_total(){
        return ceil($this->count_total_items / $this->item_per_page);
    }
    public function hasNext(){
        return $this->next() <= $this->page_total() ? true : false;
    }
    public function hasPrevious(){
        return $this->previous() >= 1 ? true : false;
    }
    public function offset(){
        return ($this->current_page - 1) * $this->item_per_page;
    }
}

                                                        
                                                    

- الملف ajax_code.php

دائما فالمجلد admin/includes كنزيد ملف كنسميه ajax_code.php هاد الملف هو لي غادي يمكنا من عرض المعلومات الخاصة بكل صورة بإستعمال ajax الكود ديال الملف هو :

                                                        
                                                            <?php
require ("init.php");

if(isset($_POST['image_id'])){
   $photo = Photo::find_by_id(trim($_POST['image_id']));
   $output = "<a href='' class='thumbnail'><img src='admin/{$photo->picture_path()}' class'thumbnail img-responsive' width='100' alt=''></a>";
   $output.= "<p>Nom: {$photo->filename}</p>";
   $output.= "<p>Type :{$photo->type}</p>";
   $output.= "<p>Taille :{$photo->size}</p>";
   echo $output;
}
                                                        
                                                    

دروس ذات صلة

PH

مشروع Photos Gallery بل PHP الجزء الأول

فهاد الدرس غادي نشوفو كيفاش نصاوبو واحد المشروع لي عبارة عن موقع للصور المستخدم كيدخل كيشاهد الصور و...


PH

مشروع Photos Gallery بل PHP الجزء الثاني

فهاد الجزء الثاني غادي نقادو الملفات لي غادي يمكننا من ربط الإتصال بقاعدة البيانات وغادي نزيدو الملف...


PH

مشروع Photos Gallery بل PHP الجزء الرابع

فهاد الجزء الرابع من هاد المشروع غادي نكملو الملفات لي غادي يمكنو المستخدم من التسجيل وأيضا من تسجيل...


PH

مشروع Photos Gallery بل PHP الجزء الخامس

فهاد الجزء الخامس من المشروع ديالنا غادي نكملو الملفات ديال تعديل وحذف مستخدم ومنبعد غادي نزيدو الم...


PH

مشروع Photos Gallery بل PHP الجزء السادس

فهاد الجزء من المشروع ديالنا غادي نزيدو الملفات الخاصة بعرض الصور لي عندنا فقاعدة البيانات والتعليقا...


PH

مشروع Photos Gallery بل PHP الجزء السابع

فهاد الجزء من هاد المشروع غادي نكملو الملفات الخاصة بالواجهة لي غادي تكون مرئية للزوار ديالنا أول حا...


PH

مشروع Photos Gallery بل PHP الجزء الثامن

فهاد الجزء الثامن والأخير من هاد المشروع غادي نزيدو الملفات لي غادي تمكن من عرض الصور وعرض صورة والم...