First install composer.
- dependencies: curl and git
- download and verify composer-setup.php as described at composer homepage section download: https://getcomposer.org/download/
- install as /usr/local/bin/composer: php composer-setup.php –install-dir=/usr/local/bin –filename=composer
Second install yii as described here: http://www.yiiframework.com/doc-2.0/guide-start-installation.html)
- create an installation directory for the new yii project one level above document root, e.g. mystuff../
- run composer inside directory mystuff:
- composer global require “fxp/composer-asset-plugin:^1.3.1”
- composer create-project –prefer-dist yiisoft/yii2-app-basic ./
- If document root is defined as public_html ,and should be handled by yii framework, then run:
ln -s yii/web/ public_html
If a database backend is used, yii code to handle tables can be auto generated using yii component gii.
- configure config/web.php according to manual: http://www.yiiframework.com/doc-2.0/guide-start-gii.html
- ensure that the web server has write (at least temporary) access to yii directory (chown -R www-data:www-data yii)
- create the database table and add comments to each table field (which will become labels for table edit form fields)
- create Model and CRUD using gii
- uncomment primary index field id in views/your_table_name/index.php
To create pdf output use plugin yii-mpdf: https://github.com/kartik-v/yii2-mpdf
- install plugin: composer require kartik-v/yii2-mpdf “1.0.1”
- add pdf config to components array in config/web.pdf
(and do not forget to add at the beginning of web.php: use kartik\mpdf\Pdf;) - for a view file views/your_table_name/view2.php add to controllers/yourTableNameController.php
$pdf = Yii::$app->pdf;
$pdf->content = $this->renderPartial(‘view2’, [‘model’ => $this->findModel($id)]);
return $pdf->render(); - to change formatting in dataset detail view
- reference is source code: vendor/yiisoft/yii2/widgets/DetailView.php (and vendor/yiisoft/yii2/base/Widget.php):
variables $template = ‘<tr><th{captionOptions}>{label}</th><td{contentOptions}>{value}</td></tr>’
and $options = [‘class’ => ‘table table-striped table-bordered detail-view’] - thus add in file views/your_table_name/view2.php:
DetailView::widget([ ‘model’ => $model, ‘template’ => ‘your_settings’, ‘options’ => [your_settings], …
- reference is source code: vendor/yiisoft/yii2/widgets/DetailView.php (and vendor/yiisoft/yii2/base/Widget.php):
User authentication: http://www.yiiframework.com/doc-2.0/guide-security-authentication.html
(Plugin which allows user registration with email confirmation etc.: https://github.com/dektrium/yii2-user
https://code.tutsplus.com/tutorials/how-to-program-with-yii2-integrating-user-registration–cms-22974)
- the standard base template of yii includes user authentication with hardcoded passwords in file
models/User.php - some configuration is set in config/web.php: array components, sub array user, e.g. enableAutoLogin might be set to false
- views/site/login.php defines the login page, e.g. remember me might be removed
- example code to get name of logged in user:
use app\models\User;
if( !(Yii::$app->user->identity===null) ){echo User::findIdentity(Yii::$app->user->id)->username;} else {echo “guest”;} - if( !(Yii::$app->user->identity===null) && ‘100’===Yii::$app->user->id){echo “is admin”;}
Configure Mailer
- set admin email address in config/params.php
- configure mailer in config/web.php as described in
https://code.tutsplus.com/tutorials/how-to-program-with-yii2-integrating-user-registration–cms-22974 - edit contact form views/site/contact.php
Leave a Reply