Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

edited script for new courses views

  • Loading branch information...
commit b1c4d8264d7f61ac4b6b54526402d5210c25c699 1 parent f10abe7
@n0ur n0ur authored
View
15 courses/course.php
@@ -33,11 +33,16 @@
$selectCourse = "<p class=\"center\"><img alt=\"Y U NO GIVE ID\" src=\"images/yuno.png\" /><br /><br />No active course, select a valid course from the navigation on the left!</p>";
foreach($categories as $id => $name){
- echo '<li class="level0"><i class="icon-folder-open"></i><span class="underline">'. urlencode($name) .'</span>';
+ if(count($tree[$id]) > 0){
+ echo '<li class="level0"><i class="icon-folder-open"></i>';
+ } else {
+ echo '<li class="level0"><i class="icon-folder-close"></i>';
+ }
+ echo '<a class="title" href="#/course/'.renameTitle($name).'">'. urlencode($name) .'</a>';
if(count($tree[$id]) > 0){
echo '<ul class="unstyled">';
foreach($tree[$id] as $course){
- echo '<li class="level1"><i class="icon-folder-open"></i><span class="underline">'.$course['title'].'</span>';
+ echo '<li class="level1"><i class="icon-folder-open"></i><a class="title" href="#/course/'.renameTitle($name).'/'.renameTitle($course['title']).'">'.$course['title'].'</a>';
echo '<ul class="unstyled">';
$filename = "courses/course".$course['id'].".php";
@@ -55,14 +60,14 @@
case 'exam':
echo '<i class="icon-certificate"></i>'; break;
}
- echo '<a href="#">'.$chapterName.'</a></li>';
+ echo '<a href="#/course/'.renameTitle($name).'/'. renameTitle($course['title']).'/'.renameTitle($chapterName).'">'.$chapterName.'</a></li>';
+ // course content: $courseData['content'][$chapterType][$contentId];
}
}
echo '</ul></li>';
}
- echo '</ul>';
+ echo '</ul></li>';
}
- echo '</li>';
}
?>
</ul><!-- end ul class tree -->
View
30 courses/courseheader.php
@@ -28,22 +28,22 @@
?>
<script type="text/javascript">
// when the examn form is submitted, show the results in a dialog window
- $(document).ready(function(){
- $("#examnform").submit( function () {
- $.post(
- 'examnhandler.php?id=<? echo $courseid; ?>',
- $(this).serialize(),
- function(data){
- $("#examnresult").empty().append(data).dialog("open");
- }
- );
- return false;
- });
- });
- $("#examnresult").dialog({ autoOpen: false, minWidth: 500 });
+ // $(document).ready(function(){
+ // $("#examnform").submit( function () {
+ // $.post(
+ // 'examnhandler.php?id=<? echo $courseid; ?>',
+ // $(this).serialize(),
+ // function(data){
+ // $("#examnresult").empty().append(data).dialog("open");
+ // }
+ // );
+ // return false;
+ // });
+ // });
+ // $("#examnresult").dialog({ autoOpen: false, minWidth: 500 });
- // start with only the default div shown
- $("#default").show().siblings().hide();
+ // // start with only the default div shown
+ // $("#default").show().siblings().hide();
</script>
View
2  courses/help.php
@@ -19,6 +19,6 @@
// //
///////////////////////////////////////////////////////////////////////////////////
?>
-<h1>Help!</h1>
+<h3>Help!</h3>
<p>For a general introduction to this Courses system, please check out the 'Intro to Hackits Courses' course in the General category. Click on the tab 'Course Overview' to head over there.</p>
<p>If you have specific questions about a course or have found a bug, let us know on the <a href="../forum/index.php?topic=13.0">forum</a>.</p>
View
186 courses/index.php
@@ -28,147 +28,125 @@
?><!DOCTYPE html>
<html lang="en">
<head>
- <meta charset="utf-8">
- <title>Hackits.be - Courses</title>
- <link rel="stylesheet" href="css/jquery-ui-1.8.17.custom.css">
- <link rel="stylesheet" href="css/hackits-courses.css">
- <script src="js/jquery-1.8.2.js"></script>
- <script src="js/jquery.ui.core.js"></script>
- <script src="js/jquery.ui.widget.js"></script>
- <script src="js/jquery.ui.button.js"></script>
- <script src="js/jquery.ui.position.js"></script>
- <script src="js/jquery.ui.tabs.js"></script>
- <script src="js/jquery.ui.dialog.js"></script>
- <script src="js/jquery.ui.accordion.js"></script>
- <script src="js/jquery.address.js"></script>
-<!-- <script src="js/jquery.history.js"></script>-->
- <script>
- $(function() {
+ <meta charset="utf-8">
+ <meta name="description" content="Hackits.be" />
+ <title>Hackits.be - Courses</title>
+ <!-- <link rel="stylesheet" href="../frontpage/css/bootstrap.min.css"> -->
+ <link rel="stylesheet" href="../frontpage/css/bootstrap.css">
+ <link rel="stylesheet" href="../frontpage/css/custom.css">
+ <link rel="stylesheet" href="../frontpage/css/bootstrap-responsive.css">
+ <script src="../frontpage/js/jquery-1.8.1.min.js"></script>
+ <script src="../frontpage/js/bootstrap.min.js"></script>
+ <script src="js/jquery.address.js"></script>
+ <script src="js/jquery.scrollTo-1.4.3.1-min.js"></script>
+ <script>
+ $(function() {
var tabStates = { //default states
- overview: '/overview/General',
- course: '/course/General/Intro+to+Hackits+Courses/Hackits+Courses',
+ overview: '/overview',
+ course: '/course',
ranking: '/ranking',
help: '/help'
},
- selectPart = function(part){
- var part = $("#"+part);
- part.show().siblings().hide();
- },
- getPanelIndex = function(str){
- return $('.ui-accordion-header a').filter(function(){
- return (new RegExp(str)).test($(this).text())
- }).parent().index() / 2;
- },
updateState = function(e){
var parts = e.path.split('/')
- , tab = parts[1]
+ , tab = tabStates.hasOwnProperty(parts[1]) ? parts[1] : 'overview'
, category = parts[2] || ''
, course = parts[3] || ''
, chapter = parts[4] || '';
if(tab.length){ //select tab
- $("#tabs").tabs("select", '#'+tab.replace(/^#/,''));
+ $('.tab-pane.active').removeClass('active').addClass('fade');
+ $('#coursesTabs li.active').removeClass('active');
+ $('#'+tab).addClass('active in');
+ $('#coursesTabs li a[href=#'+tab+']').parent().addClass('active');
}
if(category.length){ //select accordion panel
- $("#courses").accordion("activate", getPanelIndex(category));
- $('a[href$="/course/'+category+'"]').siblings('input').attr('checked', true);
+ var h4Cat = $('h4#'+category),
+ aCat = $('a[href="#/course/'+category+'"]');
+ if(h4Cat.length) { // we dont want this to get executed when we're in #/courses/etc
+ $.scrollTo(h4Cat);
+ $.scrollTo('-=20px');
+ }
+ if (aCat.length) {
+ aCat.next('ul').show();
+ }
}
if(course.length){ //select course
- $('a[href$="/course/'+category+'/'+course+'"]').siblings('input').attr('checked', true);
+ aCourse = $('a[href="#/course/'+category+'/'+course+'"]');
+ if(aCourse.length) {
+ console.log("here")
+ aCourse.next('ul').show();
+ }
}
if(chapter.length){ //select chapter
- $('#coursenavigation li.file a').each(function(){
- $(this).closest('li').toggleClass('selected',
- (new RegExp(e.path.replace(/\+/g, '\\+')+'$', 'i'))
- .test($(this).attr('href')));
- });
- $('#coursecontent').html(
- $('[id="'
- + $('a[href$="/course/'+category+'/'+course+'/'+chapter+'"]:not([rel=overview])').data('chapterid')
- + '"]').html());
+ //TODO: what's another way to load courses?
}
};
-
- $("#tabs").tabs({
- select: function(event, ui){
- var oldSelected = $('#tabs .ui-tabs-selected a').attr('href').replace(/^#/, '')
- , newSelected = ui.tab.hash.replace(/^#/, '');
- if((new RegExp('^/'+newSelected, 'i')).test($.address.path())){ return; }
- tabStates[oldSelected] = $.address.path();
- $.address.path(tabStates[newSelected]);
- }
+ $('ul#coursesTabs li a').click(function(e){
+ var index = $(this).attr('href').replace(/^#/, '');
+ $.address.path(tabStates[index]);
});
- $("#courses").accordion({
- autoHeight: false,
- animated: false
- });
-
+ $('a.title').next('ul').hide();
$.address.init(function(e){
if($.address.path() === '/'){
$.address.path(tabStates.overview); //default to overview
}
- $('#coursenavigation .file a[data-chapterid]').address(function() {
- return $(this).attr('href');
- });
- tabStates[$.address.path().match(/^\/([^\/]+)/)[0].substr(1)] = $.address.path();
+ // what do these do?
+ // $('#coursenavigation .file a[data-chapterid]').address(function() {
+ // return $(this).attr('href');
+ // });
+ // tabStates[$.address.path().match(/^\/([^\/]+)/)[0].substr(1)] = $.address.path();
}).change(updateState)
.internalChange({}, updateState)
.externalChange({}, updateState);
});
- </script>
+ </script>
</head>
+
<body>
-<div id="container">
-<div id="center">
+ <?php include("../frontpage/shared/_header.php"); ?>
- <div id="topbar">
- <div id="memb_time">
- <span><? echo $showdate ?></span>
- </div>
- <div id="user_area">
- <p>[ <a href="https://www.hackits.be/forum">Back to the Hackits.be Forum</a> ] [ Logged in as: <b><? echo $usernametext; ?></b> ] [ All content is licensed under <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0</a> ]</p>
- </div>
- </div>
- <div id="header">
- <div id="logo">
- <a href="https://www.hackits.be/index.php"><img src="../forum/Themes/insidiousII2/images/theme/logo.png" alt="Hackits.be" title="Hackits.be" /></a>
- </div>
- </div>
+ <div class="container wrapper">
+ <p class="pbody date"><? echo date('F d, o, h:i:s A'); ?></p>
+ <div class="logo"><img src="../frontpage/img/hackits_logo.png" alt="Hackits.be" title="Hackits.be" /></div>
-<div id="tabs">
+ <div class="row">
+ <div class="span12">
- <ul>
- <li class="tab"><a rel="address:/overview" href="#overview">Course Overview</a></li>
- <li class="tab"><a rel="address:/course" href="#course">Current Course</a></li>
- <li class="tab"><a rel="address:/ranking" href="#ranking">Ranking List</a></li>
- <li class="tab"><a rel="address:/help" href="#help">Help</a></li>
- </ul>
+ <div class="tabbable">
+ <ul id="coursesTabs" class="nav nav-tabs">
+ <li class="active"><a href="#overview" data-toggle="tab">Course Overview</a></li>
+ <li class=""><a href="#course" data-toggle="tab">Current Course</a></li>
+ <li class=""><a href="#ranking" data-toggle="tab">Ranking List</a></li>
+ <li class=""><a href="#help" data-toggle="tab">Help</a></li>
+ </ul>
- <div id="overview">
- <? include("overview.php"); ?>
- </div>
+ <div id="tabContent" class="tab-content">
+ <div class="tab-pane fade active in" id="overview">
+ <? include("overview.php"); ?>
+ </div>
- <div id="course">
- <?
- require_once("courseheader.php");
- include("course.php");
- ?>
- </div>
+ <div class="tab-pane fade" id="course">
+ <?
+ require_once("courseheader.php");
+ include("course.php");
+ ?>
+ </div>
- <div id="ranking">
- <? include("ranking.php"); ?>
- </div>
+ <div class="tab-pane fade" id="ranking">
+ <? include("ranking.php"); ?>
+ </div>
- <div id="help">
- <? include("help.php"); ?>
- </div>
+ <div class="tab-pane fade" id="help">
+ <? include("help.php"); ?>
+ </div>
+ </div>
+ </div>
-</div> <!-- end-of-tabs -->
-</div> <!-- end-of-center -->
-</div> <!-- end-of-container -->
-<script>
- <? echo isset($loadcourse) ? $loadcourse : ''; ?>
-</script>
+ </div>
+ </div>
+ <?php include("../frontpage/shared/_footer.html"); ?>
+ </div>
<?php Utils::queryLog(); ?>
</body>
-</html>
+</html>
View
7 courses/js/jquery.scrollTo-1.4.3.1-min.js
@@ -0,0 +1,7 @@
+/**
+ * Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * @author Ariel Flesler
+ * @version 1.4.3.1
+ */
+;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
View
174 courses/old_index.php
@@ -0,0 +1,174 @@
+<?
+///////////////////////////////////////////////////////////////////////////////////
+// 888 888 d8888 .d8888b. 888 d8P 8888888 88888888888 .d8888b. //
+// 888 888 d88888 d88P Y88b 888 d8P 888 888 d88P Y88b //
+// 888 888 d88P888 888 888 888 d8P 888 888 Y88b. //
+// 8888888888 d88P 888 888 888d88K 888 888 "Y888b. //
+// 888 888 d88P 888 888 8888888b 888 888 "Y88b. //
+// 888 888 d88P 888 888 888 888 Y88b 888 888 "888 //
+// 888 888 d8888888888 Y88b d88P 888 Y88b 888 888 Y88b d88P //
+// 888 888 d88P 888 "Y8888P" 888 Y88b 8888888 888 "Y8888P" //
+///////////////////////////////////////////////////////////////////////////////////
+// //
+// File: courses/index.php //
+// Version: 0.1 //
+// Date: 13-10-2012 //
+// Author(s): Sling //
+// //
+// Description: Courses landing page //
+// Note: Can use $_GET['id'] to directly link to a course. //
+// //
+///////////////////////////////////////////////////////////////////////////////////
+
+require("../getsmfuser.php");
+
+// format date for display in header bar
+$showdate = date('F d, o, h:i:s A');
+
+?><!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Hackits.be - Courses</title>
+ <link rel="stylesheet" href="css/jquery-ui-1.8.17.custom.css">
+ <link rel="stylesheet" href="css/hackits-courses.css">
+ <script src="js/jquery-1.8.2.js"></script>
+ <script src="js/jquery.ui.core.js"></script>
+ <script src="js/jquery.ui.widget.js"></script>
+ <script src="js/jquery.ui.button.js"></script>
+ <script src="js/jquery.ui.position.js"></script>
+ <script src="js/jquery.ui.tabs.js"></script>
+ <script src="js/jquery.ui.dialog.js"></script>
+ <script src="js/jquery.ui.accordion.js"></script>
+ <script src="js/jquery.address.js"></script>
+<!-- <script src="js/jquery.history.js"></script>-->
+ <script>
+ $(function() {
+ var tabStates = { //default states
+ overview: '/overview/General',
+ course: '/course/General/Intro+to+Hackits+Courses/Hackits+Courses',
+ ranking: '/ranking',
+ help: '/help'
+ },
+ selectPart = function(part){
+ var part = $("#"+part);
+ part.show().siblings().hide();
+ },
+ getPanelIndex = function(str){
+ return $('.ui-accordion-header a').filter(function(){
+ return (new RegExp(str)).test($(this).text())
+ }).parent().index() / 2;
+ },
+ updateState = function(e){
+ var parts = e.path.split('/')
+ , tab = parts[1]
+ , category = parts[2] || ''
+ , course = parts[3] || ''
+ , chapter = parts[4] || '';
+ if(tab.length){ //select tab
+ $("#tabs").tabs("select", '#'+tab.replace(/^#/,''));
+ }
+ if(category.length){ //select accordion panel
+ $("#courses").accordion("activate", getPanelIndex(category));
+ $('a[href$="/course/'+category+'"]').siblings('input').attr('checked', true);
+ }
+ if(course.length){ //select course
+ $('a[href$="/course/'+category+'/'+course+'"]').siblings('input').attr('checked', true);
+ }
+ if(chapter.length){ //select chapter
+ $('#coursenavigation li.file a').each(function(){
+ $(this).closest('li').toggleClass('selected',
+ (new RegExp(e.path.replace(/\+/g, '\\+')+'$', 'i'))
+ .test($(this).attr('href')));
+ });
+ $('#coursecontent').html(
+ $('[id="'
+ + $('a[href$="/course/'+category+'/'+course+'/'+chapter+'"]:not([rel=overview])').data('chapterid')
+ + '"]').html());
+ }
+ };
+
+ $("#tabs").tabs({
+ select: function(event, ui){
+ var oldSelected = $('#tabs .ui-tabs-selected a').attr('href').replace(/^#/, '')
+ , newSelected = ui.tab.hash.replace(/^#/, '');
+ if((new RegExp('^/'+newSelected, 'i')).test($.address.path())){ return; }
+ tabStates[oldSelected] = $.address.path();
+ $.address.path(tabStates[newSelected]);
+ }
+ });
+ $("#courses").accordion({
+ autoHeight: false,
+ animated: false
+ });
+
+ $.address.init(function(e){
+ if($.address.path() === '/'){
+ $.address.path(tabStates.overview); //default to overview
+ }
+ $('#coursenavigation .file a[data-chapterid]').address(function() {
+ return $(this).attr('href');
+ });
+ tabStates[$.address.path().match(/^\/([^\/]+)/)[0].substr(1)] = $.address.path();
+ }).change(updateState)
+ .internalChange({}, updateState)
+ .externalChange({}, updateState);
+ });
+ </script>
+</head>
+<body>
+<div id="container">
+<div id="center">
+
+ <div id="topbar">
+ <div id="memb_time">
+ <span><? echo $showdate ?></span>
+ </div>
+ <div id="user_area">
+ <p>[ <a href="https://www.hackits.be/forum">Back to the Hackits.be Forum</a> ] [ Logged in as: <b><? echo $usernametext; ?></b> ] [ All content is licensed under <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0</a> ]</p>
+ </div>
+ </div>
+ <div id="header">
+ <div id="logo">
+ <a href="https://www.hackits.be/index.php"><img src="../forum/Themes/insidiousII2/images/theme/logo.png" alt="Hackits.be" title="Hackits.be" /></a>
+ </div>
+ </div>
+
+<div id="tabs">
+
+ <ul>
+ <li class="tab"><a rel="address:/overview" href="#overview">Course Overview</a></li>
+ <li class="tab"><a rel="address:/course" href="#course">Current Course</a></li>
+ <li class="tab"><a rel="address:/ranking" href="#ranking">Ranking List</a></li>
+ <li class="tab"><a rel="address:/help" href="#help">Help</a></li>
+ </ul>
+
+ <div id="overview">
+ <? include("overview.php"); ?>
+ </div>
+
+ <div id="course">
+ <?
+ require_once("courseheader.php");
+ include("course.php");
+ ?>
+ </div>
+
+ <div id="ranking">
+ <? include("ranking.php"); ?>
+ </div>
+
+ <div id="help">
+ <? include("help.php"); ?>
+ </div>
+
+</div> <!-- end-of-tabs -->
+</div> <!-- end-of-center -->
+</div> <!-- end-of-container -->
+
+<script>
+ <? echo isset($loadcourse) ? $loadcourse : ''; ?>
+</script>
+<?php Utils::queryLog(); ?>
+</body>
+</html>
View
6 courses/overview.php
@@ -46,9 +46,9 @@
// Make database connection
// make this an Affix?
- echo '<ul class="nav nav-tabs nav-stacked span2">';
+ echo '<ul class="nav nav-tabs nav-stacked span2 coursesList">';
foreach($categories as $id => $name) {
- echo '<li><a href="#'.urlencode($name).'">'.urlencode($name).'</a></li>';
+ echo '<li><a href="#/overview/'.strtolower($name).'">'.urlencode($name).'</a></li>';
}
echo '</ul>';
@@ -91,7 +91,7 @@
</tr>
°;
}
- echo "<h4 id=\"$name\"><span>$name</span><small>&nbsp;($nrcompleted/$nrtotal)</small></h4>";
+ echo "<h4 id='".strtolower($name)."'><span>$name</span><small>&nbsp;($nrcompleted/$nrtotal)</small></h4>";
echo "<p>$description[$id]</p>";
echo '<table class="table table-condensed table-bordered">';
echo '<thead><tr><th width="10px"></th><th>Title</th><th>Points</th><th>Level</th><th>Author</th><th>Passed</th></tr></thead><tbody>';
View
2  courses/ranking.php
@@ -56,7 +56,7 @@ function get_course_rank($courseId, $score){
}
$table[] = '</tbody>';
}
- echo '<table>'.implode('', $table).'</table>'
+ echo '<table class="table table-condensed table-bordered">'.implode('', $table).'</table>'
?>
View
157 courses/test.php
@@ -1,157 +0,0 @@
-<?
-///////////////////////////////////////////////////////////////////////////////////
-// 888 888 d8888 .d8888b. 888 d8P 8888888 88888888888 .d8888b. //
-// 888 888 d88888 d88P Y88b 888 d8P 888 888 d88P Y88b //
-// 888 888 d88P888 888 888 888 d8P 888 888 Y88b. //
-// 8888888888 d88P 888 888 888d88K 888 888 "Y888b. //
-// 888 888 d88P 888 888 8888888b 888 888 "Y88b. //
-// 888 888 d88P 888 888 888 888 Y88b 888 888 "888 //
-// 888 888 d8888888888 Y88b d88P 888 Y88b 888 888 Y88b d88P //
-// 888 888 d88P 888 "Y8888P" 888 Y88b 8888888 888 "Y8888P" //
-///////////////////////////////////////////////////////////////////////////////////
-// //
-// File: courses/index.php //
-// Version: 0.1 //
-// Date: 13-10-2012 //
-// Author(s): Sling //
-// //
-// Description: Courses landing page //
-// Note: Can use $_GET['id'] to directly link to a course. //
-// //
-///////////////////////////////////////////////////////////////////////////////////
-
-require("../getsmfuser.php");
-
-// format date for display in header bar
-$showdate = date('F d, o, h:i:s A');
-
-?><!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <meta name="description" content="Hackits.be" />
- <title>Hackits.be - Courses</title>
- <link rel="stylesheet" href="../frontpage/css/bootstrap.min.css">
- <link rel="stylesheet" href="../frontpage/css/custom.css">
- <script src="../frontpage/js/jquery-1.8.1.min.js"></script>
- <script src="../frontpage/js/bootstrap.min.js"></script>
- <script>
- // $(function() {
- // var tabStates = { //default states
- // overview: '/overview/General',
- // course: '/course/General/Intro+to+Hackits+Courses/Hackits+Courses',
- // ranking: '/ranking',
- // help: '/help'
- // },
- // selectPart = function(part){
- // var part = $("#"+part);
- // part.show().siblings().hide();
- // },
- // getPanelIndex = function(str){
- // return $('.ui-accordion-header a').filter(function(){
- // return (new RegExp(str)).test($(this).text())
- // }).parent().index() / 2;
- // },
- // updateState = function(e){
- // var parts = e.path.split('/')
- // , tab = parts[1]
- // , category = parts[2] || ''
- // , course = parts[3] || ''
- // , chapter = parts[4] || '';
- // if(tab.length){ //select tab
- // $("#tabs").tabs("select", '#'+tab.replace(/^#/,''));
- // }
- // if(category.length){ //select accordion panel
- // $("#courses").accordion("activate", getPanelIndex(category));
- // $('a[href$="/course/'+category+'"]').siblings('input').attr('checked', true);
- // }
- // if(course.length){ //select course
- // $('a[href$="/course/'+category+'/'+course+'"]').siblings('input').attr('checked', true);
- // }
- // if(chapter.length){ //select chapter
- // $('#coursenavigation li.file a').each(function(){
- // $(this).closest('li').toggleClass('selected',
- // (new RegExp(e.path.replace(/\+/g, '\\+')+'$', 'i'))
- // .test($(this).attr('href')));
- // });
- // $('#coursecontent').html(
- // $('[id="'
- // + $('a[href$="/course/'+category+'/'+course+'/'+chapter+'"]:not([rel=overview])').data('chapterid')
- // + '"]').html());
- // }
- // };
-
- // $("#tabs").tabs({
- // select: function(event, ui){
- // var oldSelected = $('#tabs .ui-tabs-selected a').attr('href').replace(/^#/, '')
- // , newSelected = ui.tab.hash.replace(/^#/, '');
- // if((new RegExp('^/'+newSelected, 'i')).test($.address.path())){ return; }
- // tabStates[oldSelected] = $.address.path();
- // $.address.path(tabStates[newSelected]);
- // }
- // });
- // $("#courses").accordion({
- // autoHeight: false,
- // animated: false
- // });
-
- // $.address.init(function(e){
- // if($.address.path() === '/'){
- // $.address.path(tabStates.overview); //default to overview
- // }
- // $('#coursenavigation .file a[data-chapterid]').address(function() {
- // return $(this).attr('href');
- // });
- // tabStates[$.address.path().match(/^\/([^\/]+)/)[0].substr(1)] = $.address.path();
- // }).change(updateState)
- // .internalChange({}, updateState)
- // .externalChange({}, updateState);
- // });
- </script>
-</head>
-
-<body>
- <?php include("../frontpage/shared/_header.php"); ?>
-
- <div class="container wrapper">
- <div class="logo"><img src="../frontpage/img/hackits_logo.png" alt="Hackits.be" title="Hackits.be" /></div>
-
- <div class="row">
- <div class="span12">
-
- <div class="tabbable">
- <ul id="coursesTabs" class="nav nav-tabs">
- <li class="active"><a href="#overview" data-toggle="tab">Course Overview</a></li>
- <li class=""><a href="#current" data-toggle="tab">Current Course</a></li>
- <li class=""><a href="#rank" data-toggle="tab">Ranking List</a></li>
- <li class=""><a href="#help" data-toggle="tab">Help</a></li>
- </ul>
-
- <div id="tabContent" class="tab-content">
- <div class="tab-pane fade active in" id="overview">
- <? include("overview.php"); ?>
- </div>
-
- <div class="tab-pane fade" id="current">
- <?
- require_once("courseheader.php");
- include("course.php");
- ?>
- </div>
-
- <div class="tab-pane fade" id="rank">
- </div>
-
- <div class="tab-pane fade" id="help">
- </div>
- </div>
- </div>
-
-
- </div>
- </div>
- <?php include("../frontpage/shared/_footer.html"); ?>
- </div>
-<?php Utils::queryLog(); ?>
-</body>
-</html>
View
1,092 frontpage/css/bootstrap-responsive.css
@@ -0,0 +1,1092 @@
+/*!
+ * Bootstrap Responsive v2.2.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+@-ms-viewport {
+ width: device-width;
+}
+
+.clearfix {
+ *zoom: 1;
+}
+
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ line-height: 0;
+ content: "";
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: 30px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+.visible-phone {
+ display: none !important;
+}
+
+.visible-tablet {
+ display: none !important;
+}
+
+.hidden-desktop {
+ display: none !important;
+}
+
+.visible-desktop {
+ display: inherit !important;
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+ .hidden-desktop {
+ display: inherit !important;
+ }
+ .visible-desktop {
+ display: none !important ;
+ }
+ .visible-tablet {
+ display: inherit !important;
+ }
+ .hidden-tablet {
+ display: none !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .hidden-desktop {
+ display: inherit !important;
+ }
+ .visible-desktop {
+ display: none !important;
+ }
+ .visible-phone {
+ display: inherit !important;
+ }
+ .hidden-phone {
+ display: none !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .row {
+ margin-left: -30px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ line-height: 0;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ min-height: 1px;
+ margin-left: 30px;
+ }
+ .container,
+ .navbar-static-top .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container {
+ width: 1170px;
+ }
+ .span12 {
+ width: 1170px;
+ }
+ .span11 {
+ width: 1070px;
+ }
+ .span10 {
+ width: 970px;
+ }
+ .span9 {
+ width: 870px;
+ }
+ .span8 {
+ width: 770px;
+ }
+ .span7 {
+ width: 670px;
+ }
+ .span6 {
+ width: 570px;
+ }
+ .span5 {
+ width: 470px;
+ }
+ .span4 {
+ width: 370px;
+ }
+ .span3 {
+ width: 270px;
+ }
+ .span2 {
+ width: 170px;
+ }
+ .span1 {
+ width: 70px;
+ }
+ .offset12 {
+ margin-left: 1230px;
+ }
+ .offset11 {
+ margin-left: 1130px;
+ }
+ .offset10 {
+ margin-left: 1030px;
+ }
+ .offset9 {
+ margin-left: 930px;
+ }
+ .offset8 {
+ margin-left: 830px;
+ }
+ .offset7 {
+ margin-left: 730px;
+ }
+ .offset6 {
+ margin-left: 630px;
+ }
+ .offset5 {
+ margin-left: 530px;
+ }
+ .offset4 {
+ margin-left: 430px;
+ }
+ .offset3 {
+ margin-left: 330px;
+ }
+ .offset2 {
+ margin-left: 230px;
+ }
+ .offset1 {
+ margin-left: 130px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ line-height: 0;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid [class*="span"] {
+ display: block;
+ float: left;
+ width: 100%;
+ min-height: 30px;
+ margin-left: 2.564102564102564%;
+ *margin-left: 2.5109110747408616%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .row-fluid [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 2.564102564102564%;
+ }
+ .row-fluid .span12 {
+ width: 100%;
+ *width: 99.94680851063829%;
+ }
+ .row-fluid .span11 {
+ width: 91.45299145299145%;
+ *width: 91.39979996362975%;
+ }
+ .row-fluid .span10 {
+ width: 82.90598290598291%;
+ *width: 82.8527914166212%;
+ }
+ .row-fluid .span9 {
+ width: 74.35897435897436%;
+ *width: 74.30578286961266%;
+ }
+ .row-fluid .span8 {
+ width: 65.81196581196582%;
+ *width: 65.75877432260411%;
+ }
+ .row-fluid .span7 {
+ width: 57.26495726495726%;
+ *width: 57.21176577559556%;
+ }
+ .row-fluid .span6 {
+ width: 48.717948717948715%;
+ *width: 48.664757228587014%;
+ }
+ .row-fluid .span5 {
+ width: 40.17094017094017%;
+ *width: 40.11774868157847%;
+ }
+ .row-fluid .span4 {
+ width: 31.623931623931625%;
+ *width: 31.570740134569924%;
+ }
+ .row-fluid .span3 {
+ width: 23.076923076923077%;
+ *width: 23.023731587561375%;
+ }
+ .row-fluid .span2 {
+ width: 14.52991452991453%;
+ *width: 14.476723040552828%;
+ }
+ .row-fluid .span1 {
+ width: 5.982905982905983%;
+ *width: 5.929714493544281%;
+ }
+ .row-fluid .offset12 {
+ margin-left: 105.12820512820512%;
+ *margin-left: 105.02182214948171%;
+ }
+ .row-fluid .offset12:first-child {
+ margin-left: 102.56410256410257%;
+ *margin-left: 102.45771958537915%;
+ }
+ .row-fluid .offset11 {
+ margin-left: 96.58119658119658%;
+ *margin-left: 96.47481360247316%;
+ }
+ .row-fluid .offset11:first-child {
+ margin-left: 94.01709401709402%;
+ *margin-left: 93.91071103837061%;
+ }
+ .row-fluid .offset10 {
+ margin-left: 88.03418803418803%;
+ *margin-left: 87.92780505546462%;
+ }
+ .row-fluid .offset10:first-child {
+ margin-left: 85.47008547008548%;
+ *margin-left: 85.36370249136206%;
+ }
+ .row-fluid .offset9 {
+ margin-left: 79.48717948717949%;
+ *margin-left: 79.38079650845607%;
+ }
+ .row-fluid .offset9:first-child {
+ margin-left: 76.92307692307693%;
+ *margin-left: 76.81669394435352%;
+ }
+ .row-fluid .offset8 {
+ margin-left: 70.94017094017094%;
+ *margin-left: 70.83378796144753%;
+ }
+ .row-fluid .offset8:first-child {
+ margin-left: 68.37606837606839%;
+ *margin-left: 68.26968539734497%;
+ }
+ .row-fluid .offset7 {
+ margin-left: 62.393162393162385%;
+ *margin-left: 62.28677941443899%;
+ }
+ .row-fluid .offset7:first-child {
+ margin-left: 59.82905982905982%;
+ *margin-left: 59.72267685033642%;
+ }
+ .row-fluid .offset6 {
+ margin-left: 53.84615384615384%;
+ *margin-left: 53.739770867430444%;
+ }
+ .row-fluid .offset6:first-child {
+ margin-left: 51.28205128205128%;
+ *margin-left: 51.175668303327875%;
+ }
+ .row-fluid .offset5 {
+ margin-left: 45.299145299145295%;
+ *margin-left: 45.1927623204219%;
+ }
+ .row-fluid .offset5:first-child {
+ margin-left: 42.73504273504273%;
+ *margin-left: 42.62865975631933%;
+ }
+ .row-fluid .offset4 {
+ margin-left: 36.75213675213675%;
+ *margin-left: 36.645753773413354%;
+ }
+ .row-fluid .offset4:first-child {
+ margin-left: 34.18803418803419%;
+ *margin-left: 34.081651209310785%;
+ }
+ .row-fluid .offset3 {
+ margin-left: 28.205128205128204%;
+ *margin-left: 28.0987452264048%;
+ }
+ .row-fluid .offset3:first-child {
+ margin-left: 25.641025641025642%;
+ *margin-left: 25.53464266230224%;
+ }
+ .row-fluid .offset2 {
+ margin-left: 19.65811965811966%;
+ *margin-left: 19.551736679396257%;
+ }
+ .row-fluid .offset2:first-child {
+ margin-left: 17.094017094017094%;
+ *margin-left: 16.98763411529369%;
+ }
+ .row-fluid .offset1 {
+ margin-left: 11.11111111111111%;
+ *margin-left: 11.004728132387708%;
+ }
+ .row-fluid .offset1:first-child {
+ margin-left: 8.547008547008547%;
+ *margin-left: 8.440625568285142%;
+ }
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 30px;
+ }
+ input.span12,
+ textarea.span12,
+ .uneditable-input.span12 {
+ width: 1156px;
+ }
+ input.span11,
+ textarea.span11,
+ .uneditable-input.span11 {
+ width: 1056px;
+ }
+ input.span10,
+ textarea.span10,
+ .uneditable-input.span10 {
+ width: 956px;
+ }
+ input.span9,
+ textarea.span9,
+ .uneditable-input.span9 {
+ width: 856px;
+ }
+ input.span8,
+ textarea.span8,
+ .uneditable-input.span8 {
+ width: 756px;
+ }
+ input.span7,
+ textarea.span7,
+ .uneditable-input.span7 {
+ width: 656px;
+ }
+ input.span6,
+ textarea.span6,
+ .uneditable-input.span6 {
+ width: 556px;
+ }
+ input.span5,
+ textarea.span5,
+ .uneditable-input.span5 {
+ width: 456px;
+ }
+ input.span4,
+ textarea.span4,
+ .uneditable-input.span4 {
+ width: 356px;
+ }
+ input.span3,
+ textarea.span3,
+ .uneditable-input.span3 {
+ width: 256px;
+ }
+ input.span2,
+ textarea.span2,
+ .uneditable-input.span2 {
+ width: 156px;
+ }
+ input.span1,
+ textarea.span1,
+ .uneditable-input.span1 {
+ width: 56px;
+ }
+ .thumbnails {
+ margin-left: -30px;
+ }
+ .thumbnails > li {
+ margin-left: 30px;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 979px) {
+ .row {
+ margin-left: -20px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ line-height: 0;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ min-height: 1px;
+ margin-left: 20px;
+ }
+ .container,
+ .navbar-static-top .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container {
+ width: 724px;
+ }
+ .span12 {
+ width: 724px;
+ }
+ .span11 {
+ width: 662px;
+ }
+ .span10 {
+ width: 600px;
+ }
+ .span9 {
+ width: 538px;
+ }
+ .span8 {
+ width: 476px;
+ }
+ .span7 {
+ width: 414px;
+ }
+ .span6 {
+ width: 352px;
+ }
+ .span5 {
+ width: 290px;
+ }
+ .span4 {
+ width: 228px;
+ }
+ .span3 {
+ width: 166px;
+ }
+ .span2 {
+ width: 104px;
+ }
+ .span1 {
+ width: 42px;
+ }
+ .offset12 {
+ margin-left: 764px;
+ }
+ .offset11 {
+ margin-left: 702px;
+ }
+ .offset10 {
+ margin-left: 640px;
+ }
+ .offset9 {
+ margin-left: 578px;
+ }
+ .offset8 {
+ margin-left: 516px;
+ }
+ .offset7 {
+ margin-left: 454px;
+ }
+ .offset6 {
+ margin-left: 392px;
+ }
+ .offset5 {
+ margin-left: 330px;
+ }
+ .offset4 {
+ margin-left: 268px;
+ }
+ .offset3 {
+ margin-left: 206px;
+ }
+ .offset2 {
+ margin-left: 144px;
+ }
+ .offset1 {
+ margin-left: 82px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ line-height: 0;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid [class*="span"] {
+ display: block;
+ float: left;
+ width: 100%;
+ min-height: 30px;
+ margin-left: 2.7624309392265194%;
+ *margin-left: 2.709239449864817%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .row-fluid [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 2.7624309392265194%;
+ }
+ .row-fluid .span12 {
+ width: 100%;
+ *width: 99.94680851063829%;
+ }
+ .row-fluid .span11 {
+ width: 91.43646408839778%;
+ *width: 91.38327259903608%;
+ }
+ .row-fluid .span10 {
+ width: 82.87292817679558%;
+ *width: 82.81973668743387%;
+ }
+ .row-fluid .span9 {
+ width: 74.30939226519337%;
+ *width: 74.25620077583166%;
+ }
+ .row-fluid .span8 {
+ width: 65.74585635359117%;
+ *width: 65.69266486422946%;
+ }
+ .row-fluid .span7 {
+ width: 57.18232044198895%;
+ *width: 57.12912895262725%;
+ }
+ .row-fluid .span6 {
+ width: 48.61878453038674%;
+ *width: 48.56559304102504%;
+ }
+ .row-fluid .span5 {
+ width: 40.05524861878453%;
+ *width: 40.00205712942283%;
+ }
+ .row-fluid .span4 {
+ width: 31.491712707182323%;
+ *width: 31.43852121782062%;
+ }
+ .row-fluid .span3 {
+ width: 22.92817679558011%;
+ *width: 22.87498530621841%;
+ }
+ .row-fluid .span2 {
+ width: 14.3646408839779%;
+ *width: 14.311449394616199%;
+ }
+ .row-fluid .span1 {
+ width: 5.801104972375691%;
+ *width: 5.747913483013988%;
+ }
+ .row-fluid .offset12 {
+ margin-left: 105.52486187845304%;
+ *margin-left: 105.41847889972962%;
+ }
+ .row-fluid .offset12:first-child {
+ margin-left: 102.76243093922652%;
+ *margin-left: 102.6560479605031%;
+ }
+ .row-fluid .offset11 {
+ margin-left: 96.96132596685082%;
+ *margin-left: 96.8549429881274%;
+ }
+ .row-fluid .offset11:first-child {
+ margin-left: 94.1988950276243%;
+ *margin-left: 94.09251204890089%;
+ }
+ .row-fluid .offset10 {
+ margin-left: 88.39779005524862%;
+ *margin-left: 88.2914070765252%;
+ }
+ .row-fluid .offset10:first-child {
+ margin-left: 85.6353591160221%;
+ *margin-left: 85.52897613729868%;
+ }
+ .row-fluid .offset9 {
+ margin-left: 79.8342541436464%;
+ *margin-left: 79.72787116492299%;
+ }
+ .row-fluid .offset9:first-child {
+ margin-left: 77.07182320441989%;
+ *margin-left: 76.96544022569647%;
+ }
+ .row-fluid .offset8 {
+ margin-left: 71.2707182320442%;
+ *margin-left: 71.16433525332079%;
+ }
+ .row-fluid .offset8:first-child {
+ margin-left: 68.50828729281768%;
+ *margin-left: 68.40190431409427%;
+ }
+ .row-fluid .offset7 {
+ margin-left: 62.70718232044199%;
+ *margin-left: 62.600799341718584%;
+ }
+ .row-fluid .offset7:first-child {
+ margin-left: 59.94475138121547%;
+ *margin-left: 59.838368402492065%;
+ }
+ .row-fluid .offset6 {
+ margin-left: 54.14364640883978%;
+ *margin-left: 54.037263430116376%;
+ }
+ .row-fluid .offset6:first-child {
+ margin-left: 51.38121546961326%;
+ *margin-left: 51.27483249088986%;
+ }
+ .row-fluid .offset5 {
+ margin-left: 45.58011049723757%;
+ *margin-left: 45.47372751851417%;
+ }
+ .row-fluid .offset5:first-child {
+ margin-left: 42.81767955801105%;
+ *margin-left: 42.71129657928765%;
+ }
+ .row-fluid .offset4 {
+ margin-left: 37.01657458563536%;
+ *margin-left: 36.91019160691196%;
+ }
+ .row-fluid .offset4:first-child {
+ margin-left: 34.25414364640884%;
+ *margin-left: 34.14776066768544%;
+ }
+ .row-fluid .offset3 {
+ margin-left: 28.45303867403315%;
+ *margin-left: 28.346655695309746%;
+ }
+ .row-fluid .offset3:first-child {
+ margin-left: 25.69060773480663%;
+ *margin-left: 25.584224756083227%;
+ }
+ .row-fluid .offset2 {
+ margin-left: 19.88950276243094%;
+ *margin-left: 19.783119783707537%;
+ }
+ .row-fluid .offset2:first-child {
+ margin-left: 17.12707182320442%;
+ *margin-left: 17.02068884448102%;
+ }
+ .row-fluid .offset1 {
+ margin-left: 11.32596685082873%;
+ *margin-left: 11.219583872105325%;
+ }
+ .row-fluid .offset1:first-child {
+ margin-left: 8.56353591160221%;
+ *margin-left: 8.457152932878806%;
+ }
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 20px;
+ }
+ input.span12,
+ textarea.span12,
+ .uneditable-input.span12 {
+ width: 710px;
+ }
+ input.span11,
+ textarea.span11,
+ .uneditable-input.span11 {
+ width: 648px;
+ }
+ input.span10,
+ textarea.span10,
+ .uneditable-input.span10 {
+ width: 586px;
+ }
+ input.span9,
+ textarea.span9,
+ .uneditable-input.span9 {
+ width: 524px;
+ }
+ input.span8,
+ textarea.span8,
+ .uneditable-input.span8 {
+ width: 462px;
+ }
+ input.span7,
+ textarea.span7,
+ .uneditable-input.span7 {
+ width: 400px;
+ }
+ input.span6,
+ textarea.span6,
+ .uneditable-input.span6 {
+ width: 338px;
+ }
+ input.span5,
+ textarea.span5,
+ .uneditable-input.span5 {
+ width: 276px;
+ }
+ input.span4,
+ textarea.span4,
+ .uneditable-input.span4 {
+ width: 214px;
+ }
+ input.span3,
+ textarea.span3,
+ .uneditable-input.span3 {
+ width: 152px;
+ }
+ input.span2,
+ textarea.span2,
+ .uneditable-input.span2 {
+ width: 90px;
+ }
+ input.span1,
+ textarea.span1,
+ .uneditable-input.span1 {
+ width: 28px;
+ }
+}
+
+@media (max-width: 767px) {
+ body {
+ padding-right: 20px;
+ padding-left: 20px;
+ }
+ .navbar-fixed-top,
+ .navbar-fixed-bottom,
+ .navbar-static-top {
+ margin-right: -20px;
+ margin-left: -20px;
+ }
+ .container-fluid {
+ padding: 0;
+ }
+ .dl-horizontal dt {
+ float: none;
+ width: auto;
+ clear: none;
+ text-align: left;
+ }
+ .dl-horizontal dd {
+ margin-left: 0;
+ }
+ .container {
+ width: auto;
+ }
+ .row-fluid {
+ width: 100%;
+ }
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ .thumbnails > li {
+ float: none;
+ margin-left: 0;
+ }
+ [class*="span"],
+ .uneditable-input[class*="span"],
+ .row-fluid [class*="span"] {
+ display: block;
+ float: none;
+ width: 100%;
+ margin-left: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .span12,
+ .row-fluid .span12 {
+ width: 100%;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .row-fluid [class*="offset"]:first-child {
+ margin-left: 0;
+ }
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ display: block;
+ width: 100%;
+ min-height: 30px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block;
+ width: auto;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 0;
+ }
+ .modal {
+ position: fixed;
+ top: 20px;
+ right: 20px;
+ left: 20px;
+ width: auto;
+ margin: 0;
+ }
+ .modal.fade {
+ top: -100px;
+ }
+ .modal.fade.in {
+ top: 20px;
+ }
+}
+
+@media (max-width: 480px) {
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0);
+ }
+ .page-header h1 small {
+ display: block;
+ line-height: 20px;
+ }
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+ .form-horizontal .control-label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ .form-horizontal .controls {
+ margin-left: 0;
+ }
+ .form-horizontal .control-list {
+ padding-top: 0;
+ }
+ .form-horizontal .form-actions {
+ padding-right: 10px;
+ padding-left: 10px;
+ }
+ .media .pull-left,
+ .media .pull-right {
+ display: block;
+ float: none;
+ margin-bottom: 10px;
+ }
+ .media-object {
+ margin-right: 0;
+ margin-left: 0;
+ }
+ .modal {
+ top: 10px;
+ right: 10px;
+ left: 10px;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+ .carousel-caption {
+ position: static;
+ }
+}
+
+@media (max-width: 979px) {
+ body {
+ padding-top: 0;
+ }
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: 20px;
+ }
+ .navbar-fixed-bottom {
+ margin-top: 20px;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ .navbar .brand {
+ padding-right: 10px;
+ padding-left: 10px;
+ margin: 0 0 0 -5px;
+ }
+ .nav-collapse {
+ clear: both;
+ }
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 10px;
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: #777777;
+ text-shadow: none;
+ }
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 9px 15px;
+ font-weight: bold;
+ color: #777777;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ }
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .dropdown-menu a:hover {
+ background-color: #f2f2f2;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a,
+ .navbar-inverse .nav-collapse .dropdown-menu a {
+ color: #999999;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover {
+ background-color: #111111;
+ }
+ .nav-collapse.in .btn-group {
+ padding: 0;
+ margin-top: 5px;
+ }
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ display: none;
+ float: none;
+ max-width: none;
+ padding: 0;
+ margin: 0 15px;
+ background-color: transparent;
+ border: none;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ }
+ .nav-collapse .open > .dropdown-menu {
+ display: block;
+ }
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ .nav-collapse .nav > li > .dropdown-menu:before,
+ .nav-collapse .nav > li > .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: 10px 15px;
+ margin: 10px 0;
+ border-top: 1px solid #f2f2f2;
+ border-bottom: 1px solid #f2f2f2;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ }
+ .navbar-inverse .nav-collapse .navbar-form,
+ .navbar-inverse .nav-collapse .navbar-search {
+ border-top-color: #111111;
+ border-bottom-color: #111111;
+ }
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ .nav-collapse,
+ .nav-collapse.collapse {
+ height: 0;
+ overflow: hidden;
+ }
+ .navbar .btn-navbar {
+ display: block;
+ }
+ .navbar-static .navbar-inner {
+ padding-right: 10px;
+ padding-left: 10px;
+ }
+}
+
+@media (min-width: 980px) {
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+}
View
6,039 frontpage/css/bootstrap.css
6,039 additions, 0 deletions not shown
View
68 frontpage/css/custom.css
@@ -13,7 +13,6 @@ header .navbar .navbar-inner .container {
}
.wrapper {
background-color: #fff;
- min-height: 500px;
-webkit-box-shadow: inset 0 0px 1px rgba(0,0,0,0.2),0 1px 10px rgba(0,0,0,0.2);
-moz-box-shadow: inset 0 0px 1px rgba(0,0,0,0.2),0 1px 10px rgba(0,0,0,0.2);
box-shadow: inset 0 0px 1px rgba(0,0,0,0.2),0 1px 10px rgba(0,0,0,0.2);
@@ -145,14 +144,22 @@ footer ul li a:active {
#coursesTabs > li > a {
border-bottom: 0px;
}
-#coursesTabs > .active > a, #coursesTabs > .active > a:hover > li > a {
+#coursesTabs > li > a:hover {
+ background-color: #fff;
+ color:#666;
+ border-bottom-color: transparent;
+}
+#coursesTabs > .active > a, #coursesTabs > .active > a:hover {
border:1px solid #ddd;
border-bottom-color: transparent;
+ background-color: #fff;
+ color:#666;
+ /*text-decoration: underline;*/
}
#tabContent {
- padding:25px 7px 7px 0;
- border:1px solid #ddd;
- border-top:0px;
+ padding:15px 7px 7px 0;
+ /*border:1px solid #ddd;*/
+ /*border-top:0px;*/
-webkit-border-radius: 0 0 4px 4px ;
-moz-border-radius: 0 0 4px 4px;
border-radius: 0 0 4px 4px ;
@@ -164,34 +171,41 @@ footer ul li a:active {
color: #333;
text-decoration: underline;
}
- ul {
-}
+#overview > ul {
+ margin-left: 0;
+ /*background-color: #eee;*/
-#current ul.tree {
+ /*border-color: #ddd;*/
+}
+#course ul.tree {
/*padding-right: 60px;*/
padding:15px 10px 15px 10px;
- border:0px;
+ /*border:0px;*/
-webkit-box-shadow: 0;
-moz-box-shadow: 0;
box-shadow: 0;
- /*background-color: #ddd;*/
+ background-color: #f4eff0;
border:1px solid #ddd;
- border-left:0;
+ /*border-left:0;*/
/*-webkit-border-radius: 6px;*/
/*-moz-border-radius: 6px;*/
/*border-radius: 6px;*/
+ -webkit-border-radius: 4px ;
+ -moz-border-radius: 4px;
+ border-radius: 4px ;
+ width:250px;
}
-#current ul {
+#course ul {
font-size: 15px;
font-weight: bold;
}
-#current ul.tree ul {
+#course ul.tree ul {
margin-left:10px;
}
-ul.tree > li {
+ul.tree > li, a.title {
color:#333;
}
-#current ul.tree li.level1 {
+#course ul.tree li.level1 {
margin-left: 10px;
font-size: 15px;
font-weight: bold;
@@ -206,9 +220,25 @@ ul.tree > li {
.level1 ul a:hover {
color:#333;
}
-span.underline {
- text-decoration: underline;
-}
-.tree .icon-folder-open, .tree .icon-file, .tree .icon-tasks, .tree .icon-certificate {
+/*a.title {*/
+ /*text-decoration: underline;*/
+ /*cursor: pointer;*/
+/*}*/
+.tree .icon-folder-open, .tree .icon-folder-close, .tree .icon-file, .tree .icon-tasks, .tree .icon-certificate {
padding-right:4px;
}
+
+#ranking > table > thead tr:first-child {
+ background:#f4eff0;
+}
+header .navbar-inverse a.brand, header .navbar-inverse a.brand:hover {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ font-size: 13px;
+ color:#DB0C41;
+ color:#fff;
+}
+.date {
+ padding:10px 10px 0 0;
+ font-weight: bold;
+ text-align: right;
+}
View
8 frontpage/shared/_header.php
@@ -12,14 +12,14 @@
<li class="<? if(isCurrentPage($challengesdir.'/index.php')) echo 'active'; ?>">
<a href="<? echo $challengesdir; ?>">Challenges</a>
</li>
- <li class="<? if(isCurrentPage($coursesdir.'/test.php')) echo 'active'; ?>">
+ <li class="<? if(isCurrentPage($coursesdir.'/index.php')) echo 'active'; ?>">
<a href="<? echo $coursesdir; ?>">Courses</a>
</li>
- <li><? if(!$loggedin) { ?><a href="<? echo $forumdir.'/index.php?action=login'; ?>">Login</a><? }
- else { ?> Logged in as: <a href="forum/index.php?action=profile">[ <? echo $usernametext; ?> ]</a><? } ?></li>
+
</ul>
<ul class="nav pull-right">
- <li><a href="#"><? echo date('F d, o, h:i:s A'); ?></a></li>
+ <li><? if(!$loggedin) { ?><a href="<? echo $forumdir.'/index.php?action=login'; ?>">Login</a><? }
+ else { ?> Logged in as: <a href="forum/index.php?action=profile">[ <? echo $usernametext; ?> ]</a><? } ?></li>
</ul>
</div>
</div>
View
4 index.php
@@ -29,8 +29,9 @@
<meta charset="utf-8">
<meta name="description" content="Hackits.be" />
<title>Hackits.be</title>
- <link rel="stylesheet" href="frontpage/css/bootstrap.min.css">
+ <link rel="stylesheet" href="frontpage/css/bootstrap.css">
<link rel="stylesheet" href="frontpage/css/custom.css">
+ <link rel="stylesheet" href="frontpage/css/bootstrap-responsive.css">
<script src="frontpage/js/jquery-1.8.1.min.js"></script>
</head>
@@ -38,6 +39,7 @@
<?php include("frontpage/shared/_header.php"); ?>
<div class="container wrapper">
+ <p class="pbody date"><? echo date('F d, o, h:i:s A'); ?></p>
<div class="logo"><img src="frontpage/img/hackits_logo.png" alt="Hackits.be" title="Hackits.be" /></div>
<p class="lead">
<span class="paragraph_lead">Welcome to Hackits,</span> a community that's all about learning the art of hacking, sharing knowledge and demonstrating expertise by solving challenges and doing courses.<br /> Start by checking out some of [parts of the site]. Make sure to register to keep track of your score and have access to all parts of the website.
View
13 settings.php
@@ -83,6 +83,7 @@
//////////////////////
// Paths settings //
//////////////////////
+//TODO: rewrite those using define();
$rootdir = '/var/www/hackits';
$subdir = '/hackits';
@@ -99,9 +100,17 @@
//////////////////////
// Useful methods //
//////////////////////
-// wtf rewrite this method
function isCurrentPage($path) {
$currentPath = pathinfo( $_SERVER['PHP_SELF'] );
+ $currentPath = $currentPath['dirname'].'/'.$currentPath['basename'];
+
$path = pathinfo($path);
- return $currentPath['dirname']===$path['dirname'] && $currentPath['basename']===$path['basename'];
+ $path = $path['dirname'].'/'.$path['basename'];
+
+ return $currentPath===$path;
+}
+function renameTitle($title) {
+ $title = strtolower($title);
+ $title = str_replace(" ","_", $title);
+ return $title;
}
Please sign in to comment.
Something went wrong with that request. Please try again.