Skip to content
Snippets Groups Projects
Commit 3f8192f4 authored by Giovannoni Laurent's avatar Giovannoni Laurent
Browse files

add: new install

parent b7461bc9
No related branches found
No related tags found
No related merge requests found
Showing
with 909 additions and 0 deletions
<?php
//Loads the required class
try {
require_once '../core/class/class_functions.php';
require_once '../core/class/class_db.php';
require_once 'class/Class_Merge.php';
} catch (Exception $e) {
echo $e->getMessage() . ' // ';
}
class Install extends functions
{
private $lang = 'en';
private $docservers = array(
array('FASTHD_AI', 'ai'),
array('FASTHD_MAN', 'manual'),
array('OAIS_MAIN_1', 'OAIS_main'),
array('OAIS_SAFE_1', 'OAIS_safe'),
array('OFFLINE_1', 'offline'),
array('TEMPLATES', 'templates')
);
function __construct()
{
//load session
session_start();
//merge css & js
$Class_Merge = new Merge;
//load lang
$this->loadLang();
}
public function getLangList()
{
$langList = array();
foreach(glob('lang/*.php') as $fileLangPath) {
$langFile = str_replace('.php', '', end(explode('/', $fileLangPath)));
array_push($langList, $langFile);
}
return $langList;
}
private function loadLang()
{
if (!isset($_SESSION['lang'])) {
$this->lang = 'en';
}
$this->lang = $_SESSION['lang'];
$langList = $this->getLangList();
if (!in_array($this->lang, $langList)) {
$this->lang = 'en';
}
require_once('lang/' . $this->lang . '.php');
}
public function getActualLang()
{
return $this->lang;
}
public function checkPrerequisites(
$is = false,
$optional = false
)
{
if ($is) {
return '<img src="img/green_light.png" width="20px"/>';
exit;
}
if (!$optional) {
return '<img src="img/red_light.png" width="20px"/>';
exit;
}
return '<img src="img/orange_light.png" width="20px"/>';
}
public function checkAllNeededPrerequisites()
{
if (!$this->isPhpVersion()) {
return false;
}
if (!$this->isPhpRequirements('pgsql')) {
return false;
}
if (!$this->isPhpRequirements('gd')) {
return false;
}
if (!$this->isPearRequirements('System.php')) {
return false;
}
if (!$this->isPearRequirements('MIME/Type.php')) {
return false;
}
if (!$this->isPearRequirements('Maarch_CLITools/FileHandler.php')) {
return false;
}
if (!$this->isIniErrorRepportingRequirements()) {
return false;
}
if (!$this->isIniDisplayErrorRequirements()) {
return false;
}
if (!$this->isIniShortOpenTagRequirements()) {
return false;
}
if (!$this->isIniMagicQuotesGpcRequirements()) {
return false;
}
return true;
}
public function isPhpVersion()
{
if (version_compare(PHP_VERSION, '5.3') < 0) {
return false;
exit;
}
return true;
}
public function isPhpRequirements($phpLibrary)
{
if (!@extension_loaded($phpLibrary)) {
return false;
exit;
}
return true;
}
public function isPearRequirements($pearLibrary)
{
$includePath = array();
$includePath = explode(';', ini_get('include_path'));
for ($i=0;$i<count($includePath);$i++) {
if (file_exists($includePath[$i] . '/' . $pearLibrary)) {
return true;
exit;
}
}
$includePath = explode(':', ini_get('include_path'));
for ($i=0;$i<count($includePath);$i++) {
if (file_exists($includePath[$i] . '/' . $pearLibrary)) {
return true;
exit;
}
}
return false;
}
public function isIniErrorRepportingRequirements()
{
if (ini_get('error_reporting') <> 22519) {
return false;
} else {
return true;
}
}
public function isIniDisplayErrorRequirements()
{
if (strtoupper(ini_get('display_errors')) == 'OFF') {
return false;
} else {
return true;
}
}
public function isIniShortOpenTagRequirements()
{
if (strtoupper(ini_get('short_open_tag')) == 'OFF') {
return false;
} else {
return true;
}
}
public function isIniMagicQuotesGpcRequirements()
{
if (strtoupper(ini_get('magic_quotes_gpc')) == 'ON') {
return false;
} else {
return true;
}
}
}
<?php
/*
* Copyright 2008-2012 Maarch
*
* This file is part of Maarch Framework.
*
* Maarch Framework is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Maarch Framework is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @brief class of install tools
*
* @file
* @author Laurent Giovannoni
* @date $date$
* @version $Revision$
* @ingroup install
*/
//Loads the required class
try {
require_once '../core/class/class_functions.php';
require_once '../core/class/class_db.php';
} catch (Exception $e) {
echo $e->getMessage() . ' // ';
}
class Install extends functions
{
private $lang;
private $docservers = array(
array('FASTHD_AI', 'ai'),
array('FASTHD_MAN', 'manual'),
array('OAIS_MAIN_1', 'OAIS_main'),
array('OAIS_SAFE_1', 'OAIS_safe'),
array('OFFLINE_1', 'offline'),
array('TEMPLATES', 'templates')
);
/**
* get languages available
* @return array of languages
*/
public function getlanguages()
{
$languages = array();
$classScan = dir('install/static/lang/');
while (($filescan = $classScan->read()) != false) {
if ($filescan == '.' || $filescan == '..' || $filescan == '.svn') {
continue;
} else {
array_push($languages, str_replace('.php', '', $filescan));
}
}
return $languages;
}
/**
* load the lang constant file
* @param $lang lang
* @return nothing
*/
public function loadLang($lang)
{
$this->lang = $lang;
include_once('install/static/lang/' . $lang . '.php');
}
/**
* test if the php version is alright
* @return boolean
*/
public function isPhpVersion()
{
if (version_compare(PHP_VERSION, '5.3') < 0) {
return false;
} else {
return true;
}
}
/**
* test if php libray loaded
* @param $phpLibrary string name of the library
* @return boolean
*/
public function isPhpRequirements($phpLibrary)
{
if (!@extension_loaded($phpLibrary)) {
return false;
} else {
return true;
}
}
/**
* test if pear library asked is installed
* @param $pearLibrary string the library logical path
* @return boolean
*/
public function isPearRequirements($pearLibrary)
{
$includePath = array();
$includePath = explode(';', ini_get('include_path'));
for ($i=0;$i<count($includePath);$i++) {
if (file_exists($includePath[$i] . '/' . $pearLibrary)) {
return true;
}
}
$includePath = explode(':', ini_get('include_path'));
for ($i=0;$i<count($includePath);$i++) {
if (file_exists($includePath[$i] . '/' . $pearLibrary)) {
return true;
}
}
return false;
}
/**
* test if php ini error var correctly set
* @return boolean
*/
public function isIniErrorRepportingRequirements()
{
if (ini_get('error_reporting') <> 22519) {
return false;
} else {
return true;
}
}
/**
* test if php ini error var correctly set
* @return boolean
*/
public function isIniDisplayErrorRequirements()
{
if (strtoupper(ini_get('display_errors')) == 'OFF') {
return false;
} else {
return true;
}
}
/**
* test if php ini error var correctly set
* @return boolean
*/
public function isIniShortOpenTagRequirements()
{
if (strtoupper(ini_get('short_open_tag')) == 'OFF') {
return false;
} else {
return true;
}
}
/**
* test if php ini error var correctly set
* @return boolean
*/
public function isIniMagicQuotesGpcRequirements()
{
if (strtoupper(ini_get('magic_quotes_gpc')) == 'ON') {
return false;
} else {
return true;
}
}
/**
* test if docserver path is read/write
* @param $docserverPath string path to the docserver
* @return boolean or error message
*/
public function checkDocserverRoot($docserverPath)
{
if (!is_dir($docserverPath)) {
$error .= _PATH_OF_DOCSERVER_UNAPPROACHABLE;
} else {
if (!is_writable($docserverPath)
|| !is_readable($docserverPath)
) {
$error .= _THE_DOCSERVER_DOES_NOT_HAVE_THE_ADEQUATE_RIGHTS;
}
}
if ($error <> '') {
return $error;
} else {
return true;
}
}
/**
* create the docservers
* @param $docserverPath string path to the docserver
* @return boolean
*/
public function createDocservers($docserverPath)
{
for ($i=0;$i<count($this->docservers);$i++) {
if (!is_dir(
$docserverPath . DIRECTORY_SEPARATOR
. $this->docservers[$i][1])
) {
if (!mkdir(
$docserverPath . DIRECTORY_SEPARATOR
. $this->docservers[$i][1])
) {
return false;
}
}
}
return true;
}
/**
* update the docservers on DB
* @param $docserverPath string path to the docserver
* @return nothing
*/
public function updateDocserversDB($docserverPath)
{
$db = new dbquery();
$db->connect();
for ($i=0;$i<count($this->docservers);$i++) {
$query = "update docservers set path_template = '"
. $db->protect_string_db($docserverPath . DIRECTORY_SEPARATOR
. $this->docservers[$i][1] . DIRECTORY_SEPARATOR)
. "' where docserver_id = '" . $this->docservers[$i][0] . "'";
$db->query($query);
}
}
/**
* create the docservers
* @param $docserverPath string path to the docserver
* @return boolean
*/
public function checkDatabaseParameters(
$databaseserver,
$databaseserverport,
$databaseuser,
$databasepassword,
$databasename,
$databasetype
)
{
$_SESSION['config']['databaseserver'] = $databaseserver;
$_SESSION['config']['databaseserverport'] = $databaseserverport;
$_SESSION['config']['databaseuser'] = $databaseuser;
$_SESSION['config']['databasepassword'] = $databasepassword;
$_SESSION['config']['databasename'] = $databasename;
$_SESSION['config']['databasetype'] = $databasetype;
$db = new dbquery();
$db->connect();
}
}
<?php
class Merge
{
function __construct()
{
//merge the css
$this->mergeCss();
//merge the js
$this->mergeJs();
}
private function mergeCss()
{
if ($this->needToMergeCss()) {
$dirStyle = 'css/';
$styleDirectory = opendir($dirStyle);
$mergedCss = '@charset "UTF-8";'."\n\n";
//atProperty first
$cssLines = file(realpath($dirStyle.'atProperty.css'));
$mergedCss .= '/* atProperty.css */'."\n";
for ($i=0; $i<count($cssLines); $i++) {
$mergedCss .= $cssLines[$i];
}
$mergedCss .= "\n\n";
while($styleFile = @readdir($styleDirectory)) {
if ( substr($styleFile, 0, 1) != '.'
&& substr($styleFile, -4) == '.css'
&& $styleFile != 'merged_css.css'
&& $styleFile != 'atProperty.css'
) {
$cssLines = file(realpath($dirStyle.$styleFile));
$mergedCss .= '/* '.$styleFile.' */'."\n";
for ($i=0; $i<count($cssLines); $i++) {
$mergedCss .= $cssLines[$i];
}
$mergedCss .= "\n\n";
}
}
closedir($styleDirectory);
/*
$interdit = array(
"\n",
"\r",
"\t"
);
$autorise = array('',
'',
''
);
$mergedCss = str_replace(
$interdit,
$autorise,
$mergedCss
);
*/
if (file_exists($dirStyle.'merged_css.css')) {
unlink($dirStyle.'merged_css.css');
}
$merged_style = fopen($dirStyle.'merged_css.css', "a+");
fwrite ($merged_style, $mergedCss);
fclose ($merged_style);
}
}
private function mergeJs()
{
if ($this->needToMergeJs()) {
$dirJavascript = 'js/';
$javascriptDirectory = opendir($dirJavascript);
$mergedJavascript = '// JavaScript Document'."\n\n";
//jquery first
$javascriptLines = file(realpath($dirJavascript.'0_jQuery.js'));
$mergedJavascript .= '/* 0_jQuery.js */'."\n";
for ($i=0; $i<count($javascriptLines); $i++) {
$mergedJavascript .= $javascriptLines[$i];
}
$mergedJavascript .= "\n\n";
while($javascriptFile = @readdir($javascriptDirectory)) {
if ( substr($javascriptFile, 0, 1) != '.'
&& substr($javascriptFile, -3) == '.js'
&& $javascriptFile != 'merged_js.js'
&& $javascriptFile != '0_jQuery.js'
) {
$javascriptLines = file(realpath($dirJavascript.$javascriptFile));
$mergedJavascript .= '/* '.$javascriptFile.' */'."\n";
for ($i=0; $i<count($javascriptLines); $i++) {
$mergedJavascript .= $javascriptLines[$i];
}
$mergedJavascript .= "\n\n";
}
}
closedir($javascriptDirectory);
if (file_exists($dirJavascript.'merged_js.js')) {
unlink($dirJavascript.'merged_js.js');
}
$merged_javascript = fopen($dirJavascript.'merged_js.js', "a+");
fwrite ($merged_javascript, $mergedJavascript);
fclose ($merged_javascript);
}
}
private function needToMergeCss()
{
$write = false;
$dirStyle = 'css/';
$dateModMerged = '1';
if (file_exists($dirStyle.'merged_css.css')) {
$dateModMerged = filemtime($dirStyle.'merged_css.css');
}
$styleDirectory = opendir($dirStyle);
while($styleFile = @readdir($styleDirectory)) {
if ( substr($styleFile, 0, 1) != '.'
&& substr($styleFile, -4) == '.css'
&& $styleFile != 'merged_css.css'
) {
$dateMod = filemtime(realpath($dirStyle.$styleFile));
if ($dateMod > $dateModMerged) {
$write = true;
}
}
}
closedir($styleDirectory);
return $write;
}
private function needToMergeJs()
{
$write = false;
$dirJavascript = 'js/';
$dateModMerged = '1';
if (file_exists($dirJavascript.'merged_js.js')) {
$dateModMerged = filemtime($dirJavascript.'merged_js.js');
}
$javascriptDirectory = opendir($dirJavascript);
while($javascriptFile = @readdir($javascriptDirectory)) {
if ( substr($javascriptFile, 0, 1) != '.'
&& substr($javascriptFile, -3) == '.js'
&& $javascriptFile != 'merged_js.js'
&& $javascriptFile != 'jQuery_dev.js'
) {
$dateMod = filemtime(realpath($dirJavascript.$javascriptFile));
if ($dateMod > $dateModMerged) {
$write = true;
}
}
}
closedir($javascriptDirectory);
return $write;
}
}
<?php
//CONTROLLER
//TITLE
$shortTitle = _DATABASE;
$longTitle = _DATABASE;
//VIEW
$view = 'database';
<?php
//CONTROLLER
//TITLE
$shortTitle = _DOCSERVERS;
$longTitle = _DOCSERVERS;
//VIEW
$view = 'docservers';
<?php
//CONTROLLER
$error = $_REQUEST['error'];
switch ($error) {
case 'noStep':
$infosError = _NO_STEP;
break;
case 'badStep':
$infosError = _BAD_STEP;
break;
default:
$infosError = _INSTALL_ISSUE . '. ' . _TRY_AGAIN . '.';
}
//TITLE
$shortTitle = _ERROR;
$longTitle = _ERROR;
//VIEW
$view = 'error';
<?php
//CONTROLLER
//TITLES
$shortTitle = _LANGUAGE;
$longTitle = _CHOOSE_LANGUAGE;
//ALLOWED LANGUAGES
$listLang = $Class_Install->getLangList();
//VIEW
$view = 'language';
<?php
//CONTROLLER
//TITLE
$shortTitle = _LICENCE;
$longTitle = _LICENCE;
//VIEW
$view = 'licence';
<?php
//CONTROLLER
//TITLE
$shortTitle = _PASSWORD;
$longTitle = _CHOOSE_ADMIN_PASSWORD;
//VIEW
$view = 'password';
<?php
//CONTROLLER
//TITLE
$shortTitle = _PREREQUISITES;
$longTitle = _PREREQUISITES;
//CAN CONTINUE
$canContinue = $Class_Install->checkAllNeededPrerequisites();
//VIEW
$view = 'prerequisites';
<?php
//CONTROLLER
//TITLE
$shortTitle = _RESUME;
$longTitle = _RESUME;
//VIEW
$view = 'resume';
<?php
//CONTROLLER
//TITLE
$shortTitle = _WELCOME;
$longTitle = _WELCOME;
//VIEW
$view = 'welcome';
@font-face {
font-family: 'Arizonia';
font-style: normal;
font-weight: 400;
src: local('Arizonia'), local('Arizonia-Regular'), url('fonts/Arizona.woff') format('woff');
}
@font-face {
font-family: 'Contrail One';
font-style: normal;
font-weight: 400;
src: local('Arizonia'), local('Arizonia-Regular'), url('fonts/contrailOne.woff') format('woff');
}
@font-face {
font-family: 'Sonsie One';
font-style: normal;
font-weight: 400;
src: local('Arizonia'), local('Arizonia-Regular'), url('fonts/sonsieOne.woff') format('woff');
}
\ No newline at end of file
#buttons #next a {
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #64b651), color-stop(100%, #4f953f));
background-image: -webkit-linear-gradient(top, #64b651, #4f953f);
background-image: -moz-linear-gradient(top, #64b651, #4f953f);
background-image: -o-linear-gradient(top, #64b651, #4f953f);
background-image: -ms-linear-gradient(top, #64b651, #4f953f);
background-image: linear-gradient(top, #64b651, #4f953f);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
-webkit-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
-o-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
padding: 10px 20px;
padding-right: 40px;
}
#buttons #next a:active {
top: 4px;
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #64b651), color-stop(100%, #4f953f));
background-image: -webkit-linear-gradient(bottom, #64b651, #4f953f);
background-image: -moz-linear-gradient(bottom, #64b651, #4f953f);
background-image: -o-linear-gradient(bottom, #64b651, #4f953f);
background-image: -ms-linear-gradient(bottom, #64b651, #4f953f);
background-image: linear-gradient(bottom, #64b651, #4f953f);
-moz-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
-webkit-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
-o-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
}
#buttons #next a:before {
background: url('../img/rightArrow.png') center center no-repeat #4f953f;
content: "";
width: 20px;
height: 20px;
display: block;
position: absolute;
top: 50%;
margin-top: -10px;
right: 10px;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
-o-border-radius: 50%;
-ms-border-radius: 50%;
-khtml-border-radius: 50%;
border-radius: 50%;
-moz-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
-webkit-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
-o-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
}
#buttons #next a:active:before {
margin-top: -14px;
-moz-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
-webkit-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
-o-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
}
#buttons #previous a {
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #64b651), color-stop(100%, #4f953f));
background-image: -webkit-linear-gradient(top, #64b651, #4f953f);
background-image: -moz-linear-gradient(top, #64b651, #4f953f);
background-image: -o-linear-gradient(top, #64b651, #4f953f);
background-image: -ms-linear-gradient(top, #64b651, #4f953f);
background-image: linear-gradient(top, #64b651, #4f953f);
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
-webkit-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
-o-box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
box-shadow: inset 0px 1px 0px #4f953f, 0px 5px 0px 0px #325f28, 0px 10px 5px #999999;
padding: 10px 20px;
padding-right: 40px;
}
#buttons #previous a:active {
top: 4px;
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #64b651), color-stop(100%, #4f953f));
background-image: -webkit-linear-gradient(bottom, #64b651, #4f953f);
background-image: -moz-linear-gradient(bottom, #64b651, #4f953f);
background-image: -o-linear-gradient(bottom, #64b651, #4f953f);
background-image: -ms-linear-gradient(bottom, #64b651, #4f953f);
background-image: linear-gradient(bottom, #64b651, #4f953f);
-moz-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
-webkit-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
-o-box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
box-shadow: inset 0px 1px 0px #4f953f, 0px 1px 0px 0px #325f28, 0px 3px 5px #999999;
}
#buttons #previous a:before {
background: url('../img/leftArrow.png') center center no-repeat #4f953f;
content: "";
width: 20px;
height: 20px;
display: block;
position: absolute;
top: 50%;
margin-top: -10px;
right: 10px;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
-o-border-radius: 50%;
-ms-border-radius: 50%;
-khtml-border-radius: 50%;
border-radius: 50%;
-moz-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
-webkit-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
-o-box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
box-shadow: inset 0px 1px 0px #162a11, 0px 1px 0px #84c575;
}
#buttons #previous a:active:before {
margin-top: -14px;
-moz-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
-webkit-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
-o-box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
box-shadow: inset 0px 1px 0px #84c575, 0px 4px 0px 0px #1f3c19, 0px 4px 5px #294d21;
}
File added
File added
File added
#fullWrapper #footer {
height: 125px;
width: 910px;
text-align: left;
}
\ No newline at end of file
#fullWrapper {
width: 960px;
box-shadow: 1px 1px 12px rgba(75, 75, 75, 1);
background-color: rgba(255, 255, 255, 1);
}
.line {
height: 1px;
width: 910px;
background-color: rgba(0,0,0,0.6);
}
\ No newline at end of file
#fullWrapper #header {
height: 120px;
width: 910px;
text-align: left;
}
#fullWrapper #header .headerName {
position: relative;
top: 18px;
left: 0px;
float: left;
}
#fullWrapper #header .headerName h2 {
font-size: 70px;
font-family: 'Contrail One';
color: rgba(81, 112, 144, 1);
}
#fullWrapper #header .logo {
position: relative;
top: 10px;
right: 0px;
float: right;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment