init
This commit is contained in:
21
.env.example
Normal file
21
.env.example
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# The environment Craft is currently running in (dev, staging, production, etc.)
|
||||||
|
ENVIRONMENT=dev
|
||||||
|
|
||||||
|
# The application ID used to to uniquely store session and cache data, mutex locks, and more
|
||||||
|
APP_ID=
|
||||||
|
|
||||||
|
# The secure key Craft will use for hashing and encrypting data
|
||||||
|
SECURITY_KEY=
|
||||||
|
|
||||||
|
# Database Configuration
|
||||||
|
DB_DRIVER=mysql
|
||||||
|
DB_SERVER=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=
|
||||||
|
DB_USER=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
DB_SCHEMA=public
|
||||||
|
DB_TABLE_PREFIX=
|
||||||
|
|
||||||
|
# The URI segment that tells Craft to load the control panel
|
||||||
|
CP_TRIGGER=admin
|
||||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
/.env
|
||||||
|
/.idea
|
||||||
|
/vendor
|
||||||
|
.DS_Store
|
||||||
3
Procfile
Normal file
3
Procfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
web: vendor/bin/heroku-php-nginx -C nginx_app.conf web
|
||||||
|
worker: ./craft queue/listen --verbose
|
||||||
|
release: ./bin/release.sh
|
||||||
6
bin/release.sh
Normal file
6
bin/release.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
if php craft install/check
|
||||||
|
then
|
||||||
|
php craft migrate/all --interactive=0
|
||||||
|
php craft project-config/apply --interactive=0
|
||||||
|
php craft cache/flush-schema db --interactive=0
|
||||||
|
fi
|
||||||
27
composer.json
Normal file
27
composer.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"craftcms/cms": "^3.6.4",
|
||||||
|
"vlucas/phpdotenv": "^3.4.0",
|
||||||
|
"codemix/yii2-streamlog": "^1.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"yiisoft/yii2-shell": "^2.0.3"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"modules\\": "modules/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"sort-packages": true,
|
||||||
|
"optimize-autoloader": true,
|
||||||
|
"platform": {
|
||||||
|
"php": "7.2.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"post-root-package-install": [
|
||||||
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
6141
composer.lock
generated
Normal file
6141
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
44
config/app.php
Normal file
44
config/app.php
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Yii Application Config
|
||||||
|
*
|
||||||
|
* Edit this file at your own risk!
|
||||||
|
*
|
||||||
|
* The array returned by this file will get merged with
|
||||||
|
* vendor/craftcms/cms/src/config/app.php and app.[web|console].php, when
|
||||||
|
* Craft's bootstrap script is defining the configuration for the entire
|
||||||
|
* application.
|
||||||
|
*
|
||||||
|
* You can define custom modules and system components, and even override the
|
||||||
|
* built-in system components.
|
||||||
|
*
|
||||||
|
* If you want to modify the application config for *only* web requests or
|
||||||
|
* *only* console requests, create an app.web.php or app.console.php file in
|
||||||
|
* your config/ folder, alongside this one.
|
||||||
|
*/
|
||||||
|
|
||||||
|
use craft\helpers\App;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'*' => [
|
||||||
|
'id' => App::env('APP_ID') ?: 'CraftCMS',
|
||||||
|
'modules' => [
|
||||||
|
'my-module' => \modules\Module::class,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'production' => [
|
||||||
|
'components' => [
|
||||||
|
'log' => [
|
||||||
|
'targets' => [
|
||||||
|
[
|
||||||
|
'class' => codemix\streamlog\Target::class,
|
||||||
|
'url' => 'php://stderr',
|
||||||
|
'levels' => ['error', 'warning'],
|
||||||
|
'logVars' => []
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
//'bootstrap' => ['my-module'],
|
||||||
|
];
|
||||||
30
config/db.php
Normal file
30
config/db.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Database Configuration
|
||||||
|
*
|
||||||
|
* All of your system's database connection settings go in here. You can see a
|
||||||
|
* list of the available settings in vendor/craftcms/cms/src/config/DbConfig.php.
|
||||||
|
*
|
||||||
|
* @see craft\config\DbConfig
|
||||||
|
*/
|
||||||
|
|
||||||
|
use craft\helpers\App;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'*' => [
|
||||||
|
'dsn' => App::env('DB_DSN') ?: null,
|
||||||
|
'driver' => App::env('DB_DRIVER'),
|
||||||
|
'server' => App::env('DB_SERVER'),
|
||||||
|
'port' => App::env('DB_PORT'),
|
||||||
|
'database' => App::env('DB_DATABASE'),
|
||||||
|
'user' => App::env('DB_USER'),
|
||||||
|
'password' => App::env('DB_PASSWORD'),
|
||||||
|
'schema' => App::env('DB_SCHEMA'),
|
||||||
|
'tablePrefix' => App::env('DB_TABLE_PREFIX'),
|
||||||
|
'charset' => 'utf8',
|
||||||
|
'collation' => 'utf8_unicode_ci',
|
||||||
|
],
|
||||||
|
'production' => [
|
||||||
|
'url' => getenv('DATABASE_URL')
|
||||||
|
]
|
||||||
|
];
|
||||||
37
config/general.php
Normal file
37
config/general.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* General Configuration
|
||||||
|
*
|
||||||
|
* All of your system's general configuration settings go in here. You can see a
|
||||||
|
* list of the available settings in vendor/craftcms/cms/src/config/GeneralConfig.php.
|
||||||
|
*
|
||||||
|
* @see \craft\config\GeneralConfig
|
||||||
|
*/
|
||||||
|
|
||||||
|
use craft\helpers\App;
|
||||||
|
|
||||||
|
$isDev = App::env('ENVIRONMENT') === 'dev';
|
||||||
|
$isProd = App::env('ENVIRONMENT') === 'production';
|
||||||
|
|
||||||
|
return [
|
||||||
|
// Default Week Start Day (0 = Sunday, 1 = Monday...)
|
||||||
|
'defaultWeekStartDay' => 1,
|
||||||
|
|
||||||
|
// Whether generated URLs should omit "index.php"
|
||||||
|
'omitScriptNameInUrls' => true,
|
||||||
|
|
||||||
|
// The URI segment that tells Craft to load the control panel
|
||||||
|
'cpTrigger' => App::env('CP_TRIGGER') ?: 'admin',
|
||||||
|
|
||||||
|
// The secure key Craft will use for hashing and encrypting data
|
||||||
|
'securityKey' => App::env('SECURITY_KEY'),
|
||||||
|
|
||||||
|
// Whether Dev Mode should be enabled (see https://craftcms.com/guides/what-dev-mode-does)
|
||||||
|
'devMode' => $isDev,
|
||||||
|
|
||||||
|
// Whether administrative changes should be allowed
|
||||||
|
'allowAdminChanges' => $isDev,
|
||||||
|
|
||||||
|
// Whether crawlers should be allowed to index pages and following links
|
||||||
|
'disallowRobots' => !$isProd,
|
||||||
|
];
|
||||||
11
config/htmlpurifier/Default.json
Normal file
11
config/htmlpurifier/Default.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"Attr.AllowedFrameTargets": [
|
||||||
|
"_blank"
|
||||||
|
],
|
||||||
|
"Attr.EnableID": true,
|
||||||
|
"HTML.AllowedComments": [
|
||||||
|
"pagebreak"
|
||||||
|
],
|
||||||
|
"HTML.SafeIframe": true,
|
||||||
|
"URI.SafeIframeRegexp": "%^(https?:)?//(www.youtube.com/embed/|player.vimeo.com/video/)%"
|
||||||
|
}
|
||||||
19
config/redactor/Default.json
Normal file
19
config/redactor/Default.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"buttons": [
|
||||||
|
"html",
|
||||||
|
"formatting",
|
||||||
|
"bold",
|
||||||
|
"italic",
|
||||||
|
"unorderedlist",
|
||||||
|
"orderedlist",
|
||||||
|
"link",
|
||||||
|
"image",
|
||||||
|
"video"
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"fullscreen",
|
||||||
|
"video"
|
||||||
|
],
|
||||||
|
"linkNewTab": true,
|
||||||
|
"toolbarFixed": true
|
||||||
|
}
|
||||||
4
config/redactor/Simple.json
Normal file
4
config/redactor/Simple.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"buttons": ["bold", "italic"],
|
||||||
|
"toolbarFixed": true
|
||||||
|
}
|
||||||
23
config/routes.php
Normal file
23
config/routes.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Site URL Rules
|
||||||
|
*
|
||||||
|
* You can define custom site URL rules here, which Craft will check in addition
|
||||||
|
* to any routes you’ve defined in Settings → Routes.
|
||||||
|
*
|
||||||
|
* See http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html for more
|
||||||
|
* info about URL rules.
|
||||||
|
*
|
||||||
|
* In addition to Yii’s supported syntaxes, Craft supports a shortcut syntax for
|
||||||
|
* defining template routes:
|
||||||
|
*
|
||||||
|
* 'blog/archive/<year:\d{4}>' => ['template' => 'blog/_archive'],
|
||||||
|
*
|
||||||
|
* That example would match URIs such as `/blog/archive/2012`, and pass the
|
||||||
|
* request along to the `blog/_archive` template, providing it a `year` variable
|
||||||
|
* set to the value `2012`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
];
|
||||||
28
craft
Executable file
28
craft
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Craft console bootstrap file
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Define path constants
|
||||||
|
define('CRAFT_BASE_PATH', __DIR__);
|
||||||
|
define('CRAFT_VENDOR_PATH', CRAFT_BASE_PATH . '/vendor');
|
||||||
|
|
||||||
|
// Load Composer's autoloader
|
||||||
|
require_once CRAFT_VENDOR_PATH . '/autoload.php';
|
||||||
|
|
||||||
|
// Load dotenv?
|
||||||
|
if (class_exists('Dotenv\Dotenv') && file_exists(CRAFT_BASE_PATH . '/.env')) {
|
||||||
|
Dotenv\Dotenv::create(CRAFT_BASE_PATH)->load();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define additional PHP constants
|
||||||
|
// (see https://craftcms.com/docs/3.x/config/#php-constants)
|
||||||
|
define('CRAFT_ENVIRONMENT', getenv('ENVIRONMENT') ?: 'production');
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// Load and run Craft
|
||||||
|
/** @var craft\console\Application $app */
|
||||||
|
$app = require CRAFT_VENDOR_PATH . '/craftcms/cms/bootstrap/console.php';
|
||||||
|
$exitCode = $app->run();
|
||||||
|
exit($exitCode);
|
||||||
44
modules/Module.php
Normal file
44
modules/Module.php
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
namespace modules;
|
||||||
|
|
||||||
|
use Craft;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom module class.
|
||||||
|
*
|
||||||
|
* This class will be available throughout the system via:
|
||||||
|
* `Craft::$app->getModule('my-module')`.
|
||||||
|
*
|
||||||
|
* You can change its module ID ("my-module") to something else from
|
||||||
|
* config/app.php.
|
||||||
|
*
|
||||||
|
* If you want the module to get loaded on every request, uncomment this line
|
||||||
|
* in config/app.php:
|
||||||
|
*
|
||||||
|
* 'bootstrap' => ['my-module']
|
||||||
|
*
|
||||||
|
* Learn more about Yii module development in Yii's documentation:
|
||||||
|
* http://www.yiiframework.com/doc-2.0/guide-structure-modules.html
|
||||||
|
*/
|
||||||
|
class Module extends \yii\base\Module
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initializes the module.
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
// Set a @modules alias pointed to the modules/ directory
|
||||||
|
Craft::setAlias('@modules', __DIR__);
|
||||||
|
|
||||||
|
// Set the controllerNamespace based on whether this is a console or web request
|
||||||
|
if (Craft::$app->getRequest()->getIsConsoleRequest()) {
|
||||||
|
$this->controllerNamespace = 'modules\\console\\controllers';
|
||||||
|
} else {
|
||||||
|
$this->controllerNamespace = 'modules\\controllers';
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::init();
|
||||||
|
|
||||||
|
// Custom initialization code goes here...
|
||||||
|
}
|
||||||
|
}
|
||||||
20
nginx_app.conf
Normal file
20
nginx_app.conf
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
location / {
|
||||||
|
# try to serve file directly, fallback to rewrite
|
||||||
|
try_files $uri @rewriteapp;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @rewriteapp {
|
||||||
|
# rewrite all to index.php
|
||||||
|
rewrite ^(.*)$ /index.php?p=$1 last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/(index)\.php(/|$) {
|
||||||
|
fastcgi_pass heroku-fcgi;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param HTTPS on;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Global Config
|
||||||
|
client_max_body_size 20M;
|
||||||
5
storage/.gitignore
vendored
Normal file
5
storage/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
backups
|
||||||
|
composer-backups
|
||||||
|
config-backups
|
||||||
|
logs
|
||||||
|
runtime
|
||||||
0
templates/.gitkeep
Normal file
0
templates/.gitkeep
Normal file
191
templates/index.twig
Normal file
191
templates/index.twig
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Welcome to Craft CMS</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
|
||||||
|
<meta name="referrer" content="origin-when-cross-origin" />
|
||||||
|
<style>
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
font-size: 16px;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
height: 100%;
|
||||||
|
font-family: system-ui, BlinkMacSystemFont, -apple-system, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: hsl(212, 60%, 97%);
|
||||||
|
color: hsl(209, 18%, 30%);
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-top: 24px;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
line-height: 1.4em;
|
||||||
|
margin-bottom: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
line-height: 1.3em;
|
||||||
|
padding-left: 20px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li {
|
||||||
|
margin-bottom: 0.35em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0B69A3;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.go {
|
||||||
|
color: #0B69A3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.go:after {
|
||||||
|
padding-left: 4px;
|
||||||
|
content: '→';
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
color: hsl(211, 11%, 59%);
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
display: inline-block;
|
||||||
|
color: #EF4E4E;
|
||||||
|
padding: 0 2px;
|
||||||
|
background: hsl(212, 60%, 97%);
|
||||||
|
border-radius: 3px;
|
||||||
|
line-height: 1.3;
|
||||||
|
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#modal {
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside {
|
||||||
|
background: hsl(212, 60%, 97%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 35px;
|
||||||
|
padding-left: calc(35px + env(safe-area-inset-left));
|
||||||
|
padding-right: calc(35px + env(safe-area-inset-right));
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width:768px) {
|
||||||
|
#modal {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main {
|
||||||
|
width: 50%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside {
|
||||||
|
width: 50%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width:768px) and (min-height: 376px) {
|
||||||
|
body {
|
||||||
|
background-color: hsl(212, 50%, 93%);
|
||||||
|
background-image: url("{{ view.getAssetManager().getPublishedUrl('@app/web/assets/installer/dist', true, 'images/installer-bg.png') }}");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
display: flex;
|
||||||
|
padding: 24px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#modal {
|
||||||
|
height: 100%;
|
||||||
|
max-width: 800px;
|
||||||
|
max-height: 525px;
|
||||||
|
border-radius: 4px;
|
||||||
|
overflow: auto;
|
||||||
|
box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#aside {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body class="ltr">
|
||||||
|
<div id="container">
|
||||||
|
<div id="modal">
|
||||||
|
<div id="main">
|
||||||
|
<div class="content">
|
||||||
|
<h1>Welcome</h1>
|
||||||
|
<p>Thanks for installing Craft CMS!</p>
|
||||||
|
<p>You’re looking at the <code>index.twig</code> template file located in your
|
||||||
|
<code>templates/</code> folder. Once you’re ready to start building out your site’s
|
||||||
|
front end, you can replace this with something custom.</p>
|
||||||
|
<p>If you’re new to Craft CMS, take some time to check out the resources on the right
|
||||||
|
when you get a chance—especially
|
||||||
|
<a href="https://craftcms.com/discord" target="_blank">Discord</a>
|
||||||
|
and <a href="http://craftcms.stackexchange.com/" target="_blank">Stack Exchange</a>.
|
||||||
|
The Craft community is full of smart, friendly, and helpful people!</p>
|
||||||
|
<p><span class="go"><a href="{{ cpUrl('') }}">Go to your control panel</a></span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="aside">
|
||||||
|
<div class="content">
|
||||||
|
<h2>Popular Resources</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://craftcms.com/docs/getting-started-tutorial/" target="_blank">Tutorial</a><br><small>Learn the basics.</small></li>
|
||||||
|
<li><a href="https://craftcms.com/docs/3.x/" target="_blank">Documentation</a><br><small>Read the official docs.</small></li>
|
||||||
|
<li><a href="https://craftcms.com/guides" target="_blank">Knowledge Base</a><br><small>Find answers to common problems.</small></li>
|
||||||
|
<li><a href="https://twitter.com/hashtag/craftcms" target="_blank">#craftcms</a><br><small>See the latest tweets about Craft.</small></li>
|
||||||
|
<li><a href="https://craftcms.com/discord" target="_blank">Discord</a><br><small>Meet the community.</small></li>
|
||||||
|
<li><a href="http://craftcms.stackexchange.com/" target="_blank">Stack Exchange</a><br><small>Get help and help others.</small></li>
|
||||||
|
<li><a href="https://craftquest.io/" target="_blank">CraftQuest</a><br><small>Watch unlimited video lessons and courses.</small></li>
|
||||||
|
<li><a href="http://craftlinklist.com/" target="_blank">Craft Link List</a><br><small>Stay in-the-know.</small></li>
|
||||||
|
<li><a href="https://nystudio107.com/blog" target="_blank">nystudio107 Blog</a><br><small>Learn Craft and modern web development.</small></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
9
web/.htaccess
Normal file
9
web/.htaccess
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# Send would-be 404 requests to Craft
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
|
||||||
|
RewriteRule (.+) index.php?p=$1 [QSA,L]
|
||||||
|
</IfModule>
|
||||||
2
web/cpresources/.gitignore
vendored
Normal file
2
web/cpresources/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
26
web/index.php
Normal file
26
web/index.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Craft web bootstrap file
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Define path constants
|
||||||
|
define('CRAFT_BASE_PATH', dirname(__DIR__));
|
||||||
|
define('CRAFT_VENDOR_PATH', CRAFT_BASE_PATH . '/vendor');
|
||||||
|
|
||||||
|
// Load Composer's autoloader
|
||||||
|
require_once CRAFT_VENDOR_PATH . '/autoload.php';
|
||||||
|
|
||||||
|
// Load dotenv?
|
||||||
|
if (class_exists('Dotenv\Dotenv') && file_exists(CRAFT_BASE_PATH . '/.env')) {
|
||||||
|
Dotenv\Dotenv::create(CRAFT_BASE_PATH)->load();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define additional PHP constants
|
||||||
|
// (see https://craftcms.com/docs/3.x/config/#php-constants)
|
||||||
|
define('CRAFT_ENVIRONMENT', getenv('ENVIRONMENT') ?: 'production');
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// Load and run Craft
|
||||||
|
/** @var craft\web\Application $app */
|
||||||
|
$app = require CRAFT_VENDOR_PATH . '/craftcms/cms/bootstrap/web.php';
|
||||||
|
$app->run();
|
||||||
27
web/web.config
Normal file
27
web/web.config
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<system.webServer>
|
||||||
|
<rewrite>
|
||||||
|
<rules>
|
||||||
|
<rule name="Rewrite" stopProcessing="true">
|
||||||
|
<match url="(.+)" ignoreCase="false" />
|
||||||
|
<conditions logicalGrouping="MatchAll">
|
||||||
|
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||||
|
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
|
||||||
|
<add input="{URL}" pattern="^/(favicon\.ico|apple-touch-icon.*\.png)$" negate="true" />
|
||||||
|
</conditions>
|
||||||
|
<action type="Rewrite" url="index.php?p={R:1}" appendQueryString="true" />
|
||||||
|
</rule>
|
||||||
|
</rules>
|
||||||
|
</rewrite>
|
||||||
|
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
|
||||||
|
<defaultDocument>
|
||||||
|
<files>
|
||||||
|
<clear />
|
||||||
|
<add value="index.php" />
|
||||||
|
<add value="index.htm" />
|
||||||
|
<add value="index.html" />
|
||||||
|
</files>
|
||||||
|
</defaultDocument>
|
||||||
|
</system.webServer>
|
||||||
|
</configuration>
|
||||||
Reference in New Issue
Block a user