Renamed apps/bootstrap to apps/basic.
This commit is contained in:
commit
cb76b82e09
32
LICENSE.md
Normal file
32
LICENSE.md
Normal file
@ -0,0 +1,32 @@
|
||||
The Yii framework is free software. It is released under the terms of
|
||||
the following BSD License.
|
||||
|
||||
Copyright © 2008-2013 by Yii Software LLC (http://www.yiisoft.com)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Yii Software LLC nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
61
README.md
Normal file
61
README.md
Normal file
@ -0,0 +1,61 @@
|
||||
Yii 2 Basic Application Template
|
||||
================================
|
||||
|
||||
**NOTE** Yii 2 and the relevant applications and extensions are still under heavy
|
||||
development. We may make significant changes without prior notices. Please do not
|
||||
use them for production. Please consider using [Yii v1.1](https://github.com/yiisoft/yii)
|
||||
if you have a project to be deployed for production soon.
|
||||
|
||||
|
||||
Thank you for using Yii 2 Basic Application Template - an application template
|
||||
that works out-of-box and can be easily customized to fit for your needs.
|
||||
|
||||
Yii 2 Basic Application Template is best suitable for small Websites which mainly contain
|
||||
a few informational pages.
|
||||
|
||||
|
||||
DIRECTORY STRUCTURE
|
||||
-------------------
|
||||
|
||||
commands/ contains console commands (controllers)
|
||||
config/ contains application configurations
|
||||
controllers/ contains Web controller classes
|
||||
models/ contains model classes
|
||||
runtime/ contains files generated during runtime
|
||||
vendor/ contains dependent 3rd-party packages
|
||||
views/ contains view files for the Web application
|
||||
www/ contains the entry script and Web resources
|
||||
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
------------
|
||||
|
||||
The minimum requirement by Yii is that your Web server supports PHP 5.3.?.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
### Install via Composer
|
||||
|
||||
If you do not have [Composer](http://getcomposer.org/), you may download it from
|
||||
[http://getcomposer.org/](http://getcomposer.org/) or run the following command on Linux/Unix/MacOS:
|
||||
|
||||
~~~
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
~~~
|
||||
|
||||
You can then install the Bootstrap Application using the following command:
|
||||
|
||||
~~~
|
||||
php composer.phar create-project --stability=dev yiisoft/yii2-app-basic yii-basic
|
||||
~~~
|
||||
|
||||
Now you should be able to access the Bootstrap Application using the URL `http://localhost/yii-basic/www/`,
|
||||
assuming `yii-basic` is directly under the document root of your Web server.
|
||||
|
||||
|
||||
### Install from an Archive File
|
||||
|
||||
This is not currently available. We will provide it when Yii 2 is formally released.
|
1
assets/.gitignore
vendored
Normal file
1
assets/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*
|
29
commands/HelloController.php
Normal file
29
commands/HelloController.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?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;
|
||||
|
||||
/**
|
||||
* This command echos what 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 <qiang.xue@gmail.com>
|
||||
* @since 2.0
|
||||
*/
|
||||
class HelloController extends Controller
|
||||
{
|
||||
/**
|
||||
* This command echos what you have entered as the message.
|
||||
* @param string $message the message to be echoed.
|
||||
*/
|
||||
public function actionIndex($message = 'hello world')
|
||||
{
|
||||
echo $message."\n";
|
||||
}
|
||||
}
|
38
composer.json
Normal file
38
composer.json
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
"name": "yiisoft/yii2-app-basic",
|
||||
"description": "Yii 2 Basic Application Template",
|
||||
"keywords": ["yii", "framework", "basic", "application template"],
|
||||
"homepage": "http://www.yiiframework.com/",
|
||||
"type": "project",
|
||||
"license": "BSD-3-Clause",
|
||||
"support": {
|
||||
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
|
||||
"forum": "http://www.yiiframework.com/forum/",
|
||||
"wiki": "http://www.yiiframework.com/wiki/",
|
||||
"irc": "irc://irc.freenode.net/yii",
|
||||
"source": "https://github.com/yiisoft/yii2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"yiisoft/yii2": "dev-master",
|
||||
"yiisoft/yii2-composer": "dev-master"
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"yii\\composer\\InstallHandler::setPermissions"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"yii\\composer\\InstallHandler::setPermissions"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"yii-install-writable": [
|
||||
"runtime",
|
||||
"www/assets"
|
||||
],
|
||||
"yii-install-executable": [
|
||||
"yii"
|
||||
]
|
||||
}
|
||||
}
|
18
config/assets.php
Normal file
18
config/assets.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'app' => array(
|
||||
'basePath' => '@wwwroot',
|
||||
'baseUrl' => '@www',
|
||||
'css' => array(
|
||||
'css/site.css',
|
||||
),
|
||||
'js' => array(
|
||||
|
||||
),
|
||||
'depends' => array(
|
||||
'yii',
|
||||
'yii/bootstrap/responsive',
|
||||
),
|
||||
),
|
||||
);
|
26
config/console.php
Normal file
26
config/console.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'id' => 'bootstrap-console',
|
||||
'basePath' => dirname(__DIR__),
|
||||
'preload' => array('log'),
|
||||
'controllerPath' => dirname(__DIR__) . '/commands',
|
||||
'controllerNamespace' => 'app\commands',
|
||||
'modules' => array(
|
||||
),
|
||||
'components' => array(
|
||||
'cache' => array(
|
||||
'class' => 'yii\caching\FileCache',
|
||||
),
|
||||
'log' => array(
|
||||
'class' => 'yii\logging\Router',
|
||||
'targets' => array(
|
||||
array(
|
||||
'class' => 'yii\logging\FileTarget',
|
||||
'levels' => array('error', 'warning'),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'params' => require(__DIR__ . '/params.php'),
|
||||
);
|
38
config/main.php
Normal file
38
config/main.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'id' => 'bootstrap',
|
||||
'basePath' => dirname(__DIR__),
|
||||
'preload' => array('log'),
|
||||
'controllerNamespace' => 'app\controllers',
|
||||
'modules' => array(
|
||||
// 'debug' => array(
|
||||
// 'class' => 'yii\debug\Module',
|
||||
// )
|
||||
),
|
||||
'components' => array(
|
||||
'cache' => array(
|
||||
'class' => 'yii\caching\FileCache',
|
||||
),
|
||||
'user' => array(
|
||||
'class' => 'yii\web\User',
|
||||
'identityClass' => 'app\models\User',
|
||||
),
|
||||
'assetManager' => array(
|
||||
'bundles' => require(__DIR__ . '/assets.php'),
|
||||
),
|
||||
'log' => array(
|
||||
'class' => 'yii\logging\Router',
|
||||
'targets' => array(
|
||||
array(
|
||||
'class' => 'yii\logging\FileTarget',
|
||||
'levels' => array('error', 'warning'),
|
||||
),
|
||||
// array(
|
||||
// 'class' => 'yii\logging\DebugTarget',
|
||||
// )
|
||||
),
|
||||
),
|
||||
),
|
||||
'params' => require(__DIR__ . '/params.php'),
|
||||
);
|
5
config/params.php
Normal file
5
config/params.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'adminEmail' => 'admin@example.com',
|
||||
);
|
61
controllers/SiteController.php
Normal file
61
controllers/SiteController.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace app\controllers;
|
||||
|
||||
use Yii;
|
||||
use yii\web\Controller;
|
||||
use app\models\LoginForm;
|
||||
use app\models\ContactForm;
|
||||
|
||||
class SiteController extends Controller
|
||||
{
|
||||
public function actions()
|
||||
{
|
||||
return array(
|
||||
'captcha' => array(
|
||||
'class' => 'yii\web\CaptchaAction',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public function actionIndex()
|
||||
{
|
||||
echo $this->render('index');
|
||||
}
|
||||
|
||||
public function actionLogin()
|
||||
{
|
||||
$model = new LoginForm();
|
||||
if ($this->populate($_POST, $model) && $model->login()) {
|
||||
Yii::$app->response->redirect(array('site/index'));
|
||||
} else {
|
||||
echo $this->render('login', array(
|
||||
'model' => $model,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
public function actionLogout()
|
||||
{
|
||||
Yii::$app->getUser()->logout();
|
||||
Yii::$app->getResponse()->redirect(array('site/index'));
|
||||
}
|
||||
|
||||
public function actionContact()
|
||||
{
|
||||
$model = new ContactForm;
|
||||
if ($this->populate($_POST, $model) && $model->contact(Yii::$app->params['adminEmail'])) {
|
||||
Yii::$app->session->setFlash('contactFormSubmitted');
|
||||
Yii::$app->response->refresh();
|
||||
} else {
|
||||
echo $this->render('contact', array(
|
||||
'model' => $model,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
public function actionAbout()
|
||||
{
|
||||
echo $this->render('about');
|
||||
}
|
||||
}
|
63
models/ContactForm.php
Normal file
63
models/ContactForm.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace app\models;
|
||||
|
||||
use yii\base\Model;
|
||||
|
||||
/**
|
||||
* ContactForm is the model behind the contact form.
|
||||
*/
|
||||
class ContactForm extends Model
|
||||
{
|
||||
public $name;
|
||||
public $email;
|
||||
public $subject;
|
||||
public $body;
|
||||
public $verifyCode;
|
||||
|
||||
/**
|
||||
* @return array the validation rules.
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return array(
|
||||
// name, email, subject and body are required
|
||||
array('name, email, subject, body', 'required'),
|
||||
// email has to be a valid email address
|
||||
array('email', 'email'),
|
||||
// verifyCode needs to be entered correctly
|
||||
array('verifyCode', 'captcha'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array customized attribute labels
|
||||
*/
|
||||
public function attributeLabels()
|
||||
{
|
||||
return array(
|
||||
'verifyCode' => 'Verification Code',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an email to the specified email address using the information collected by this model.
|
||||
* @param string $email the target email address
|
||||
* @return boolean whether the model passes validation
|
||||
*/
|
||||
public function contact($email)
|
||||
{
|
||||
if ($this->validate()) {
|
||||
$name = '=?UTF-8?B?' . base64_encode($this->name) . '?=';
|
||||
$subject = '=?UTF-8?B?' . base64_encode($this->subject) . '?=';
|
||||
$headers = "From: $name <{$this->email}>\r\n" .
|
||||
"Reply-To: {$this->email}\r\n" .
|
||||
"MIME-Version: 1.0\r\n" .
|
||||
"Content-type: text/plain; charset=UTF-8";
|
||||
mail($email, $subject, $this->body, $headers);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
58
models/LoginForm.php
Normal file
58
models/LoginForm.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace app\models;
|
||||
|
||||
use Yii;
|
||||
use yii\base\Model;
|
||||
|
||||
/**
|
||||
* LoginForm is the model behind the login form.
|
||||
*/
|
||||
class LoginForm extends Model
|
||||
{
|
||||
public $username;
|
||||
public $password;
|
||||
public $rememberMe = true;
|
||||
|
||||
/**
|
||||
* @return array the validation rules.
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return array(
|
||||
// username and password are both required
|
||||
array('username, password', 'required'),
|
||||
// password is validated by validatePassword()
|
||||
array('password', 'validatePassword'),
|
||||
// rememberMe must be a boolean value
|
||||
array('rememberMe', 'boolean'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the password.
|
||||
* This method serves as the inline validation for password.
|
||||
*/
|
||||
public function validatePassword()
|
||||
{
|
||||
$user = User::findByUsername($this->username);
|
||||
if (!$user || !$user->validatePassword($this->password)) {
|
||||
$this->addError('password', 'Incorrect username or password.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs in a user using the provided username and password.
|
||||
* @return boolean whether the user is logged in successfully
|
||||
*/
|
||||
public function login()
|
||||
{
|
||||
if ($this->validate()) {
|
||||
$user = User::findByUsername($this->username);
|
||||
Yii::$app->user->login($user, $this->rememberMe ? 3600*24*30 : 0);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
61
models/User.php
Normal file
61
models/User.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace app\models;
|
||||
|
||||
class User extends \yii\base\Object implements \yii\web\Identity
|
||||
{
|
||||
public $id;
|
||||
public $username;
|
||||
public $password;
|
||||
public $authKey;
|
||||
|
||||
private static $users = array(
|
||||
'100' => array(
|
||||
'id' => '100',
|
||||
'username' => 'admin',
|
||||
'password' => 'admin',
|
||||
'authKey' => 'test100key',
|
||||
),
|
||||
'101' => array(
|
||||
'id' => '101',
|
||||
'username' => 'demo',
|
||||
'password' => 'demo',
|
||||
'authKey' => 'test101key',
|
||||
),
|
||||
);
|
||||
|
||||
public static function findIdentity($id)
|
||||
{
|
||||
return isset(self::$users[$id]) ? new self(self::$users[$id]) : null;
|
||||
}
|
||||
|
||||
public static function findByUsername($username)
|
||||
{
|
||||
foreach (self::$users as $user) {
|
||||
if (strcasecmp($user['username'], $username) === 0) {
|
||||
return new self($user);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getAuthKey()
|
||||
{
|
||||
return $this->authKey;
|
||||
}
|
||||
|
||||
public function validateAuthKey($authKey)
|
||||
{
|
||||
return $this->authKey === $authKey;
|
||||
}
|
||||
|
||||
public function validatePassword($password)
|
||||
{
|
||||
return $this->password === $password;
|
||||
}
|
||||
}
|
96
requirements.php
Normal file
96
requirements.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/**
|
||||
* Application requirement checker script.
|
||||
*
|
||||
* In order to run this script use the following console command:
|
||||
* php requirements.php
|
||||
*
|
||||
* In order to run this script from the web, you should copy it to the web root.
|
||||
* If you are using Linux you can create a hard link instead, using the following command:
|
||||
* ln requirements.php ../requirements.php
|
||||
*/
|
||||
|
||||
// you may need to adjust this path to the correct Yii framework path
|
||||
$frameworkPath = dirname(__FILE__) . '/../../yii';
|
||||
|
||||
require_once($frameworkPath . '/requirements/YiiRequirementChecker.php');
|
||||
$requirementsChecker = new YiiRequirementChecker();
|
||||
|
||||
/**
|
||||
* Adjust requirements according to your application specifics.
|
||||
*/
|
||||
$requirements = array(
|
||||
// Database :
|
||||
array(
|
||||
'name' => 'PDO extension',
|
||||
'mandatory' => true,
|
||||
'condition' => extension_loaded('pdo'),
|
||||
'by' => 'All <a href="http://www.yiiframework.com/doc/api/#system.db">DB-related classes</a>',
|
||||
),
|
||||
array(
|
||||
'name' => 'PDO SQLite extension',
|
||||
'mandatory' => false,
|
||||
'condition' => extension_loaded('pdo_sqlite'),
|
||||
'by' => 'All <a href="http://www.yiiframework.com/doc/api/#system.db">DB-related classes</a>',
|
||||
'memo' => 'Required for SQLite database.',
|
||||
),
|
||||
array(
|
||||
'name' => 'PDO MySQL extension',
|
||||
'mandatory' => false,
|
||||
'condition' => extension_loaded('pdo_mysql'),
|
||||
'by' => 'All <a href="http://www.yiiframework.com/doc/api/#system.db">DB-related classes</a>',
|
||||
'memo' => 'Required for MySQL database.',
|
||||
),
|
||||
// Cache :
|
||||
array(
|
||||
'name' => 'Memcache extension',
|
||||
'mandatory' => false,
|
||||
'condition' => extension_loaded('memcache') || extension_loaded('memcached'),
|
||||
'by' => '<a href="http://www.yiiframework.com/doc/api/CMemCache">CMemCache</a>',
|
||||
'memo' => extension_loaded('memcached') ? 'To use memcached set <a href="http://www.yiiframework.com/doc/api/CMemCache#useMemcached-detail">CMemCache::useMemcached</a> to <code>true</code>.' : ''
|
||||
),
|
||||
array(
|
||||
'name' => 'APC extension',
|
||||
'mandatory' => false,
|
||||
'condition' => extension_loaded('apc') || extension_loaded('apc'),
|
||||
'by' => '<a href="http://www.yiiframework.com/doc/api/CApcCache">CApcCache</a>',
|
||||
),
|
||||
// Additional PHP extensions :
|
||||
array(
|
||||
'name' => 'Mcrypt extension',
|
||||
'mandatory' => false,
|
||||
'condition' => extension_loaded('mcrypt'),
|
||||
'by' => '<a href="http://www.yiiframework.com/doc/api/CSecurityManager">CSecurityManager</a>',
|
||||
'memo' => 'Required by encrypt and decrypt methods.'
|
||||
),
|
||||
// PHP ini :
|
||||
'phpSafeMode' => array(
|
||||
'name' => 'PHP safe mode',
|
||||
'mandatory' => false,
|
||||
'condition' => $requirementsChecker->checkPhpIniOff("safe_mode"),
|
||||
'by' => 'File uploading and console command execution',
|
||||
'memo' => '"safe_mode" should be disabled at php.ini',
|
||||
),
|
||||
'phpExposePhp' => array(
|
||||
'name' => 'Expose PHP',
|
||||
'mandatory' => false,
|
||||
'condition' => $requirementsChecker->checkPhpIniOff("expose_php"),
|
||||
'by' => 'Security reasons',
|
||||
'memo' => '"expose_php" should be disabled at php.ini',
|
||||
),
|
||||
'phpAllowUrlInclude' => array(
|
||||
'name' => 'PHP allow url include',
|
||||
'mandatory' => false,
|
||||
'condition' => $requirementsChecker->checkPhpIniOff("allow_url_include"),
|
||||
'by' => 'Security reasons',
|
||||
'memo' => '"allow_url_include" should be disabled at php.ini',
|
||||
),
|
||||
'phpSmtp' => array(
|
||||
'name' => 'PHP mail SMTP',
|
||||
'mandatory' => false,
|
||||
'condition' => strlen(ini_get('SMTP'))>0,
|
||||
'by' => 'Email sending',
|
||||
'memo' => 'PHP mail SMTP server required',
|
||||
),
|
||||
);
|
||||
$requirementsChecker->checkYii()->check($requirements)->render();
|
1
runtime/.gitignore
vendored
Normal file
1
runtime/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*
|
1
vendor/.gitignore
vendored
Normal file
1
vendor/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*
|
66
views/layouts/main.php
Normal file
66
views/layouts/main.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\Menu;
|
||||
use yii\widgets\Breadcrumbs;
|
||||
use yii\debug\Toolbar;
|
||||
|
||||
/**
|
||||
* @var $this \yii\base\View
|
||||
* @var $content string
|
||||
*/
|
||||
$this->registerAssetBundle('app');
|
||||
?>
|
||||
<?php $this->beginPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title><?php echo Html::encode($this->title); ?></title>
|
||||
<?php $this->head(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<?php $this->beginBody(); ?>
|
||||
<div class="masthead">
|
||||
<h3 class="muted">My Company</h3>
|
||||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<?php echo Menu::widget(array(
|
||||
'options' => array('class' => 'nav'),
|
||||
'items' => array(
|
||||
array('label' => 'Home', 'url' => array('/site/index')),
|
||||
array('label' => 'About', 'url' => array('/site/about')),
|
||||
array('label' => 'Contact', 'url' => array('/site/contact')),
|
||||
Yii::$app->user->isGuest ?
|
||||
array('label' => 'Login', 'url' => array('/site/login')) :
|
||||
array('label' => 'Logout (' . Yii::$app->user->identity->username .')' , 'url' => array('/site/logout')),
|
||||
),
|
||||
)); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.navbar -->
|
||||
</div>
|
||||
|
||||
<?php echo Breadcrumbs::widget(array(
|
||||
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : array(),
|
||||
)); ?>
|
||||
<?php echo $content; ?>
|
||||
|
||||
<hr>
|
||||
|
||||
<div class="footer">
|
||||
<p>© My Company <?php echo date('Y'); ?></p>
|
||||
<p>
|
||||
<?php echo Yii::powered(); ?>
|
||||
Template by <a href="http://twitter.github.io/bootstrap/">Twitter Bootstrap</a>
|
||||
</p>
|
||||
</div>
|
||||
<?php $this->endBody(); ?>
|
||||
</div>
|
||||
<?php echo Toolbar::widget(); ?>
|
||||
</body>
|
||||
</html>
|
||||
<?php $this->endPage(); ?>
|
16
views/site/about.php
Normal file
16
views/site/about.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
/**
|
||||
* @var yii\base\View $this
|
||||
*/
|
||||
$this->title = 'About';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<h1><?php echo Html::encode($this->title); ?></h1>
|
||||
|
||||
<p>
|
||||
This is the About page. You may modify the following file to customize its content:
|
||||
</p>
|
||||
|
||||
<code><?php echo __FILE__; ?></code>
|
||||
|
46
views/site/contact.php
Normal file
46
views/site/contact.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
use yii\widgets\Captcha;
|
||||
|
||||
/**
|
||||
* @var yii\base\View $this
|
||||
* @var yii\widgets\ActiveForm $form
|
||||
* @var app\models\ContactForm $model
|
||||
*/
|
||||
$this->title = 'Contact';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<h1><?php echo Html::encode($this->title); ?></h1>
|
||||
|
||||
<?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>
|
||||
<div class="alert alert-success">
|
||||
Thank you for contacting us. We will respond to you as soon as possible.
|
||||
</div>
|
||||
<?php return; endif; ?>
|
||||
|
||||
<p>
|
||||
If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
|
||||
</p>
|
||||
|
||||
<?php $form = ActiveForm::begin(array(
|
||||
'options' => array('class' => 'form-horizontal'),
|
||||
'fieldConfig' => array('inputOptions' => array('class' => 'input-xlarge')),
|
||||
)); ?>
|
||||
<?php echo $form->field($model, 'name')->textInput(); ?>
|
||||
<?php echo $form->field($model, 'email')->textInput(); ?>
|
||||
<?php echo $form->field($model, 'subject')->textInput(); ?>
|
||||
<?php echo $form->field($model, 'body')->textArea(array('rows' => 6)); ?>
|
||||
<?php
|
||||
$field = $form->field($model, 'verifyCode');
|
||||
echo $field->begin()
|
||||
. $field->label()
|
||||
. Captcha::widget()
|
||||
. Html::activeTextInput($model, 'verifyCode', array('class' => 'input-medium'))
|
||||
. $field->error()
|
||||
. $field->end();
|
||||
?>
|
||||
<div class="form-actions">
|
||||
<?php echo Html::submitButton('Submit', null, null, array('class' => 'btn btn-primary')); ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
47
views/site/index.php
Normal file
47
views/site/index.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* @var yii\base\View $this
|
||||
*/
|
||||
$this->title = 'Welcome';
|
||||
?>
|
||||
<div class="jumbotron">
|
||||
<h1>Welcome!</h1>
|
||||
|
||||
<p class="lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus
|
||||
commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
|
||||
<a class="btn btn-large btn-success" href="http://www.yiiframework.com">Get started with Yii</a>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- Example row of columns -->
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris
|
||||
condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod.
|
||||
Donec sed odio dui. </p>
|
||||
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris
|
||||
condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod.
|
||||
Donec sed odio dui. </p>
|
||||
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<h2>Heading</h2>
|
||||
|
||||
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta
|
||||
felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum
|
||||
massa.</p>
|
||||
|
||||
<p><a class="btn" href="#">View details »</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
24
views/site/login.php
Normal file
24
views/site/login.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
/**
|
||||
* @var yii\base\View $this
|
||||
* @var yii\widgets\ActiveForm $form
|
||||
* @var app\models\LoginForm $model
|
||||
*/
|
||||
$this->title = 'Login';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<h1><?php echo Html::encode($this->title); ?></h1>
|
||||
|
||||
<p>Please fill out the following fields to login:</p>
|
||||
|
||||
<?php $form = ActiveForm::begin(array('options' => array('class' => 'form-horizontal'))); ?>
|
||||
<?php echo $form->field($model, 'username')->textInput(); ?>
|
||||
<?php echo $form->field($model, 'password')->passwordInput(); ?>
|
||||
<?php echo $form->field($model, 'rememberMe')->checkbox(); ?>
|
||||
<div class="form-actions">
|
||||
<?php echo Html::submitButton('Login', null, null, array('class' => 'btn btn-primary')); ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
1
www/assets/.gitignore
vendored
Normal file
1
www/assets/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*
|
78
www/css/site.css
Normal file
78
www/css/site.css
Normal file
@ -0,0 +1,78 @@
|
||||
body {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
|
||||
/* Custom container */
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
max-width: 1000px;
|
||||
}
|
||||
|
||||
.container > hr {
|
||||
margin: 60px 0;
|
||||
}
|
||||
|
||||
/* Main marketing message and sign up button */
|
||||
.jumbotron {
|
||||
margin: 80px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jumbotron h1 {
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.jumbotron .lead {
|
||||
font-size: 24px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
/* Supporting marketing content */
|
||||
.marketing {
|
||||
margin: 60px 0;
|
||||
}
|
||||
|
||||
.marketing p + h4 {
|
||||
margin-top: 28px;
|
||||
}
|
||||
|
||||
/* Customize the navbar links to be fill the entire space of the .navbar */
|
||||
.navbar .navbar-inner {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.navbar .nav {
|
||||
margin: 0;
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar .nav li {
|
||||
display: table-cell;
|
||||
width: 1%;
|
||||
float: none;
|
||||
}
|
||||
|
||||
.navbar .nav li a {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border-left: 1px solid rgba(255, 255, 255, .75);
|
||||
border-right: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.navbar .nav li:first-child a {
|
||||
border-left: 0;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
|
||||
.navbar .nav li:last-child a {
|
||||
border-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
12
www/index.php
Normal file
12
www/index.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
// comment out the following line to disable debug mode
|
||||
defined('YII_DEBUG') or define('YII_DEBUG', true);
|
||||
|
||||
require(__DIR__ . '/../vendor/yiisoft/yii2/yii/Yii.php');
|
||||
require(__DIR__ . '/../vendor/autoload.php');
|
||||
|
||||
$config = require(__DIR__ . '/../config/main.php');
|
||||
|
||||
$application = new yii\web\Application($config);
|
||||
$application->run();
|
22
yii
Executable file
22
yii
Executable file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
* Yii console bootstrap file.
|
||||
*
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
defined('YII_DEBUG') or define('YII_DEBUG', true);
|
||||
|
||||
// fcgi doesn't have STDIN defined by default
|
||||
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
|
||||
|
||||
require(__DIR__ . '/vendor/yiisoft/yii2/yii/Yii.php');
|
||||
require(__DIR__ . '/vendor/autoload.php');
|
||||
|
||||
$config = require(__DIR__ . '/config/console.php');
|
||||
|
||||
$application = new yii\console\Application($config);
|
||||
$application->run();
|
20
yii.bat
Normal file
20
yii.bat
Normal file
@ -0,0 +1,20 @@
|
||||
@echo off
|
||||
|
||||
rem -------------------------------------------------------------
|
||||
rem Yii command line bootstrap script for Windows.
|
||||
rem
|
||||
rem @author Qiang Xue <qiang.xue@gmail.com>
|
||||
rem @link http://www.yiiframework.com/
|
||||
rem @copyright Copyright © 2012 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
|
Loading…
Reference in New Issue
Block a user