my-simon 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore.orig +55 -0
- data/DOC/Launch Check List.docx +0 -0
- data/DOC/Launch Check List.pdf +0 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +44 -0
- data/LICENSE.txt +20 -0
- data/README.md +21 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/build/rakefile.rb +12 -0
- data/config.rb +24 -0
- data/lib/simon.rb +0 -5
- data/my-simon.gemspec +141 -0
- data/scaffolding/simon/controller.tpl +9 -0
- data/scaffolding/simon/model.tpl +10 -0
- data/scaffolding/simon/view.tpl +5 -0
- data/scaffolding/standards/html_template.html +44 -0
- data/scaffolding/standards/html_template.php +44 -0
- data/scaffolding/standards/jquery_plugin_template.js +45 -0
- data/scaffolding/standards/js_template.js +43 -0
- data/simon +282 -0
- data/test/helper.rb +18 -0
- data/test/test_simon.rb +7 -0
- data/www/.htaccess +488 -0
- data/www/404.html +32 -0
- data/www/crossdomain.xml +25 -0
- data/www/favicon.ico +0 -0
- data/www/index.php +17 -0
- data/www/lib/js/homePage.js +43 -0
- data/www/lib/js/jquery/JQbook.js +809 -0
- data/www/lib/js/jquery/jquery-1.8.0.min.js +27 -0
- data/www/lib/js/jquery/jquery.alphanumeric.js +82 -0
- data/www/lib/js/jquery/jquery.cookie.js +96 -0
- data/www/lib/js/jquery/jquery.easing.1.3.js +207 -0
- data/www/lib/js/main.js +117 -0
- data/www/lib/js/master.js +6 -0
- data/www/lib/js/plugins/handlebars-1.0.rc.1.js +1920 -0
- data/www/lib/js/plugins/modernizr-1.7.min.js +2 -0
- data/www/lib/js/plugins/swfobject.js +777 -0
- data/www/lib/js/plugins_mod/README.txt +3 -0
- data/www/lib/php/app.php +53 -0
- data/www/lib/php/controller/index.php +10 -0
- data/www/lib/php/controller/regex.php +23 -0
- data/www/lib/php/model/Book.php +8 -0
- data/www/lib/php/model/Model.php +8 -0
- data/www/lib/php/plugins/php-activerecord/ActiveRecord.php +44 -0
- data/www/lib/php/plugins/php-activerecord/lib/CallBack.php +226 -0
- data/www/lib/php/plugins/php-activerecord/lib/Column.php +155 -0
- data/www/lib/php/plugins/php-activerecord/lib/Config.php +288 -0
- data/www/lib/php/plugins/php-activerecord/lib/Connection.php +456 -0
- data/www/lib/php/plugins/php-activerecord/lib/ConnectionManager.php +38 -0
- data/www/lib/php/plugins/php-activerecord/lib/DateTime.php +45 -0
- data/www/lib/php/plugins/php-activerecord/lib/Exceptions.php +137 -0
- data/www/lib/php/plugins/php-activerecord/lib/Expressions.php +183 -0
- data/www/lib/php/plugins/php-activerecord/lib/Inflector.php +115 -0
- data/www/lib/php/plugins/php-activerecord/lib/Model.php +1673 -0
- data/www/lib/php/plugins/php-activerecord/lib/Reflections.php +86 -0
- data/www/lib/php/plugins/php-activerecord/lib/Relationship.php +637 -0
- data/www/lib/php/plugins/php-activerecord/lib/SQLBuilder.php +396 -0
- data/www/lib/php/plugins/php-activerecord/lib/Serialization.php +302 -0
- data/www/lib/php/plugins/php-activerecord/lib/Singleton.php +57 -0
- data/www/lib/php/plugins/php-activerecord/lib/Table.php +547 -0
- data/www/lib/php/plugins/php-activerecord/lib/Utils.php +351 -0
- data/www/lib/php/plugins/php-activerecord/lib/Validations.php +833 -0
- data/www/lib/php/plugins/php-activerecord/lib/adapters/MysqlAdapter.php +73 -0
- data/www/lib/php/plugins/php-activerecord/lib/adapters/OciAdapter.php +121 -0
- data/www/lib/php/plugins/php-activerecord/lib/adapters/PgsqlAdapter.php +104 -0
- data/www/lib/php/plugins/php-activerecord/lib/adapters/SqliteAdapter.php +81 -0
- data/www/lib/php/system/Config.php +174 -0
- data/www/lib/php/system/config.routes.php +29 -0
- data/www/lib/php/system/router.php +220 -0
- data/www/lib/php/template/footer.php +59 -0
- data/www/lib/php/template/header.php +74 -0
- data/www/lib/php/view/index.php +5 -0
- data/www/media/images/facebook_share.jpg +0 -0
- data/www/robots.txt +5 -0
- data/www/sandbox/readme.txt +3 -0
- data/www/sass/javascript.scss +1 -0
- data/www/sass/layout.scss +128 -0
- data/www/sass/master.scss +4 -0
- data/www/sass/reset.scss +47 -0
- data/www/sass/typography.scss +24 -0
- data/www/styles/javascript.css +1 -0
- data/www/styles/layout.css +186 -0
- data/www/styles/master.css +4 -0
- data/www/styles/reset.css +60 -0
- data/www/styles/typography.css +24 -0
- metadata +179 -7
@@ -0,0 +1,220 @@
|
|
1
|
+
<?php
|
2
|
+
/**
|
3
|
+
* Router manager class
|
4
|
+
* Statically stores all routes. The router manager is responsible for applying
|
5
|
+
* consistent URI patterns such as having a slash at the end as well as
|
6
|
+
* redirecting the client. If the routes don't match or it does but the
|
7
|
+
* controller doesn't exist, it looks for the slash at the end of the path. If
|
8
|
+
* it does not exist, it redirects with the slash appended and tries one more
|
9
|
+
* time. The reason why the non-slash is tried is some scripts and files behave
|
10
|
+
* differently to certain URIs (ex. javascript files which include others).
|
11
|
+
*
|
12
|
+
* @package router
|
13
|
+
*/
|
14
|
+
class Router
|
15
|
+
{
|
16
|
+
//{{{ properties
|
17
|
+
/**
|
18
|
+
* Array of routes
|
19
|
+
*/
|
20
|
+
private static $routes = array(self::PRIORITY_HIGH => array(),
|
21
|
+
self::PRIORITY_NORMAL => array(),
|
22
|
+
self::PRIORITY_LOW => array());
|
23
|
+
/**
|
24
|
+
* Matching pattern method (ROUTE/REDIRECT constant)
|
25
|
+
*/
|
26
|
+
private static $method;
|
27
|
+
/**
|
28
|
+
* Source that provided the route scanned. This is recorded along with
|
29
|
+
* router::add() when the route is passed in hook_routes().
|
30
|
+
*/
|
31
|
+
private static $source;
|
32
|
+
/**
|
33
|
+
* Matching pattern
|
34
|
+
*/
|
35
|
+
private static $pattern;
|
36
|
+
/**
|
37
|
+
* Matching controller after preg_replace()
|
38
|
+
*/
|
39
|
+
private static $ctrl;
|
40
|
+
/**
|
41
|
+
* Flag for scanning routes
|
42
|
+
*/
|
43
|
+
private static $scanned = FALSE;
|
44
|
+
|
45
|
+
//}}}
|
46
|
+
//{{{ constants
|
47
|
+
/**
|
48
|
+
* Route uses PCRE
|
49
|
+
*/
|
50
|
+
const ROUTE_PCRE = 0;
|
51
|
+
/**
|
52
|
+
* Route is static
|
53
|
+
*/
|
54
|
+
const ROUTE_STATIC = 1;
|
55
|
+
/**
|
56
|
+
* Redirect using PCRE
|
57
|
+
*/
|
58
|
+
const REDIRECT_PCRE = 2;
|
59
|
+
/**
|
60
|
+
* Redirect with literal strings
|
61
|
+
*/
|
62
|
+
const REDIRECT_STATIC = 3;
|
63
|
+
/**
|
64
|
+
* High priority route, used for "emergency" pages or redirects
|
65
|
+
*/
|
66
|
+
const PRIORITY_HIGH = 0;
|
67
|
+
/**
|
68
|
+
* Normal priority route, this is the most common
|
69
|
+
*/
|
70
|
+
const PRIORITY_NORMAL = 1;
|
71
|
+
/**
|
72
|
+
* Low priority route, used for special 404s or very generic routes (pages)
|
73
|
+
*/
|
74
|
+
const PRIORITY_LOW = 2;
|
75
|
+
|
76
|
+
//}}}
|
77
|
+
//{{{ private static function scan($force = FALSE)
|
78
|
+
private static function scan($force = FALSE)
|
79
|
+
{
|
80
|
+
$found = FALSE;
|
81
|
+
if (!self::$scanned || $force)
|
82
|
+
{
|
83
|
+
foreach (self::$routes as $priority => $routes)
|
84
|
+
{
|
85
|
+
if ($found)
|
86
|
+
{
|
87
|
+
break;
|
88
|
+
}
|
89
|
+
foreach ($routes as $route)
|
90
|
+
{
|
91
|
+
if ($found)
|
92
|
+
{
|
93
|
+
break;
|
94
|
+
}
|
95
|
+
unset($ctrl, $redirect);
|
96
|
+
list($pattern, $replacement, $method, $source) = $route;
|
97
|
+
switch ($method)
|
98
|
+
{
|
99
|
+
case self::ROUTE_STATIC:
|
100
|
+
if (URI_PATH === $pattern)
|
101
|
+
{
|
102
|
+
$ctrl = $replacement;
|
103
|
+
}
|
104
|
+
break;
|
105
|
+
case self::ROUTE_PCRE:
|
106
|
+
if (preg_match($pattern, URI_PATH))
|
107
|
+
{
|
108
|
+
$ctrl = preg_replace($pattern, $replacement, URI_PATH);
|
109
|
+
}
|
110
|
+
break;
|
111
|
+
case self::REDIRECT_STATIC:
|
112
|
+
if (URI_PATH === $pattern)
|
113
|
+
{
|
114
|
+
$redirect = $replacement;
|
115
|
+
}
|
116
|
+
break;
|
117
|
+
case self::REDIRECT_PCRE:
|
118
|
+
if (preg_match($pattern, URI_PATH))
|
119
|
+
{
|
120
|
+
$redirect = preg_replace($pattern, $replacement, URI_PATH);
|
121
|
+
}
|
122
|
+
break;
|
123
|
+
}
|
124
|
+
if (isset($ctrl) || isset($redirect))
|
125
|
+
{
|
126
|
+
if (isset($ctrl) && is_readable($ctrl))
|
127
|
+
{
|
128
|
+
self::$pattern = $pattern;
|
129
|
+
self::$ctrl = $ctrl;
|
130
|
+
self::$method = $method;
|
131
|
+
self::$source = $source;
|
132
|
+
$found = TRUE;
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
if (!self::$ctrl && !isset($redirect) && substr(URI_PATH, -1) !== '/')
|
138
|
+
{
|
139
|
+
$redirect = URI_PATH.'/';
|
140
|
+
if (strlen(URI_PARAM))
|
141
|
+
{
|
142
|
+
$redirect .= '?'.URI_PARAM;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
if (isset($redirect))
|
146
|
+
{
|
147
|
+
header('Location: '.$redirect);
|
148
|
+
exit;
|
149
|
+
}
|
150
|
+
self::$scanned = !$force;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
//}}}
|
155
|
+
//{{{ public static function controller($scan = FALSE)
|
156
|
+
/**
|
157
|
+
* Controller called for the matching route
|
158
|
+
* @return string
|
159
|
+
*/
|
160
|
+
public static function controller($scan = FALSE)
|
161
|
+
{
|
162
|
+
self::scan($scan);
|
163
|
+
return self::$ctrl;
|
164
|
+
}
|
165
|
+
|
166
|
+
//}}}
|
167
|
+
//{{{ public static function pattern($scan = FALSE)
|
168
|
+
/**
|
169
|
+
* Pattern of the matching route
|
170
|
+
* @return string
|
171
|
+
*/
|
172
|
+
public static function pattern($scan = FALSE)
|
173
|
+
{
|
174
|
+
self::scan($scan);
|
175
|
+
return self::$pattern;
|
176
|
+
}
|
177
|
+
|
178
|
+
//}}}
|
179
|
+
//{{{ public static function method($scan = FALSE)
|
180
|
+
/**
|
181
|
+
* @return int
|
182
|
+
*/
|
183
|
+
public static function method($scan = FALSE)
|
184
|
+
{
|
185
|
+
self::scan($scan);
|
186
|
+
return self::$method;
|
187
|
+
}
|
188
|
+
|
189
|
+
//}}}
|
190
|
+
//{{{ public static function source($scan = FALSE)
|
191
|
+
/**
|
192
|
+
* Gets the source that provided the matching route
|
193
|
+
* @return string|NULL
|
194
|
+
*/
|
195
|
+
public static function source($scan = FALSE)
|
196
|
+
{
|
197
|
+
self::scan($scan);
|
198
|
+
return self::$source;
|
199
|
+
}
|
200
|
+
|
201
|
+
//}}}
|
202
|
+
//{{{ public static function add($pattern, $ctrl, $route = Router::ROUTE_STATIC, $priority = Router::PRIORITY_NORMAL, $source = NULL)
|
203
|
+
/**
|
204
|
+
* Register a single route for the system
|
205
|
+
* If $route is router::ROUTE_PCRE, both $pattern and $ctrl can be in PCRE
|
206
|
+
* string format for pcre_replace(). if $route is router::ROUTE_STATIC then
|
207
|
+
* it will do a fast string compare to URI_PATH. $ctrl must always be an
|
208
|
+
* absolute filename.
|
209
|
+
*
|
210
|
+
* @return void
|
211
|
+
*/
|
212
|
+
public static function add($pattern, $ctrl, $route = Router::ROUTE_STATIC, $priority = Router::PRIORITY_NORMAL, $source = NULL)
|
213
|
+
{
|
214
|
+
self::$routes[$priority][] = array($pattern, $ctrl, $route, $source);
|
215
|
+
}
|
216
|
+
|
217
|
+
//}}}
|
218
|
+
}
|
219
|
+
|
220
|
+
?>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
</div><!-- eof #MainContent -->
|
2
|
+
|
3
|
+
<footer>
|
4
|
+
|
5
|
+
</footer>
|
6
|
+
</div>
|
7
|
+
<!--[if lt IE 7 ]>
|
8
|
+
<script src="lib/js/plugins/dd_belatedpng.js"></script>
|
9
|
+
<script> DD_belatedPNG.fix('img, .png_bg');</script>
|
10
|
+
<![endif]-->
|
11
|
+
<script type="text/javascript"> window._app_vars = <?= $settings->app_vars_JSON() ?>; </script>
|
12
|
+
|
13
|
+
<?php
|
14
|
+
|
15
|
+
if($settings->environment == PROD){
|
16
|
+
|
17
|
+
?>
|
18
|
+
<!-- BEGIN PROD: javascript -->
|
19
|
+
<script src="/lib/js/evbmaster-min.js" type="text/javascript" charset="utf-8"></script>
|
20
|
+
<!-- END: javascript -->
|
21
|
+
<?php
|
22
|
+
|
23
|
+
}else{
|
24
|
+
|
25
|
+
?>
|
26
|
+
<!-- BEGIN <?= $settings->environment ?>: javascript -->
|
27
|
+
<script src="/lib/js/jquery/jquery-1.8.0.min.js" type="text/javascript" charset="utf-8"></script>
|
28
|
+
<script src="/lib/js/master.js" type="text/javascript" charset="utf-8"></script>
|
29
|
+
<script src="/lib/js/main.js" type="text/javascript" charset="utf-8"></script>
|
30
|
+
<script src="/lib/js/homePage.js" type="text/javascript" charset="utf-8"></script>
|
31
|
+
<!-- END_DEV: javascript -->
|
32
|
+
<?php
|
33
|
+
}
|
34
|
+
?>
|
35
|
+
<script type="text/javascript">
|
36
|
+
|
37
|
+
<?php
|
38
|
+
if(defined('URI_PART_0')){
|
39
|
+
echo "CHANGE_ME.main.queue(CHANGE_ME.".URI_PART_0.".init);";
|
40
|
+
}else{
|
41
|
+
echo "CHANGE_ME.main.queue(CHANGE_ME.homePage.init);";
|
42
|
+
}
|
43
|
+
?>
|
44
|
+
</script>
|
45
|
+
<script type="text/javascript">
|
46
|
+
|
47
|
+
var _gaq = _gaq || [];
|
48
|
+
_gaq.push(['_setAccount', '<?= $settings->analytics_id ?>']);
|
49
|
+
_gaq.push(['_trackPageview']);
|
50
|
+
|
51
|
+
(function() {
|
52
|
+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
53
|
+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
54
|
+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
55
|
+
})();
|
56
|
+
|
57
|
+
</script>
|
58
|
+
</body>
|
59
|
+
</html>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
|
3
|
+
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
4
|
+
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
5
|
+
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
6
|
+
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
|
7
|
+
<head>
|
8
|
+
<title><?= $settings->getPageTitle() ?></title>
|
9
|
+
|
10
|
+
<!-- BEGIN: meta tags -->
|
11
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12
|
+
<meta name="description" content=""/>
|
13
|
+
<meta name="keywords" content=""/>
|
14
|
+
<link rel="shortcut icon" href="favicon.ico"/>
|
15
|
+
<meta name="description" content="">
|
16
|
+
<meta name="author" content="">
|
17
|
+
<meta charset="UTF-8">
|
18
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
20
|
+
<!-- END: meta tags -->
|
21
|
+
<!-- BEGIN: OG FBook meta tags -->
|
22
|
+
<meta property="fb:admins" content=""/>
|
23
|
+
<meta property="og:type" content="website"/>
|
24
|
+
<meta property="og:url" content=""/>
|
25
|
+
<meta property="og:title" content="" />
|
26
|
+
<meta property="og:site_name" content=""/>
|
27
|
+
<meta property="og:description" content=""/>
|
28
|
+
<meta property="og:image" content="<?= $settings->protocol ?>://<?= $settings->server_name ?>/media/images/facebook_share.jpg" />
|
29
|
+
<!-- END: OG FBook meta tags -->
|
30
|
+
<?php
|
31
|
+
|
32
|
+
if($settings->environment == PROD){
|
33
|
+
|
34
|
+
?>
|
35
|
+
<!-- BEGIN PROD: styles -->
|
36
|
+
<link rel="stylesheet" href="styles/evbmaster-min.css" type="text/css" />
|
37
|
+
<script type="text/javascript">
|
38
|
+
document.write('<link rel="stylesheet" href="styles/javascript.css" />');
|
39
|
+
</script>
|
40
|
+
<!-- END: styles -->
|
41
|
+
<?php
|
42
|
+
|
43
|
+
}else{
|
44
|
+
|
45
|
+
?>
|
46
|
+
<!-- BEGIN <?php echo $settings->environment ?>: styles -->
|
47
|
+
<link rel="stylesheet" type="text/css" href="styles/master.css" />
|
48
|
+
<script type="text/javascript">
|
49
|
+
document.write('<link rel="stylesheet" href="styles/javascript.css" />');
|
50
|
+
</script>
|
51
|
+
<!-- END: styles -->
|
52
|
+
<?php
|
53
|
+
}
|
54
|
+
?>
|
55
|
+
<script>
|
56
|
+
/*<![CDATA[*/
|
57
|
+
document.createElement('header');
|
58
|
+
document.createElement('hgroup');
|
59
|
+
document.createElement('nav');
|
60
|
+
document.createElement('footer');
|
61
|
+
document.createElement('article');
|
62
|
+
document.createElement('section');
|
63
|
+
/*]]>*/
|
64
|
+
</script>
|
65
|
+
</head>
|
66
|
+
<body class="<?php if(isset($class)) echo $class; ?>">
|
67
|
+
<div id="PageWrapper">
|
68
|
+
<header>
|
69
|
+
<h1>
|
70
|
+
<a href="#">CHANGE_ME</a>
|
71
|
+
</h1>
|
72
|
+
</header>
|
73
|
+
|
74
|
+
<div id="MainContent" role="main">
|
Binary file
|
data/www/robots.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
/* javascript.css */
|
@@ -0,0 +1,128 @@
|
|
1
|
+
/*
|
2
|
+
Global
|
3
|
+
*/
|
4
|
+
.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
|
5
|
+
.hidden { display: none; visibility: hidden; }
|
6
|
+
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
7
|
+
.visuallyhidden.focusable:active,
|
8
|
+
.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
|
9
|
+
.invisible { visibility: hidden; }
|
10
|
+
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
|
11
|
+
.clearfix:after { clear: both; }
|
12
|
+
.clearfix { zoom: 1; }
|
13
|
+
a { color: black; }
|
14
|
+
|
15
|
+
|
16
|
+
/*
|
17
|
+
Body
|
18
|
+
*/
|
19
|
+
body { }
|
20
|
+
|
21
|
+
/*
|
22
|
+
PageWrapper
|
23
|
+
*/
|
24
|
+
div#PageWrapper { }
|
25
|
+
|
26
|
+
/*
|
27
|
+
Header
|
28
|
+
*/
|
29
|
+
header {
|
30
|
+
h1 {
|
31
|
+
a {
|
32
|
+
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
/*
|
38
|
+
Content MainContent
|
39
|
+
*/
|
40
|
+
div#MainContent { }
|
41
|
+
|
42
|
+
|
43
|
+
/*
|
44
|
+
Footer
|
45
|
+
*/
|
46
|
+
footer { }
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
/* Smartphones (portrait and landscape) ----------- */
|
52
|
+
@media only screen
|
53
|
+
and (min-device-width : 320px)
|
54
|
+
and (max-device-width : 480px) {
|
55
|
+
/* Styles */
|
56
|
+
}
|
57
|
+
|
58
|
+
/* Smartphones (landscape) ----------- */
|
59
|
+
@media only screen
|
60
|
+
and (min-width : 321px) {
|
61
|
+
/* Styles */
|
62
|
+
}
|
63
|
+
|
64
|
+
/* Smartphones (portrait) ----------- */
|
65
|
+
@media only screen
|
66
|
+
and (max-width : 320px) {
|
67
|
+
/* Styles */
|
68
|
+
}
|
69
|
+
|
70
|
+
/* iPads (portrait and landscape) ----------- */
|
71
|
+
@media only screen
|
72
|
+
and (min-device-width : 768px)
|
73
|
+
and (max-device-width : 1024px) {
|
74
|
+
/* Styles */
|
75
|
+
}
|
76
|
+
|
77
|
+
/* iPads (landscape) ----------- */
|
78
|
+
@media only screen
|
79
|
+
and (min-device-width : 768px)
|
80
|
+
and (max-device-width : 1024px)
|
81
|
+
and (orientation : landscape) {
|
82
|
+
/* Styles */
|
83
|
+
}
|
84
|
+
|
85
|
+
/* iPads (portrait) ----------- */
|
86
|
+
@media only screen
|
87
|
+
and (min-device-width : 768px)
|
88
|
+
and (max-device-width : 1024px)
|
89
|
+
and (orientation : portrait) {
|
90
|
+
/* Styles */
|
91
|
+
}
|
92
|
+
|
93
|
+
/* Desktops and laptops ----------- */
|
94
|
+
@media only screen
|
95
|
+
and (min-width : 1224px) {
|
96
|
+
/* Styles */
|
97
|
+
}
|
98
|
+
|
99
|
+
/* Large screens ----------- */
|
100
|
+
@media only screen
|
101
|
+
and (min-width : 1824px) {
|
102
|
+
/* Styles */
|
103
|
+
}
|
104
|
+
|
105
|
+
/* iPhone 4 ----------- */
|
106
|
+
@media
|
107
|
+
only screen and (-webkit-min-device-pixel-ratio : 1.5),
|
108
|
+
only screen and (min-device-pixel-ratio : 1.5) {
|
109
|
+
/* Styles */
|
110
|
+
}
|
111
|
+
|
112
|
+
/*
|
113
|
+
For Printing support
|
114
|
+
*/
|
115
|
+
@media print {
|
116
|
+
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
|
117
|
+
-ms-filter: none !important; }
|
118
|
+
a, a:visited { color: #444 !important; text-decoration: underline; }
|
119
|
+
a[href]:after { content: " (" attr(href) ")"; }
|
120
|
+
abbr[title]:after { content: " (" attr(title) ")"; }
|
121
|
+
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
|
122
|
+
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
|
123
|
+
thead { display: table-header-group; }
|
124
|
+
tr, img { page-break-inside: avoid; }
|
125
|
+
@page { margin: 0.5cm; }
|
126
|
+
p, h2, h3 { orphans: 3; widows: 3; }
|
127
|
+
h2, h3{ page-break-after: avoid; }
|
128
|
+
}
|
data/www/sass/reset.scss
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
/* http://meyerweb.com/eric/tools/css/reset/
|
2
|
+
v2.0 | 20110126
|
3
|
+
License: none (public domain)
|
4
|
+
*/
|
5
|
+
html, body, div, span, applet, object, iframe,
|
6
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
7
|
+
a, abbr, acronym, address, big, cite, code,
|
8
|
+
del, dfn, em, img, ins, kbd, q, s, samp,
|
9
|
+
small, strike, strong, sub, sup, tt, var,
|
10
|
+
b, u, i, center,
|
11
|
+
dl, dt, dd, ol, ul, li,
|
12
|
+
fieldset, form, label, legend,
|
13
|
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
14
|
+
article, aside, canvas, details, embed,
|
15
|
+
figure, figcaption, footer, header, hgroup,
|
16
|
+
menu, nav, output, ruby, section, summary,
|
17
|
+
time, mark, audio, video {
|
18
|
+
margin: 0;
|
19
|
+
padding: 0;
|
20
|
+
border: 0;
|
21
|
+
font-size: 100%;
|
22
|
+
font: inherit;
|
23
|
+
vertical-align: baseline;
|
24
|
+
}
|
25
|
+
/* HTML5 display-role reset for older browsers */
|
26
|
+
article, aside, details, figcaption, figure,
|
27
|
+
footer, header, hgroup, menu, nav, section {
|
28
|
+
display: block;
|
29
|
+
}
|
30
|
+
body {
|
31
|
+
line-height: 1;
|
32
|
+
}
|
33
|
+
ol, ul {
|
34
|
+
list-style: none;
|
35
|
+
}
|
36
|
+
blockquote, q {
|
37
|
+
quotes: none;
|
38
|
+
}
|
39
|
+
blockquote:before, blockquote:after,
|
40
|
+
q:before, q:after {
|
41
|
+
content: '';
|
42
|
+
content: none;
|
43
|
+
}
|
44
|
+
table {
|
45
|
+
border-collapse: collapse;
|
46
|
+
border-spacing: 0;
|
47
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/* YUI Font CSS
|
2
|
+
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
|
3
|
+
Code licensed under the BSD License:
|
4
|
+
http://developer.yahoo.net/yui/license.txt
|
5
|
+
version: 2.5.1
|
6
|
+
Px %
|
7
|
+
10 77
|
8
|
+
11 85
|
9
|
+
12 93
|
10
|
+
13 100
|
11
|
+
14 108
|
12
|
+
15 116
|
13
|
+
16 123.1
|
14
|
+
17 131
|
15
|
+
18 138.5
|
16
|
+
19 146.5
|
17
|
+
20 153.9
|
18
|
+
21 161.6
|
19
|
+
22 167
|
20
|
+
23 174
|
21
|
+
24 182
|
22
|
+
25 189
|
23
|
+
26 197
|
24
|
+
*/
|
@@ -0,0 +1 @@
|
|
1
|
+
/* javascript.css */
|