Initial commit, Ecard system build with CodeIgniter PHP framework

Currently working
- Basic structure
- Basic caching and gzip compression for speed
- Admin authentication
This commit is contained in:
Ismo Vuorinen
2013-07-11 07:42:03 +03:00
committed by Ismo Vuorinen
parent 345d8ea65a
commit c10c9e3131
206 changed files with 53864 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<footer class="row">
<div class="large-12 columns">
<div class="panel">
<a href="<?php echo site_url("yllapito"); ?>" class="loginlink">&pi;</a>
&copy; Ystäväkylä-hanke, Ekokumppanit Oy, Ismo Vuorinen 2013
</div>
</div>
</footer>
<script src="http://cdnjs.cloudflare.com/ajax/libs/foundation/4.1.6/js/vendor/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/foundation/4.1.6/js/vendor/custom.modernizr.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/foundation/4.1.6/js/foundation.min.js"></script>
<script src="http://rvera.github.io/image-picker/image-picker/image-picker.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/localization/messages_fi.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/css/base/jquery.ui.all.min.css">
<script src="<?php echo base_url("/assets/scripts.js"); ?>"></script>
<!-- {elapsed_time} -->
</body>
</html>

View File

@@ -0,0 +1,139 @@
<?php
if (empty($page_classes)) {
$page_classes = array('page_not_set');
}
if (empty($page_title)) {
$page_title = array('Ystäväkylä');
}
?><!DOCTYPE html>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="fi"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="fi"> <!--<![endif]-->
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" href="<?php echo site_url('/favicon.ico'); ?>">
<title><?php echo implode(" &raquo; ", $page_title); ?></title>
<?php
assets_css(array(
'normalize.min.css',
'foundation.min.css',
'style.css'
));
?>
</head>
<body class="<?php echo implode($page_classes); ?>">
<div id="topmenu" class="row">
<div class="large-12 columns">
<nav class="top-bar">
<ul class="title-area">
<li class="name">
<h1><a href="<?php echo site_url(); ?>">Ystäväkylä eKortti</a></h1>
</li>
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
</ul>
<section class="top-bar-section">
<ul class="left">
<li class="divider"></li>
<li><a class="active" href="<?php echo site_url("uusi"); ?>">Luo omasi!</a></li>
<li class="divider"></li>
<li><a href="<?php echo site_url("kaikki"); ?>">Listaa kaikki</a></li>
<li class="divider"></li>
<li class="has-dropdown">
<a href="<?php echo site_url("info"); ?>">Tietoa</a>
<ul class="dropdown">
<li><a href="<?php echo site_url("info"); ?>#rekisteri">Rekisteriseloste</a></li>
<li><a href="<?php echo site_url("info"); ?>#yhteystiedot">Yhteystiedot</a></li>
</ul>
</li>
</ul>
<?php
if (isset($user) and ! empty($user)) {
?>
<ul class="left">
<li class="has-dropdown adminmenu">
<a href="<?php echo site_url("yllapito"); ?>">Ylläpito</a>
<ul class="dropdown">
<li class="has-dropdown">
<a href="<?php echo site_url("yllapito/kortit"); ?>">Hallitse kortteja</a>
<ul class="dropdown">
<li>
<a href="<?php echo site_url("yllapito/ecards/moderate");?>">
<span class="right label round">0</span>
Jonossa
</a>
</li>
<li>
<a href="<?php echo site_url("yllapito/ecards/public");?>">
<span class="right label round">0</span>
Julkaistut
</a>
</li>
<li>
<a href="<?php echo site_url("yllapito/ecards/private");?>">
<span class="right label round">0</span>
Privaatit
</a>
</li>
<li>
<a href="<?php echo site_url("yllapito/ecards/deleted");?>">
<span class="right label round">0</span>
Hylätyt
</a>
</li>
</ul>
</li>
<li class="has-dropdown">
<a href="<?php echo site_url("yllapito/users"); ?>">Hallitse käyttäjiä</a>
<ul class="dropdown">
<li>
<a href="<?php echo site_url("yllapito/users/add");?>">
Lisää käyttäjä
</a>
</li>
<li>
<a href="<?php echo site_url("yllapito/users/list");?>">
Listaa käyttäjät
</a>
</li>
</ul>
</li>
<li class="divider"></li>
<li>
<a class="logout" href="<?php echo site_url("yllapito/logout"); ?>">Kirjaudu ulos</a>
</li>
</ul>
</li>
</ul>
<?php
}
?>
<ul class="right">
<li><a href="http://www.ystavakyla.fi">Takaisin ystavakyla.fi -sivuille</a></li>
</ul>
</section>
</nav>
</div>
</div>
<div class="row headerlogo">
<div class="large-12 columns">
<a href="<?php
echo site_url();
?>"><img src="<?php
echo Assets::img('logo.png');
?>" alt="Ystäväkylä"></a>
</div>
</div>

View File

