موقع offres d'emplois بإستعمال YII2 Framework الجزء الرابع

imadbelasri Yii2
YI

فهاد الجزء الرابع والأخير من موقع offres d'emplois بإستعمال YII2 Framework غادي نكملو الملفات لي بقاو ولي غادي تكون فيهم الفورم لي كتمكن المستخدم من التسجيل وتسجيل الدخول ديالو فالموقع كما غادي نزيدو الملف لي غادي يكون هو الصفحة الرئيسية ديالنا.


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


1- الملف users/register.php

فالمجلد views فيه زيد مجلد جديد سميه users فيه زيد ملف جديد سميه register.php هادا الملف لي فيه الفورم لي كتمكن المستخدم من التسجيل فقاعدة البيانات عندنا فمنبعد مكيدخل الحقول فالفورم المعلومات كتمشي لل fonction actionRegister ولي منبعد مكتحقق بلي حتى شي حقل ما خاوي كتزيد المعلومات فالجدول users الكود ديال الملف هو :

                                                    
                                                        <?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\models\User */
/* @var $form ActiveForm */
?>
<div class="row">
    <div class="col-md-4 col-md-offset-4">
    <h3 class="text-info">Inscription</h3>
    <hr>
        <?php $form = ActiveForm::begin(); ?>
            <?= $form->field($user, 'name')->label('Nom & Prénom*')?>
            <?= $form->field($user, 'username')->label('Pseudo*') ?>
            <?= $form->field($user, 'email')->label('Email*') ?>
            <?= $form->field($user, 'password')->passwordInput()->label('Mot de passe*') ?>
            <div class="form-group">
                <?= Html::submitButton('Valider', ['class' => 'btn btn-primary']) ?>
            </div>
        <?php ActiveForm::end(); ?>
    </div>
</div><!-- users-create -->
                                                    
                                                

2- الملف site/login.php

فالمجلد views/site فيه كاين ملف سميتو login.php هادا الملف لي فيه الفورم لي كتمكن المستخدم يتكونيكطا حنا درنا عليها تغييرات باش تناسب الفورم لي بغينا منبعد مكيدخل الحقول فالفورم المعلومات كتمشي لل fonction actionLogin لي كاينة فالملف SiteController.php ولي كيجي مع لframework ولي كت créer l'objet من la class LoginForm وكتحقق بواسطة ل fonction login بلي المستخدم كاين فيلا كان موجود كتكونيكطيه مكانش كترجعو للفورم لclass LoginForm كاينة فالمجلد models الكود ديال login.php هو :

                                                        
                                                            <?php

/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model app\models\LoginForm */
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
$this->title = 'Connexion';
?>
<div class="row">
<div class="col-md-4 col-md-offset-4">
   <h1 class="text-info"><?= Html::encode($this->title) ?></h1>
   <hr>
        <?php $form = ActiveForm::begin(); ?>
        <?= $form->field($model, 'username')->textInput(['autofocus' => true])->label('Pseudo*') ?>
        <?= $form->field($model, 'password')->passwordInput()->label('Mot de passe*') ?>
        <div class="form-group">
             <?= Html::submitButton('Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
        </div>
    <?php ActiveForm::end(); ?>
</div>
</div>

                                                        
                                                    

3- الملف layouts/main.php

فالمجلد layouts كاين كلف سميتو main.php هادا الملف الرئيسي ديالنا ولي كيكون la base ديال كل الصفحات لي عندنا فكنديرو عليه بعض التغييرات كنزيدو القائمة ديالنا بالإضافة للراوبط ديال كل صفحة لي كيديو للcontrollers لي زدنا كما عندنا لheader ديالنا ول footer الكود ديال الملف بعد التغيير:

                                                        
                                                            <?php

/* @var $this \yii\web\View */
/* @var $content string */

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;

AppAsset::register($this);
?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>

<div class="wrap">
    <?php
    NavBar::begin([
        'brandLabel' => 'JobWebsite',
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-default navbar-fixed-top',
        ],
    ]);
    echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-left'],
        'items' => [
            ['label' => 'Accueil', 'url' => ['/site/index']],
            ['label' => 'Catégories', 'url' => ['/categories/index']],
            ['label' => 'Offres', 'url' => ['/jobs/index']],
            ['label' => 'Contact', 'url' => ['/site/contact']],
        ],
    ]);
     echo Nav::widget([
        'options' => ['class' => 'navbar-nav navbar-right'],
        'items' => [
            Yii::$app->user->isGuest ? (
                ['label' => 'Connexion', 'url' => ['/site/login']]
            ) : (
                '<li>'
                . Html::beginForm(['/site/logout'], 'post')
                . Html::submitButton(
                    'Déconnexion (' . Yii::$app->user->identity->username . ')',
                    ['class' => 'btn btn-link logout']
                )
                . Html::endForm()
                . '</li>'
            ),
            Yii::$app->user->isGuest ? (
                ['label' => 'Inscription', 'url' => ['/users/register']]
            ) : ''
        ],
    ]);
    NavBar::end();
    ?>

    <div class="container">
        <?= Breadcrumbs::widget([
            'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
        ]) ?>
        <?= $content ?>
    </div>
</div>

<footer class="footer">
    <div class="container">
        <p class="pull-left">&copy; DarijaCoding<?= date('Y') ?></p>
    </div>
</footer>

<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

                                                        
                                                    

4- الملف site/index.php

فالمجلد site كاين ملف سميتو index.php هادا الملف الرئيسي ولي هو الصفحة الرئيسية ديالنا ولي كيجي par défault مع لframework ولي فيه الكود لي درنا عليه بعض التغييرات باش يناسب الموقع ديالنا ويمكنلك تغييرو لأي موقع بغيتي الكود ديال الملف هو :

                                                        
                                                            <?php

/* @var $this yii\web\View */

$this->title = 'JobWebsite';
?>
<div class="site-index">
    <?php if(Yii::$app->session->getFlash('success') != null):?>
         <div class="alert alert-success"><?= Yii::$app->session->getFlash('success'); ?></div>
    <?php endif;?>
    <div class="jumbotron">
        <h1>Besoin d'un emploi</h1>
        <p class="lead">Consultez les offres d´emploi ou recruter</p>
        <p>
            <a class="btn btn-lg btn-success" href="#">Consulter</a>
            <a class="btn btn-lg btn-primary" href="#">Recruter</a>
        </p>
    </div>
    <div class="body-content">
        <div class="row">
            <div class="col-lg-4">
                <h2>Trouver un emploi</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
                    dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
                    ex ea commodo consequat.</p>
            </div>
            <div class="col-lg-4">
                <h2>Recruter un employé</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
                    dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
                    ex ea commodo consequat.</p>
            </div>
            <div class="col-lg-4">
                <h2>Déposer une annonce</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
                    dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
                    ex ea commodo consequat.</p>
            </div>
        </div>
    </div>
</div>