Start project
This commit is contained in:
parent
2d98c68efd
commit
1897f4984b
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
vendor
|
||||
settings.php
|
||||
nbproject/private
|
||||
*.sync-conflict*
|
||||
*.sync-conflict*
|
||||
*.bak
|
68
README.md
68
README.md
@ -1,66 +1,4 @@
|
||||
Business App Template
|
||||
=====================
|
||||
SiteWriter
|
||||
==========
|
||||
|
||||
This is an empty (but fully functional) PHP application. It is designed to
|
||||
integrate with AccountHub, an account management web interface. AccountHub manages
|
||||
user credentials and account data, and is accessed by this app via [a simple API](http://docs.netsyms.com/docs/AccountHub/API%20Documentation/).
|
||||
|
||||
[](https://www.codacy.com/app/Netsyms/BusinessAppTemplate?utm_source=github.com&utm_medium=referral&utm_content=Netsyms/BusinessAppTemplate&utm_campaign=Badge_Grade)
|
||||
|
||||
Program Structure
|
||||
-----------------
|
||||
|
||||
### Folders
|
||||
* lang
|
||||
Translations and alert messages.
|
||||
The language file that is loaded depends on the value of `LANGUAGE` in `settings.php`.
|
||||
Translate the values (but not the keys) in `en_us.php` into other languages and save in appropriately named files to add languages.
|
||||
* lib
|
||||
A good place to put helper functions that you don't want "in the way".
|
||||
* pages
|
||||
What it looks like. If you go into `pages.php` and define a page with the name `foo`, there should be a `foo.php` in here.
|
||||
The app checks before loading, so it will give a friendly 404 error if it doesn't find your page.
|
||||
Woe to you if you delete `home.php` or `404.php`, as those are assumed to exist for fallback behavior.
|
||||
* static
|
||||
CSS, JS, fonts, images...
|
||||
* vendor
|
||||
If you don't know what this is about, or you don't have it, you need to read up on Composer. Right now.
|
||||
|
||||
### Files
|
||||
* settings.template.php
|
||||
App configuration. Copy to `settings.php` and customize. Documented with inline comments.
|
||||
* required.php
|
||||
The "duct tape" that holds the app together. Use `require_once __DIR__."/required.php"` at the top of every file.
|
||||
It loads Composer dependencies, app settings, language data, and creates `$database` for accessing the database.
|
||||
It also has some utility functions, including `dieifnotloggedin()`, `is_empty($var)`, and `lang('key')`.
|
||||
Read through it to see what those functions do.
|
||||
* action.php
|
||||
A good place to post forms to. By default it only handles logging out, but is easily expanded.
|
||||
* api.php
|
||||
Similar to action.php, but designed for user/pass authenticated JSON responses.
|
||||
* index.php
|
||||
Login page and handler. Hands off to `app.php` after authenticating user.
|
||||
It includes 2fa support, by the way.
|
||||
* app.php
|
||||
Main app page after login. Handles loading app pages and 404 errors.
|
||||
Redirects to `index.php` if the user is not logged in.
|
||||
Note: to show an alert message (success, error, whatever), set the GET argument `msg` to a message ID from `lang/messages.php`.
|
||||
* pages.php
|
||||
Define app pages/screens in an array. The page ID/array key is assumed to exist as a file `pages/{key}.php`, or it will 404.
|
||||
__Optional parameters:__
|
||||
`'navbar' => true` will show the page as a button in the app menu bar.
|
||||
`'icon' => '...'` will show an icon from FontAwesome in the menu bar. Setting this to `home` will show the icon `fa-home`.
|
||||
`'styles' => ["file.css"]` will inject the listed CSS files into the page header (after all other CSS, like Bootstrap).
|
||||
`'scripts' => ["file.js"]` will inject the listed JavaScript files into the page footer (after jQuery and other builtin scripts).
|
||||
* lang/messages.php
|
||||
Array of alert messages.
|
||||
`"string"` is the language string for the message, `"type"` is one of `success`, `info`, `warning`, or `danger` (i.e. Bootstrap alert classes).
|
||||
Changing the type changes the icon and color of the alert box.
|
||||
*lang/en_us.php
|
||||
Language data for US English.
|
||||
*lib/login.php
|
||||
Functions for logging in users and stuff like that. Most functions transparently makes requests to the AccountHub API and return the results.
|
||||
*lib/userinfo.php
|
||||
Functions for getting user data, like real names and managed employees.
|
||||
*static/css/app.css
|
||||
Custom styles for the app. See the comments inside for instructions on theming the app.
|
||||
A public website builder.
|
2
app.php
2
app.php
@ -108,7 +108,7 @@ END;
|
||||
// For mobile app
|
||||
echo "<script nonce=\"$SECURE_NONCE\">var navbar_breakpoint = \"$navbar_breakpoint\";</script>"
|
||||
?>
|
||||
<nav class="navbar navbar-expand-<?php echo $navbar_breakpoint; ?> navbar-dark bg-blue fixed-top">
|
||||
<nav class="navbar navbar-expand-<?php echo $navbar_breakpoint; ?> navbar-light bg-light-blue fixed-top">
|
||||
<button class="navbar-toggler my-0 py-0" type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<!--<i class="fas fa-bars"></i>-->
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
|
28
composer.lock
generated
28
composer.lock
generated
@ -4,21 +4,21 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "577921e9d14ff39571692f88476151ee",
|
||||
"content-hash": "1c8b61c5d506ae016285b99b20040cf0",
|
||||
"hash": "5c7439c6e041764f2f6b0270a95ab3ae",
|
||||
"content-hash": "e4e700119f47d2f68b0ed82abaf8c5c6",
|
||||
"packages": [
|
||||
{
|
||||
"name": "catfan/medoo",
|
||||
"version": "v1.5.3",
|
||||
"version": "v1.5.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/catfan/Medoo.git",
|
||||
"reference": "1aa25a4001e0cfb739ba2996f00f4a3d2a7fdf07"
|
||||
"reference": "f77a93f72864e892c99d1033b8733e5da8fb0b3b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/catfan/Medoo/zipball/1aa25a4001e0cfb739ba2996f00f4a3d2a7fdf07",
|
||||
"reference": "1aa25a4001e0cfb739ba2996f00f4a3d2a7fdf07",
|
||||
"url": "https://api.github.com/repos/catfan/Medoo/zipball/f77a93f72864e892c99d1033b8733e5da8fb0b3b",
|
||||
"reference": "f77a93f72864e892c99d1033b8733e5da8fb0b3b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -64,20 +64,20 @@
|
||||
"sql",
|
||||
"sqlite"
|
||||
],
|
||||
"time": "2017-12-25 17:02:41"
|
||||
"time": "2018-03-26 17:54:24"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.0",
|
||||
"version": "6.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
||||
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -87,7 +87,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.0 || ^5.0",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
@ -96,7 +96,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.2-dev"
|
||||
"dev-master": "6.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -129,7 +129,7 @@
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2017-06-22 18:50:49"
|
||||
"time": "2018-03-26 16:33:04"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
|
BIN
database.mwb
Normal file
BIN
database.mwb
Normal file
Binary file not shown.
@ -3,7 +3,7 @@
|
||||
<type>org.netbeans.modules.php.project</type>
|
||||
<configuration>
|
||||
<data xmlns="http://www.netbeans.org/ns/php-project/1">
|
||||
<name>BusinessAppTemplate</name>
|
||||
<name>SiteWriter</name>
|
||||
</data>
|
||||
</configuration>
|
||||
</project>
|
||||
|
@ -11,14 +11,14 @@ define("DEBUG", false);
|
||||
// Database connection settings
|
||||
// See http://medoo.in/api/new for info
|
||||
define("DB_TYPE", "mysql");
|
||||
define("DB_NAME", "app");
|
||||
define("DB_NAME", "sitewriter");
|
||||
define("DB_SERVER", "localhost");
|
||||
define("DB_USER", "app");
|
||||
define("DB_USER", "sitewriter");
|
||||
define("DB_PASS", "");
|
||||
define("DB_CHARSET", "utf8");
|
||||
|
||||
// Name of the app.
|
||||
define("SITE_TITLE", "Web App Template");
|
||||
define("SITE_TITLE", "SiteWriter");
|
||||
|
||||
|
||||
// URL of the AccountHub API endpoint
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 17 KiB |
@ -1,6 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
@ -11,38 +9,36 @@
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 512.00001 512.00001"
|
||||
viewBox="0 0 511.99999 511.99999"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo.svg"
|
||||
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/WebAppTemplate/static/img/logo.png"
|
||||
inkscape:export-filename="/home/skylar/Documents/Projects/Assets/SiteWriter/logo_512.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="-493.3276 : 245.89848 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="464.45088 : 245.89848 : 1"
|
||||
inkscape:persp3d-origin="-14.438371 : 160.56515 : 1"
|
||||
id="perspective4236" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.49497475"
|
||||
inkscape:cx="-135.9681"
|
||||
inkscape:cy="352.66131"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="1440"
|
||||
inkscape:window-height="842"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
units="px" />
|
||||
inkscape:zoom="0.65186406"
|
||||
inkscape:cx="-263.8452"
|
||||
inkscape:cy="164.6375"
|
||||
inkscape:window-x="1024"
|
||||
inkscape:window-y="156"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
@ -51,28 +47,58 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804"
|
||||
id="rect4726-3"
|
||||
width="512"
|
||||
height="512"
|
||||
x="0"
|
||||
y="0"
|
||||
rx="50"
|
||||
ry="50" />
|
||||
<path
|
||||
id="rect4149"
|
||||
d="m 151.84815,105.55999 c 0,0 208.08221,4e-4 208.08221,4e-4 8.87969,2e-5 17.47765,5.42434 19.32647,12.34724 0,0 68.50606,256.52161 68.50606,256.52161 4.65095,17.41553 -3.3789,32.03897 -18.20921,32.01073 0,0 -347.207046,-0.66126 -347.207046,-0.66126 -14.762494,-0.0281 -22.747362,-14.64569 -18.112131,-32.00219 0,0 68.337707,-255.88862 68.337707,-255.88862 1.84592,-6.91197 10.42061,-12.32792 19.27594,-12.32791 0,0 0,0 0,0"
|
||||
style="opacity:1;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-540.36216)">
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.74509804"
|
||||
id="rect4726"
|
||||
width="512"
|
||||
height="512"
|
||||
x="0"
|
||||
y="540.36218"
|
||||
rx="50"
|
||||
ry="50" />
|
||||
<path
|
||||
id="path4348"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:9.87128067;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 132.93564,682.51771 213.96788,-43.14304 0,313.97496 -213.96788,-37.9643 z m 213.96788,-43.14304 0,313.97496 32.16084,-45.18373 0,-217.44396 z m -213.96788,43.14304 213.96788,-43.14304 32.16084,51.34727 -167.21823,22.47784 z m 78.91049,30.68207 167.21823,-22.47784 0,217.44396 -167.21823,-19.77968 z m -78.91049,-30.68207 0,232.86762 78.91049,-26.99911 0,-175.18644 z m 0,232.86762 213.96788,37.9643 32.16084,-45.18373 -167.21823,-19.77968 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
transform="matrix(5.9992735,-11.249026,11.249026,5.999273,-1609.4403,-1737.4273)"
|
||||
id="g2030"
|
||||
style="display:inline;stroke-width:1.91200209" />
|
||||
<rect
|
||||
ry="11.220414"
|
||||
rx="11.220414"
|
||||
y="237.21503"
|
||||
x="150.21944"
|
||||
height="18.934093"
|
||||
width="211.56111"
|
||||
id="rect5279"
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5281"
|
||||
width="245.31049"
|
||||
height="21.954561"
|
||||
x="133.34476"
|
||||
y="287.24475"
|
||||
rx="13.010355"
|
||||
ry="13.010355" />
|
||||
<rect
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect5277"
|
||||
width="188.55019"
|
||||
height="16.874683"
|
||||
x="161.7249"
|
||||
y="189.24477"
|
||||
rx="10"
|
||||
ry="10" />
|
||||
<path
|
||||
style="opacity:1;fill:#3f51b5;fill-opacity:1;stroke:#ffffff;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 413.40083,100.4255 c -6.25994,-3.614167 -12.82305,-3.883777 -14.71576,-0.605517 L 267.15452,327.63761 c -0.1189,0.20593 -0.21483,0.42009 -0.29174,0.64289 -2.61136,2.10628 3.51508,29.26281 7.21558,31.3993 3.70042,2.13644 30.28348,-6.13458 30.80284,-9.44936 0.1545,-0.17801 0.28948,-0.3696 0.40838,-0.57554 L 436.82014,121.83727 c 1.8927,-3.27826 -1.62235,-8.82729 -7.88226,-12.44145 l -15.53706,-8.97032 z"
|
||||
id="rect4549"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 4.1 KiB |
Loading…
x
Reference in New Issue
Block a user