@@ -0,0 +1,33 @@
<div class="large-12 columns">
<div class="panel">
<ul class="small-block-grid-2 large-block-grid-5">
<?php
$t_start = "1302000000";
$t_end = time();
if (empty($amount)) {
$amount = 5;
}
for ($i=0; $i < $amount; $i++) {
$url = site_url('/ecards/' . md5($i));
$url = '<a href="'.$url.'" title="'.$i.'">';
?>
<li class="image-panel">
<?php echo $url; ?>
<img src="http://placekitten.com/800/500" alt="placeholder+image">
<em><?php echo date("d.m.Y \k\l\o H.i", rand($t_start, $t_end)); ?></em>
</a>
</li>
<?php
}
?>
</ul>
</div>
</div>

View File

@@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<div class="row">
<div class="large-12 small-12 columns">
<div class="panel">
<h2 id="info">Tietoa eKortista</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<h2 id="yhteystiedot">Yhteystiedot</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<h2 id="rekisteriseloste">Rekisteriseloste</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>

197
application/views/new.php Normal file
View File

@@ -0,0 +1,197 @@
<div class="row">
<div class="large-12 small-12 columns">
<div class="panel">
<h2>Luo uusi eKortti!</h2>
<p>
Suunnittele oma eKorttisi ja lähetä se ystävällesi!
Samalla voit osallistua arvontaan josta voit voittaa huikean hienoja palkintoja.
</p>
</div>
</div>
</div>
<div class="row">
<div class="large-6 small-12 columns">
<div class="panel">
<form id="ecard_form">
<h2>Tiedot</h2>
<!-- Sender information -->
<div class="row">
<div class="large-12 small-12">
<div class="row">
<div class="small-12 large-3 columns">
<label for="sender_name" class="right">Nimenne</label>
</div>
<div class="small-12 large-9 columns">
<input required type="text" id="sender_name"
name="sender_name" placeholder="Lähettäjän nimi">
</div>
</div>
<div class="row">
<div class="small-12 large-3 columns">
<label for="sender_email" class="right">Email-osoitteenne</label>
</div>
<div class="small-12 large-9 columns">
<input required type="email" id="sender_email"
name="sender_email" placeholder="Lähettäjän email">
</div>
</div>
</div>
</div>
<!-- Receiver information -->
<div class="row">
<div class="large-12 small-12">
<div class="row">
<div class="small-12 large-3 columns">
<label for="receiver_name" class="right">Vastaanottaja</label>
</div>
<div class="small-12 large-9 columns">
<input required type="text" id="receiver_name"
name="receiver_name" placeholder="Vastaanottajan nimi">
</div>
</div>
<div class="row">
<div class="small-12 large-3 columns">
<label for="receiver_email" class="right">Vastaanottajan email</label>
</div>
<div class="small-12 large-9 columns">
<input required type="email" id="receiver_email"
name="receiver_email" placeholder="Vastaanottajan email">
</div>
</div>
</div>
</div>
<!-- Picture -->
<div class="row">
<div class="small-12 large-3 columns">
<label for="select_image" class="right">Valitse kortin taustakuva</label>
</div>
<div class="small-12 large-9 columns">
<select name="select_image" id="select_image" class="image-picker">
<?php
if (! empty($images)) {
foreach ($images as $i => $image) {
?> <option data-img-src='<?php echo
$image;
?>' value='<?php
echo $i;
?>'>Cute Kitten <?=$i;?></option><?php
echo "\n";
}
}
?>
</select>
</div>
</div>
<!-- Hello -->
<div class="row">
<div class="small-12 large-3 columns">
<label for="message_title" class="right">Otsikko</label>
</div>
<div class="small-12 large-9 columns">
<input type="text" maxlength="200" id="message_title"
name="message_title" placeholder="Moikka!">
</div>
</div>
<div class="row">
<div class="small-12 large-3 columns">
<label for="message_text" class="right">Viestinne</label>
</div>
<div class="small-12 large-9 columns">
<textarea required id="message_text" name="message_text"
placeholder="Terveiset täältä internetistä"></textarea>
</div>
</div>
<!-- Hidden -->
<input type="hidden" id="sizeOf_message_text_w"
name="sizeOf_message_text_w" value="">
<input type="hidden" id="sizeOf_message_text_h"
name="sizeOf_message_text_h" value="">
<input type="hidden" id="sizeOf_message_title_w"
name="sizeOf_message_title_w" value="">
<input type="hidden" id="sizeOf_message_title_h"
name="sizeOf_message_title_h" value="">
<input type="hidden" id="placeOf_message_text_y"
name="placeOf_message_text_y" value="">
<input type="hidden" id="placeOf_message_text_x"
name="placeOf_message_text_x" value="">
<input type="hidden" id="placeOf_message_title_y"
name="placeOf_message_title_y" value="">
<input type="hidden" id="placeOf_message_title_x"
name="placeOf_message_title_x" value="">
<div class="row">
<div class="small-12 large-3 columns">
<label for="participate" class="right">Osallistutko arvontaan?</label>
</div>
<div class="small-12 large-9 columns" style="padding-top:5px;padding-bottom: 10px;">
<select name="participate" id="participate">
<option value="yes">Kyllä, haluan osallistua</option>
<option value="no">En halua osallistua</option>
</select>
</div>
</div>
<div class="row">
<div class="small-12 large-3 columns">
<label for="publiccard" class="right">Listaaminen</label>
</div>
<div class="small-12 large-9 columns" style="padding-top:5px;padding-bottom: 10px;">
<select name="publiccard" id="publiccard">
<option value="yes">Kyllä, korttini saa näkyä julkisessa listauksessa</option>
<option value="no">En halua, että korttini listataan</option>
</select>
</div>
</div>
<div class="row">
<div class="small-12 large-3 columns">&nbsp;</div>
<div class="small-12 large-9 columns">
<input type="submit" id="submit" class="button" value="Lähetä eKorttisi!" name="submit">
</div>
</div>
</form>
</div>
</div>
<div class="large-6 small-12 columns">
<div class="panel previewpanelclear">
<h2>Esikatselu</h2>
<div id="previewpanel">
<div id="message_title_preview">Moikka!</div>
<div id="message_text_preview">Terveisiä täältä internetistä!</div>
<img id="previewimage" src="http://dummyimage.com/800x600/4d494d/686a82.gif&text=placeholder+image">
</div>
</div>
<div class="panel">
<p>Tiedot kerätään vain postikorttien lähettämiseen ja halutessasi arvontaan osallistumista varten.</p>
</div>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<?php
$cards = rand(10, 200);
$private = rand(4,100);
$public = $cards-$private;
if( $public < 4 ) {
$public = rand(10, 200);
$private = $private + $public;
$cards = $public + $private;
}
?>
<div class="row">
<div class="large-12 columns">
<div class="panel">
<h2>Tässä kaikki Ystäväkylän sähköpostikortit!</h2>
<p>Postikortit ovat järjestetty luomisjärjestykseen, uusimmat ensimmäiseksi. Tällä hetkellä postikortteja on kaikkiaan <strong><?=$cards;?></strong> kappaletta joista näytetään julkisesti <strong><?=$public;?></strong> kappaletta. Yksityisiä kortteja on <strong><?=$private;?></strong> kappaletta.</p>
</div>
</div>
<?php $this->load->view('_partial_cardlist.php', array('amount' => $public)); ?>
</div>

