Костяк
0 parents
Showing
84 changed files
with
2960 additions
and
0 deletions
.bowerrc
0 → 100644
.gitignore
0 → 100644
LICENSE.md
0 → 100644
README.md
0 → 100644
Vagrantfile
0 → 100644
assets/AdminAsset.php
0 → 100644
<?php | |||
/** | |||
* @link http://www.yiiframework.com/ | |||
* @copyright Copyright (c) 2008 Yii Software LLC | |||
* @license http://www.yiiframework.com/license/ | |||
*/ | |||
namespace app\assets; | |||
use yii\web\AssetBundle; | |||
/** | |||
* Main application asset bundle. | |||
* | |||
* @author Qiang Xue <[email protected]> | |||
* @since 2.0 | |||
*/ | |||
class AdminAsset extends AssetBundle | |||
{ | |||
public $basePath = '@webroot'; | |||
public $baseUrl = '@web'; | |||
public $css = ['css/admin.css']; | |||
public $js = ['js/chosen.jquery.min.js']; | |||
public $depends = [ | |||
'yii\web\YiiAsset', | |||
'yii\bootstrap\BootstrapAsset', | |||
]; | |||
} |
assets/AppAsset.php
0 → 100644
<?php | |||
/** | |||
* @link http://www.yiiframework.com/ | |||
* @copyright Copyright (c) 2008 Yii Software LLC | |||
* @license http://www.yiiframework.com/license/ | |||
*/ | |||
namespace app\assets; | |||
use yii\web\AssetBundle; | |||
/** | |||
* Main application asset bundle. | |||
* | |||
* @author Qiang Xue <[email protected]> | |||
* @since 2.0 | |||
*/ | |||
class AppAsset extends AssetBundle | |||
{ | |||
public $basePath = '@webroot'; | |||
public $baseUrl = '@web'; | |||
public $css = [ | |||
"//fonts.googleapis.com/css?family=Roboto+Condensed:300,300i,400,400i,700,700i", | |||
"//fonts.googleapis.com/css?family=Dosis:200,300,400,500,600,700", | |||
//"/css/font-awesome.min.css", | |||
//"/css/ionicons.min.css", | |||
//"/css/Pe-icon-7-stroke.min.css", | |||
"/css/owl.carousel.min.css", | |||
// "/css/slick-theme.css", | |||
// "/css/slick.css", | |||
"/css/animation.css", | |||
//"/css/bootstrap-select.min.css", | |||
"/css/styles.css", | |||
]; | |||
public $js = [ | |||
'/app.js', | |||
// "js/vit-gallery.js", | |||
// "js/jquery.countTo.js", | |||
// "js/jquery.appear.min.js", | |||
// "js/isotope.pkgd.min.js", | |||
// "js/bootstrap-select.js", | |||
// "js/jquery.littlelightbox.js", | |||
]; | |||
public $depends = [ | |||
'yii\web\YiiAsset', | |||
'yii\bootstrap\BootstrapAsset', | |||
]; | |||
} |
assets/MainAsset.php
0 → 100644
<?php | |||
/** | |||
* @link http://www.yiiframework.com/ | |||
* @copyright Copyright (c) 2008 Yii Software LLC | |||
* @license http://www.yiiframework.com/license/ | |||
*/ | |||
namespace app\assets; | |||
use yii\web\AssetBundle; | |||
/** | |||
* Main application asset bundle. | |||
* | |||
* @author Qiang Xue <[email protected]> | |||
* @since 2.0 | |||
*/ | |||
class MainAsset extends AssetBundle | |||
{ | |||
public $basePath = '@webroot'; | |||
public $baseUrl = '@web'; | |||
public $css = [ | |||
//'css/site.css', | |||
]; | |||
public $js = [ | |||
"/js/owl.carousel.min.js", | |||
"/js/slick.min.js", | |||
"/js/function.js" | |||
]; | |||
public $depends = [ | |||
'yii\web\YiiAsset', | |||
'yii\bootstrap\BootstrapAsset', | |||
]; | |||
} |
codeception.yml
0 → 100644
commands/HelloController.php
0 → 100644
<?php | |||
/** | |||
* @link http://www.yiiframework.com/ | |||
* @copyright Copyright (c) 2008 Yii Software LLC | |||
* @license http://www.yiiframework.com/license/ | |||
*/ | |||
namespace app\commands; | |||
use yii\console\Controller; | |||
use yii\console\ExitCode; | |||
/** | |||
* This command echoes the first argument that you have entered. | |||
* | |||
* This command is provided as an example for you to learn how to create console commands. | |||
* | |||
* @author Qiang Xue <[email protected]> | |||
* @since 2.0 | |||
*/ | |||
class HelloController extends Controller | |||
{ | |||
/** | |||
* This command echoes what you have entered as the message. | |||
* @param string $message the message to be echoed. | |||
* @return int Exit code | |||
*/ | |||
public function actionIndex($message = 'hello world') | |||
{ | |||
echo $message . "\n"; | |||
return ExitCode::OK; | |||
} | |||
} |
commands/RbacController.php
0 → 100644
composer.json
0 → 100644
composer.lock
0 → 100644
This diff could not be displayed because it is too large.
config/console.php
0 → 100644
config/db.php
0 → 100644
config/params.php
0 → 100644
<?php | |||
return [ | |||
'adminEmail' => '[email protected]', | |||
'senderEmail' => '[email protected]', | |||
'senderName' => 'Example.com mailer', | |||
]; |
config/test.php
0 → 100644
config/test_db.php
0 → 100644
config/web.php
0 → 100644
controllers/AuthController.php
0 → 100644
controllers/SiteController.php
0 → 100644
docker-compose.yml
0 → 100644
mail/layouts/html.php
0 → 100644
migrations/m191025_123812_user.php
0 → 100644
models/ContactForm.php
0 → 100644
models/Image.php
0 → 100644
models/LoginForm.php
0 → 100644
models/Plant.php
0 → 100644
models/PlantImage.php
0 → 100644
models/PlantSearch.php
0 → 100644
models/User.php
0 → 100644
modules/admin/Module.php
0 → 100644
modules/admin/views/default/index.php
0 → 100644
modules/admin/views/layouts/admin.php
0 → 100644
requirements.php
0 → 100644
runtime/.gitignore
0 → 100644
tests/_bootstrap.php
0 → 100644
tests/_data/.gitkeep
0 → 100644
tests/_output/.gitignore
0 → 100644
tests/_support/AcceptanceTester.php
0 → 100644
tests/_support/FunctionalTester.php
0 → 100644
tests/_support/UnitTester.php
0 → 100644
tests/acceptance.suite.yml.example
0 → 100644
tests/acceptance/AboutCest.php
0 → 100644
tests/acceptance/ContactCest.php
0 → 100644
<?php | |||
use yii\helpers\Url; | |||
class ContactCest | |||
{ | |||
public function _before(\AcceptanceTester $I) | |||
{ | |||
$I->amOnPage(Url::toRoute('/site/contact')); | |||
} | |||
public function contactPageWorks(AcceptanceTester $I) | |||
{ | |||
$I->wantTo('ensure that contact page works'); | |||
$I->see('Contact', 'h1'); | |||
} | |||
public function contactFormCanBeSubmitted(AcceptanceTester $I) | |||
{ | |||
$I->amGoingTo('submit contact form with correct data'); | |||
$I->fillField('#contactform-name', 'tester'); | |||
$I->fillField('#contactform-email', '[email protected]'); | |||
$I->fillField('#contactform-subject', 'test subject'); | |||
$I->fillField('#contactform-body', 'test content'); | |||
$I->fillField('#contactform-verifycode', 'testme'); | |||
$I->click('contact-button'); | |||
$I->wait(2); // wait for button to be clicked | |||
$I->dontSeeElement('#contact-form'); | |||
$I->see('Thank you for contacting us. We will respond to you as soon as possible.'); | |||
} | |||
} |
tests/acceptance/HomeCest.php
0 → 100644
tests/acceptance/LoginCest.php
0 → 100644
tests/acceptance/_bootstrap.php
0 → 100644
tests/bin/yii
0 → 100644
tests/bin/yii.bat
0 → 100644
@echo off | |||
rem ------------------------------------------------------------- | |||
rem Yii command line bootstrap script for Windows. | |||
rem | |||
rem @author Qiang Xue <[email protected]> | |||
rem @link http://www.yiiframework.com/ | |||
rem @copyright Copyright (c) 2008 Yii Software LLC | |||
rem @license http://www.yiiframework.com/license/ | |||
rem ------------------------------------------------------------- | |||
@setlocal | |||
set YII_PATH=%~dp0 | |||
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe | |||
"%PHP_COMMAND%" "%YII_PATH%yii" %* | |||
@endlocal |
tests/functional.suite.yml
0 → 100644
tests/functional/ContactFormCest.php
0 → 100644
<?php | |||
class ContactFormCest | |||
{ | |||
public function _before(\FunctionalTester $I) | |||
{ | |||
$I->amOnPage(['site/contact']); | |||
} | |||
public function openContactPage(\FunctionalTester $I) | |||
{ | |||
$I->see('Contact', 'h1'); | |||
} | |||
public function submitEmptyForm(\FunctionalTester $I) | |||
{ | |||
$I->submitForm('#contact-form', []); | |||
$I->expectTo('see validations errors'); | |||
$I->see('Contact', 'h1'); | |||
$I->see('Name cannot be blank'); | |||
$I->see('Email cannot be blank'); | |||
$I->see('Subject cannot be blank'); | |||
$I->see('Body cannot be blank'); | |||
$I->see('The verification code is incorrect'); | |||
} | |||
public function submitFormWithIncorrectEmail(\FunctionalTester $I) | |||
{ | |||
$I->submitForm('#contact-form', [ | |||
'ContactForm[name]' => 'tester', | |||
'ContactForm[email]' => 'tester.email', | |||
'ContactForm[subject]' => 'test subject', | |||
'ContactForm[body]' => 'test content', | |||
'ContactForm[verifyCode]' => 'testme', | |||
]); | |||
$I->expectTo('see that email address is wrong'); | |||
$I->dontSee('Name cannot be blank', '.help-inline'); | |||
$I->see('Email is not a valid email address.'); | |||
$I->dontSee('Subject cannot be blank', '.help-inline'); | |||
$I->dontSee('Body cannot be blank', '.help-inline'); | |||
$I->dontSee('The verification code is incorrect', '.help-inline'); | |||
} | |||
public function submitFormSuccessfully(\FunctionalTester $I) | |||
{ | |||
$I->submitForm('#contact-form', [ | |||
'ContactForm[name]' => 'tester', | |||
'ContactForm[email]' => '[email protected]', | |||
'ContactForm[subject]' => 'test subject', | |||
'ContactForm[body]' => 'test content', | |||
'ContactForm[verifyCode]' => 'testme', | |||
]); | |||
$I->seeEmailIsSent(); | |||
$I->dontSeeElement('#contact-form'); | |||
$I->see('Thank you for contacting us. We will respond to you as soon as possible.'); | |||
} | |||
} |
tests/functional/LoginFormCest.php
0 → 100644
tests/functional/_bootstrap.php
0 → 100644
tests/unit.suite.yml
0 → 100644
tests/unit/_bootstrap.php
0 → 100644
tests/unit/models/ContactFormTest.php
0 → 100644
<?php | |||
namespace tests\unit\models; | |||
use app\models\ContactForm; | |||
use yii\mail\MessageInterface; | |||
class ContactFormTest extends \Codeception\Test\Unit | |||
{ | |||
private $model; | |||
/** | |||
* @var \UnitTester | |||
*/ | |||
public $tester; | |||
public function testEmailIsSentOnContact() | |||
{ | |||
/** @var ContactForm $model */ | |||
$this->model = $this->getMockBuilder('app\models\ContactForm') | |||
->setMethods(['validate']) | |||
->getMock(); | |||
$this->model->expects($this->once()) | |||
->method('validate') | |||
->willReturn(true); | |||
$this->model->attributes = [ | |||
'name' => 'Tester', | |||
'email' => '[email protected]', | |||
'subject' => 'very important letter subject', | |||
'body' => 'body of current message', | |||
]; | |||
expect_that($this->model->contact('[email protected]')); | |||
// using Yii2 module actions to check email was sent | |||
$this->tester->seeEmailIsSent(); | |||
/** @var MessageInterface $emailMessage */ | |||
$emailMessage = $this->tester->grabLastSentEmail(); | |||
expect('valid email is sent', $emailMessage)->isInstanceOf('yii\mail\MessageInterface'); | |||
expect($emailMessage->getTo())->hasKey('[email protected]'); | |||
expect($emailMessage->getFrom())->hasKey('[email protected]'); | |||
expect($emailMessage->getReplyTo())->hasKey('[email protected]'); | |||
expect($emailMessage->getSubject())->equals('very important letter subject'); | |||
expect($emailMessage->toString())->contains('body of current message'); | |||
} | |||
} |
tests/unit/models/LoginFormTest.php
0 → 100644
tests/unit/models/UserTest.php
0 → 100644
vagrant/config/.gitignore
0 → 100644
vagrant/config/vagrant-local.example.yml
0 → 100644
vagrant/nginx/app.conf
0 → 100644
vagrant/nginx/log/.gitignore
0 → 100644
vagrant/provision/always-as-root.sh
0 → 100644
vagrant/provision/once-as-root.sh
0 → 100644
vagrant/provision/once-as-vagrant.sh
0 → 100644
views/admin/index.php
0 → 100644
views/auth/login.php
0 → 100644
views/layouts/main.php
0 → 100644
views/site/about.php
0 → 100644
views/site/contact.php
0 → 100644
views/site/error.php
0 → 100644
views/site/index.php
0 → 100644
views/site/login.php
0 → 100644
web/.htaccess
0 → 100644
web/assets/.gitignore
0 → 100644
web/favicon.ico
0 → 100644
No preview for this file type
web/index-test.php
0 → 100644
web/index.php
0 → 100644
web/robots.txt
0 → 100644
widgets/Alert.php
0 → 100644
<?php | |||
namespace app\widgets; | |||
use Yii; | |||
/** | |||
* Alert widget renders a message from session flash. All flash messages are displayed | |||
* in the sequence they were assigned using setFlash. You can set message as following: | |||
* | |||
* ```php | |||
* Yii::$app->session->setFlash('error', 'This is the message'); | |||
* Yii::$app->session->setFlash('success', 'This is the message'); | |||
* Yii::$app->session->setFlash('info', 'This is the message'); | |||
* ``` | |||
* | |||
* Multiple messages could be set as follows: | |||
* | |||
* ```php | |||
* Yii::$app->session->setFlash('error', ['Error 1', 'Error 2']); | |||
* ``` | |||
* | |||
* @author Kartik Visweswaran <[email protected]> | |||
* @author Alexander Makarov <[email protected]> | |||
*/ | |||
class Alert extends \yii\bootstrap\Widget | |||
{ | |||
/** | |||
* @var array the alert types configuration for the flash messages. | |||
* This array is setup as $key => $value, where: | |||
* - key: the name of the session flash variable | |||
* - value: the bootstrap alert type (i.e. danger, success, info, warning) | |||
*/ | |||
public $alertTypes = [ | |||
'error' => 'alert-danger', | |||
'danger' => 'alert-danger', | |||
'success' => 'alert-success', | |||
'info' => 'alert-info', | |||
'warning' => 'alert-warning' | |||
]; | |||
/** | |||
* @var array the options for rendering the close button tag. | |||
* Array will be passed to [[\yii\bootstrap\Alert::closeButton]]. | |||
*/ | |||
public $closeButton = []; | |||
/** | |||
* {@inheritdoc} | |||
*/ | |||
public function run() | |||
{ | |||
$session = Yii::$app->session; | |||
$flashes = $session->getAllFlashes(); | |||
$appendClass = isset($this->options['class']) ? ' ' . $this->options['class'] : ''; | |||
foreach ($flashes as $type => $flash) { | |||
if (!isset($this->alertTypes[$type])) { | |||
continue; | |||
} | |||
foreach ((array) $flash as $i => $message) { | |||
echo \yii\bootstrap\Alert::widget([ | |||
'body' => $message, | |||
'closeButton' => $this->closeButton, | |||
'options' => array_merge($this->options, [ | |||
'id' => $this->getId() . '-' . $type . '-' . $i, | |||
'class' => $this->alertTypes[$type] . $appendClass, | |||
]), | |||
]); | |||
} | |||
$session->removeFlash($type); | |||
} | |||
} | |||
} |
yii
0 → 100644
yii.bat
0 → 100644
@echo off | |||
rem ------------------------------------------------------------- | |||
rem Yii command line bootstrap script for Windows. | |||
rem | |||
rem @author Qiang Xue <[email protected]> | |||
rem @link http://www.yiiframework.com/ | |||
rem @copyright Copyright (c) 2008 Yii Software LLC | |||
rem @license http://www.yiiframework.com/license/ | |||
rem ------------------------------------------------------------- | |||
@setlocal | |||
set YII_PATH=%~dp0 | |||
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe | |||
"%PHP_COMMAND%" "%YII_PATH%yii" %* | |||
@endlocal |
-
Please register or sign in to post a comment