View File

@@ -0,0 +1,22 @@
<div class="row">
<div class="large-12 columns">
<div class="panel">
<?php
if( $ecard and $ecard->response == "200" ) {
?>
<h2>Postikortti #<?php echo $ecard->id;?></h2>
<?php
} else {
?>
<h2>Tunnuksella ei löytynyt ainuttakaan korttia</h2>
<p>Sähköpostikortti on joko poistettu järjestelmästä, tai sitten seurasit rikkinäistä linkkiä.</p>
<p></p>
<?php
}
?>
<pre><?php var_export($ecard); ?></pre>
</div>
</div>
</div>

View File

@@ -0,0 +1,32 @@
<div class="row">
<div class="large-12 columns">
<div class="panel">
<h2>Tervetuloa Ystäväkylän ePostikorttiin!</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
<?php $this->load->view('_partial_cardlist.php', array('amount' => 5)); ?>
</div>

View File

@@ -0,0 +1,15 @@
<div class="row">
<div class="large-12 columns">
<div class="panel">
<pre><?php
if (empty($user)) {
$user = new stdClass();
}
var_export($user);
?></pre>
</div>
</div>
</div>

View File

@@ -0,0 +1,83 @@
<div class="row">
<div class="large-12 small-12 large-centered columns">
<div class="panel">
<div class="row">
<div class="large-6 small-12 large-centered columns">
<h2>Kirjaudu sisään</h2>
<?php
if (empty($error)) {
$error = null;
}
if (! empty($error)) { ?>
<div data-alert class="alert-box alert">
<?php echo $error; ?>
</div>
<?php
}
?>
<form id="loginform" method="post">
<div class="row">
<div class="large-12 small-12">
<div class="row">
<div class="small-3 large-3 columns">
<label for="username"
class="right">Tunnus</label>
</div>
<div class="small-9 large-9 columns">
<input
required
type="text"
id="username"
name="username"
class="expand"
value="ismo.vuorinen@tampere.fi"
>
</div>
</div>
<div class="row">
<div class="small-3 columns">
<label for="password"
class="right">Salasana</label>
</div>
<div class="small-9 columns">
<input
required
type="password"
id="password"
name="password"
placeholder=""
class="expand"
value="aasi"
>
</div>
</div>
</div>
</div>
<div class="row">
<div class="small-3 large-3 columns">&nbsp;</div>
<div class="small-9 large-9 columns">
<input type="submit" id="submit"
class="button expand" value="Kirjaudu"
name="submit">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>