├── .gitignore ├── README.md ├── application ├── controllers │ └── example.php ├── core │ ├── MY_Loader.php │ └── MY_Output.php ├── libraries │ └── autoload │ │ ├── autoload_controller.php │ │ └── autoload_functions.php └── views │ ├── ci_simplicity │ ├── example_1.php │ ├── example_2.php │ ├── example_3.php │ ├── example_4.php │ ├── sidebar.php │ └── welcome.php │ └── themes │ ├── blank.php │ ├── default.php │ └── simple.php ├── assets └── themes │ └── default │ ├── css │ ├── bootstrap-responsive.css │ ├── bootstrap-responsive.min.css │ ├── bootstrap.css │ ├── bootstrap.min.css │ ├── custom.css │ ├── general.css │ └── index.html │ ├── hero_files │ ├── bootstrap-alert.js │ ├── bootstrap-button.js │ ├── bootstrap-carousel.js │ ├── bootstrap-collapse.js │ ├── bootstrap-dropdown.js │ ├── bootstrap-modal.js │ ├── bootstrap-popover.js │ ├── bootstrap-responsive.css │ ├── bootstrap-scrollspy.js │ ├── bootstrap-tab.js │ ├── bootstrap-tooltip.js │ ├── bootstrap-transition.js │ ├── bootstrap-typeahead.js │ ├── bootstrap.css │ ├── index.html │ └── jquery.js │ ├── images │ ├── facebook-thumb.png │ ├── favicon.png │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ ├── index.html │ └── logo.png │ ├── index.html │ └── js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── index.html │ └── jquery-1.9.1.min.js ├── change_log.txt └── license-codeigniter-simplicity.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .htaccess 2 | .buildpath 3 | .settings/ 4 | .idea/ 5 | .project 6 | system/ 7 | user_guide/ 8 | application/.htaccess 9 | application/cache/ 10 | application/config/* 11 | application/views/errors/* 12 | application/controllers/index.html 13 | application/controllers/examples2.php 14 | application/controllers/build.php 15 | application/controllers/welcome.php 16 | application/views/example2.php 17 | application/core/index.html 18 | application/errors/ 19 | application/helpers/ 20 | application/hooks/ 21 | application/index.html 22 | application/language/ 23 | application/libraries/index.html 24 | application/libraries/grocery_crud_extended.php 25 | application/logs/ 26 | assets/uploads/images/ 27 | application/models/index.html 28 | application/third_party/ 29 | application/views/index.html 30 | application/views/welcome_message.php 31 | index.php 32 | license.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Codeigniter Simplicity 2 | ============= 3 | http://www.grocerycrud.com/codeigniter-simplicity -------------------------------------------------------------------------------- /application/controllers/example.php: -------------------------------------------------------------------------------- 1 | load->helper('url'); 10 | 11 | $this->_init(); 12 | } 13 | 14 | private function _init() 15 | { 16 | $this->output->set_template('default'); 17 | 18 | $this->load->js('assets/themes/default/js/jquery-1.9.1.min.js'); 19 | $this->load->js('assets/themes/default/hero_files/bootstrap-transition.js'); 20 | $this->load->js('assets/themes/default/hero_files/bootstrap-collapse.js'); 21 | } 22 | 23 | public function index() 24 | { 25 | $this->load->view('ci_simplicity/welcome'); 26 | } 27 | 28 | public function example_1() 29 | { 30 | $this->load->view('ci_simplicity/example_1'); 31 | } 32 | 33 | public function example_2() 34 | { 35 | $this->output->set_template('simple'); 36 | $this->load->view('ci_simplicity/example_2'); 37 | } 38 | 39 | public function example_3() 40 | { 41 | $this->load->section('sidebar', 'ci_simplicity/sidebar'); 42 | $this->load->view('ci_simplicity/example_3'); 43 | } 44 | 45 | public function example_4() 46 | { 47 | $this->output->unset_template(); 48 | $this->load->view('ci_simplicity/example_4'); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /application/core/MY_Loader.php: -------------------------------------------------------------------------------- 1 | 19 | */ 20 | class MY_Loader extends CI_Loader { 21 | 22 | private $_javascript = array(); 23 | private $_css = array(); 24 | private $_inline_scripting = array("infile"=>"", "stripped"=>"", "unstripped"=>""); 25 | private $_sections = array(); 26 | private $_cached_css = array(); 27 | private $_cached_js = array(); 28 | 29 | function __construct(){ 30 | 31 | if(!defined('SPARKPATH')) 32 | { 33 | define('SPARKPATH', 'sparks/'); 34 | } 35 | 36 | parent::__construct(); 37 | } 38 | 39 | function css(){ 40 | $css_files = func_get_args(); 41 | 42 | foreach($css_files as $css_file){ 43 | $css_file = substr($css_file,0,1) == '/' ? substr($css_file,1) : $css_file; 44 | 45 | $is_external = false; 46 | if(is_bool($css_file)) 47 | continue; 48 | 49 | $is_external = preg_match("/^https?:\/\//", trim($css_file)) > 0 ? true : false; 50 | 51 | if(!$is_external) 52 | if(!file_exists($css_file)) 53 | show_error("Cannot locate stylesheet file: {$css_file}."); 54 | 55 | $css_file = $is_external == FALSE ? base_url() . $css_file : $css_file; 56 | 57 | if(!in_array($css_file, $this->_css)) 58 | $this->_css[] = $css_file; 59 | } 60 | return; 61 | } 62 | 63 | function js(){ 64 | $script_files = func_get_args(); 65 | 66 | foreach($script_files as $script_file){ 67 | $script_file = substr($script_file,0,1) == '/' ? substr($script_file,1) : $script_file; 68 | 69 | $is_external = false; 70 | if(is_bool($script_file)) 71 | continue; 72 | 73 | $is_external = preg_match("/^https?:\/\//", trim($script_file)) > 0 ? true : false; 74 | 75 | if(!$is_external) 76 | if(!file_exists($script_file)) 77 | show_error("Cannot locate javascript file: {$script_file}."); 78 | 79 | $script_file = $is_external == FALSE ? base_url() . $script_file : $script_file; 80 | 81 | if(!in_array($script_file, $this->_javascript)) 82 | $this->_javascript[] = $script_file ; 83 | 84 | } 85 | 86 | return; 87 | } 88 | 89 | function start_inline_scripting(){ 90 | ob_start(); 91 | } 92 | 93 | function end_inline_scripting($strip_tags=true, $append_to_file=true){ 94 | $source = ob_get_clean(); 95 | 96 | if($strip_tags){ 97 | $source = preg_replace("/]*>/", '', $source); 98 | $source = preg_replace("/<\/script>/", '', $source); 99 | } 100 | 101 | if($append_to_file){ 102 | 103 | $this->_inline_scripting['infile'] .= $source; 104 | 105 | }else{ 106 | 107 | if($strip_tags){ 108 | $this->_inline_scripting['stripped'] .= $source; 109 | }else{ 110 | $this->_inline_scripting['unstripped'] .= $source; 111 | } 112 | } 113 | } 114 | 115 | function get_css_files(){ 116 | return $this->_css; 117 | } 118 | 119 | function get_cached_css_files(){ 120 | return $this->_cached_css; 121 | } 122 | 123 | function get_js_files(){ 124 | return $this->_javascript; 125 | } 126 | 127 | function get_cached_js_files(){ 128 | return $this->_cached_js; 129 | } 130 | 131 | function get_inline_scripting(){ 132 | return $this->_inline_scripting; 133 | } 134 | 135 | /** 136 | * Loads the requested view in the given area 137 | * Useful if you want to fill a side area with data 138 | * Note: Areas are defined by the template, those might differs in each template. 139 | * 140 | * @param string $area 141 | * @param string $view 142 | * @param array $data 143 | * @return string 144 | */ 145 | function section($area, $view, $data=array()){ 146 | if(!array_key_exists($area, $this->_sections)) 147 | $this->_sections[$area] = array(); 148 | 149 | $content = $this->view($view, $data, true); 150 | 151 | $checksum = md5( $view . serialize($data) ); 152 | 153 | $this->_sections[$area][$checksum] = $content; 154 | 155 | return $checksum; 156 | } 157 | 158 | function get_section($section_name) 159 | { 160 | $section_string = ''; 161 | if(isset($this->_sections[$section_name])) 162 | foreach($this->_sections[$section_name] as $section) 163 | $section_string .= $section; 164 | 165 | return $section_string; 166 | } 167 | /** 168 | * Gets the declared sections 169 | * 170 | * @return object 171 | */ 172 | function get_sections(){ 173 | return (object)$this->_sections; 174 | } 175 | 176 | /* 177 | * Can load a view file from an absolute path and 178 | * relative to the CodeIgniter index.php file 179 | * Handy if you have views outside the usual CI views dir 180 | */ 181 | function viewfile($viewfile, $vars = array(), $return = FALSE) 182 | { 183 | return $this->_ci_load( 184 | array('_ci_path' => $viewfile, 185 | '_ci_vars' => $this->_ci_object_to_array($vars), 186 | '_ci_return' => $return) 187 | ); 188 | } 189 | 190 | 191 | /** 192 | * Specific Autoloader (99% ripped from the parent) 193 | * 194 | * The config/autoload.php file contains an array that permits sub-systems, 195 | * libraries, and helpers to be loaded automatically. 196 | * 197 | * @access protected 198 | * @param array 199 | * @return void 200 | */ 201 | function _ci_autoloader($basepath = NULL) 202 | { 203 | if($basepath !== NULL) 204 | { 205 | $autoload_path = $basepath.'config/autoload.php'; 206 | } 207 | else 208 | { 209 | $autoload_path = APPPATH.'config/autoload.php'; 210 | } 211 | 212 | if(! file_exists($autoload_path)) 213 | { 214 | return FALSE; 215 | } 216 | 217 | include_once($autoload_path); 218 | 219 | if ( ! isset($autoload)) 220 | { 221 | return FALSE; 222 | } 223 | 224 | // Autoload packages 225 | if (isset($autoload['packages'])) 226 | { 227 | foreach ($autoload['packages'] as $package_path) 228 | { 229 | $this->add_package_path($package_path); 230 | } 231 | } 232 | 233 | // Autoload sparks 234 | if (isset($autoload['sparks'])) 235 | { 236 | foreach ($autoload['sparks'] as $spark) 237 | { 238 | $this->spark($spark); 239 | } 240 | } 241 | 242 | if (isset($autoload['config'])) 243 | { 244 | // Load any custom config file 245 | if (count($autoload['config']) > 0) 246 | { 247 | $CI =& get_instance(); 248 | foreach ($autoload['config'] as $key => $val) 249 | { 250 | $CI->config->load($val); 251 | } 252 | } 253 | } 254 | 255 | // Autoload helpers and languages 256 | foreach (array('helper', 'language') as $type) 257 | { 258 | if (isset($autoload[$type]) AND count($autoload[$type]) > 0) 259 | { 260 | $this->$type($autoload[$type]); 261 | } 262 | } 263 | 264 | // A little tweak to remain backward compatible 265 | // The $autoload['core'] item was deprecated 266 | if ( ! isset($autoload['libraries']) AND isset($autoload['core'])) 267 | { 268 | $autoload['libraries'] = $autoload['core']; 269 | } 270 | 271 | // Load libraries 272 | if (isset($autoload['libraries']) AND count($autoload['libraries']) > 0) 273 | { 274 | // Load the database driver. 275 | if (in_array('database', $autoload['libraries'])) 276 | { 277 | $this->database(); 278 | $autoload['libraries'] = array_diff($autoload['libraries'], array('database')); 279 | } 280 | 281 | // Load all other libraries 282 | foreach ($autoload['libraries'] as $item) 283 | { 284 | $this->library($item); 285 | } 286 | } 287 | 288 | // Autoload models 289 | if (isset($autoload['model'])) 290 | { 291 | $this->model($autoload['model']); 292 | } 293 | } 294 | } 295 | 296 | /* End of file user */ 297 | /* Location: file_path */ -------------------------------------------------------------------------------- /application/core/MY_Output.php: -------------------------------------------------------------------------------- 1 | 20 | */ 21 | class MY_Output extends CI_Output { 22 | const OUTPUT_MODE_NORMAL = 10; 23 | const OUTPUT_MODE_TEMPLATE = 11; 24 | const TEMPLATE_ROOT = "themes/"; 25 | 26 | private $_title = ""; 27 | private $_charset = "utf-8"; 28 | private $_language = "en-us"; 29 | private $_canonical = ""; 30 | private $_meta = array("keywords"=>array(), "description"=>null); 31 | private $_rdf = array("keywords"=>array(), "description"=>null); 32 | private $_template = null; 33 | private $_mode = self::OUTPUT_MODE_NORMAL; 34 | private $_messages = array("error"=>"", "info"=>"", "debug"=>""); 35 | private $_output_data = array(); 36 | 37 | /** 38 | * Set the template that should be contain the output
Note: This method set the output mode to MY_Output::OUTPUT_MODE_TEMPLATE 39 | * 40 | * @uses MY_Output::set_mode() 41 | * @param string $template_view 42 | * @return void 43 | */ 44 | function set_template($template_view){ 45 | $this->set_mode(self::OUTPUT_MODE_TEMPLATE); 46 | $template_view = str_replace(".php", "", $template_view); 47 | $this->_template = self::TEMPLATE_ROOT . $template_view; 48 | } 49 | 50 | /**set_mode alias 51 | * 52 | * Enter description here ... 53 | */ 54 | function unset_template() 55 | { 56 | $this->_template = null; 57 | $this->set_mode(self::OUTPUT_MODE_NORMAL); 58 | } 59 | 60 | public function set_common_meta($title, $description, $keywords) 61 | { 62 | $this->set_meta("description", $description); 63 | $this->set_meta("keywords", $keywords); 64 | $this->set_title($title); 65 | } 66 | 67 | /** 68 | * Sets the way that the final output should be handled.

Accepts two possible values MY_Output::OUTPUT_MODE_NORMAL for direct output 69 | * or MY_Output::OUTPUT_MODE_TEMPLATE for displaying the output contained in the specified template.

70 | * 71 | * @throws Exception when the given mode hasn't defined. 72 | * @param integer $mode one of the constants MY_Output::OUTPUT_MODE_NORMAL or MY_Output::OUTPUT_MODE_TEMPLATE 73 | * @return void 74 | */ 75 | function set_mode($mode){ 76 | 77 | switch($mode){ 78 | case self::OUTPUT_MODE_NORMAL: 79 | case self::OUTPUT_MODE_TEMPLATE: 80 | $this->_mode = $mode; 81 | break; 82 | default: 83 | throw new Exception(get_instance()->lang->line("Unknown output mode.")); 84 | } 85 | 86 | return; 87 | } 88 | 89 | /** 90 | * Set the title of a page, it works only with MY_Output::OUTPUT_MODE_TEMPLATE 91 | * 92 | * 93 | * @param string $title 94 | * @return void 95 | */ 96 | function set_title($title){ 97 | $this->_title = $title; 98 | } 99 | 100 | /** 101 | * Append the given string at the end of the current page title 102 | * 103 | * @param string $title 104 | * @return void 105 | */ 106 | function append_title($title){ 107 | $this->_title .= " - {$title}"; 108 | } 109 | 110 | /** 111 | * Prepend the given string at the bigining of the curent title. 112 | * 113 | * @param string $title 114 | * @return void 115 | */ 116 | function prepend_title($title){ 117 | $this->_title = "{$title} - {$this->_title}"; 118 | } 119 | 120 | function set_message($message, $type="error"){ 121 | // log_message($type, $message); 122 | $this->_messages[$type] .= $message; 123 | // get_instance()->session->set_flashdata("__messages", serialize($this->_messages)); 124 | } 125 | 126 | /** 127 | * (non-PHPdoc) 128 | * @see system/libraries/CI_Output#_display($output) 129 | */ 130 | function _display($output=''){ 131 | 132 | if($output=='') 133 | $output = $this->get_output(); 134 | 135 | switch($this->_mode){ 136 | case self::OUTPUT_MODE_TEMPLATE: 137 | $output = $this->get_template_output($output); 138 | break; 139 | case self::OUTPUT_MODE_NORMAL: 140 | default: 141 | $output = $output; 142 | break; 143 | } 144 | 145 | parent::_display($output); 146 | } 147 | 148 | function set_output_data($varname, $value){ 149 | $this->_output_data[$varname] = $value; 150 | } 151 | 152 | private function get_template_output($output){ 153 | 154 | if(function_exists("get_instance") && class_exists("CI_Controller")){ 155 | $ci = get_instance(); 156 | 157 | $inline = $ci->load->get_inline_scripting(); 158 | 159 | if($inline["infile"]!=""){ 160 | $checksum = md5($inline["infile"], false); 161 | $ci->load->driver('cache'); 162 | $ci->cache->memcached->save($checksum, $inline["infile"], 5*60); 163 | $ci->load->js(site_url("content/js/{$checksum}.js"), true); 164 | } 165 | 166 | if( strlen($inline['stripped']) ){ 167 | $inline['unstripped'] .= "\r\n\r\n"; 168 | } 169 | 170 | $data = array(); 171 | 172 | $css_files = $ci->load->get_css_files(); 173 | $js_files = $ci->load->get_js_files(); 174 | 175 | $cached_js_files = $ci->load->get_cached_js_files(); 176 | if(!empty($cached_js_files)) 177 | { 178 | $cached_js_files_string = ''; 179 | foreach ($cached_js_files as $cahed_js_file) { 180 | $cached_js_files_string .= str_replace("\t","",file_get_contents($cahed_js_file, FILE_USE_INCLUDE_PATH)); 181 | } 182 | 183 | $cache_file_name = 'cache_'.md5(serialize($cached_js_files)).'.js'; 184 | $cache_file_path = 'assets/themes/default/js/'.$cache_file_name; 185 | 186 | $fh = fopen($cache_file_path, 'w') or die("can't open file"); 187 | fwrite($fh, $cached_js_files_string); 188 | fclose($fh); 189 | 190 | $js_files[] = base_url().$cache_file_path; 191 | 192 | } 193 | 194 | if (is_array($this->_meta["keywords"])) 195 | { 196 | $this->_meta["keywords"] = implode(" ,", $this->_meta["keywords"]); 197 | } 198 | 199 | $data["output"] = $output; 200 | $data["messages"] = $this->_messages; 201 | $data["modules"] = $ci->load->get_sections(); 202 | $data["title"] = $this->_title; 203 | $data["meta"] = $this->_meta; 204 | $data["language"] = $this->_language; 205 | $data["rdf"] = $this->_rdf; 206 | $data["charset"] = $this->_charset; 207 | $data["js"] = $js_files; 208 | $data["css"] = $css_files; 209 | $data["inline_scripting"] = $inline['unstripped']; 210 | $data["canonical"] = $this->_canonical; 211 | $data["ci"] = &get_instance(); 212 | 213 | $data = array_merge($data, $this->_output_data); 214 | 215 | $output = $ci->load->view($this->_template, $data, true); 216 | } 217 | 218 | return $output; 219 | } 220 | 221 | /** 222 | * Adds meta tags. 223 | * 224 | * @access public 225 | * @param string $name the name of the meta tag 226 | * @param string $content the content of the meta tag 227 | * @return bool 228 | */ 229 | public function set_meta($name, $content){ 230 | $this->_meta[$name] = $content; 231 | return true; 232 | } 233 | 234 | public function set_canonical($url) 235 | { 236 | $this->_canonical = $url; 237 | } 238 | } -------------------------------------------------------------------------------- /application/libraries/autoload/autoload_controller.php: -------------------------------------------------------------------------------- 1 | This is example 1 2 |

Here is the default template with a webpage

3 | 4 |
5 |

Code Behind this page

6 |
 7 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 8 | 
 9 | class Example extends CI_Controller {
10 | 
11 | 	function __construct()
12 | 	{
13 | 		parent::__construct();
14 | 
15 | 		$this->load->helper('url');
16 | 
17 | 		$this->_init();
18 | 	}
19 | 
20 | 	...
21 | 
22 | 	public function example_1()
23 | 	{
24 | 		$this->load->view('ci_simplicity/example_1');
25 | 	}
26 | 	...
27 | }
28 | 		
29 |
-------------------------------------------------------------------------------- /application/views/ci_simplicity/example_2.php: -------------------------------------------------------------------------------- 1 |

This is example 2

2 |

Here we have rendered a theme with name "simple" without any external files like css,images,js... e.t.c.

3 | 4 |

Code Behind this page

5 |
 6 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 7 | 
 8 | class Example extends CI_Controller {
 9 | 
10 | 	function __construct()
11 | 	{
12 | 		parent::__construct();
13 | 
14 | 		$this->load->helper('url');
15 | 
16 | 		$this->_init();
17 | 	}
18 | 
19 | 	...
20 | 
21 | 	public function example_2()
22 | 	{
23 | 		$this->output->set_template('simple');
24 | 		$this->load->view('ci_simplicity/example_2');
25 | 	}
26 | 	...
27 | }
28 | 
-------------------------------------------------------------------------------- /application/views/ci_simplicity/example_3.php: -------------------------------------------------------------------------------- 1 |
2 |

This is example 3

3 |

This is the default template but we also rendered a right sidebar with the section function.

4 | 5 |

Code Behind this page

6 |
 7 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 8 | 
 9 | class Example extends CI_Controller {
10 | 
11 | 	function __construct()
12 | 	{
13 | 		parent::__construct();
14 | 
15 | 		$this->load->helper('url');
16 | 
17 | 		$this->_init();
18 | 	}
19 | 
20 | 	...
21 | 
22 | 	public function example_3()
23 | 	{
24 | 		$this->load->section('sidebar', 'ci_simplicity/sidebar');
25 | 		$this->load->view('ci_simplicity/example_3');
26 | 	}
27 | 	...
28 | }
29 | 		
30 |
-------------------------------------------------------------------------------- /application/views/ci_simplicity/example_4.php: -------------------------------------------------------------------------------- 1 |

Example 4

2 | 3 |

This example doesn't have any template.

4 | 5 |

This page is rended with the normal view, go back to home page

6 | 7 |

Code Behind this page

8 |
 9 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
10 | 
11 | class Example extends CI_Controller {
12 | 
13 | 	function __construct()
14 | 	{
15 | 		parent::__construct();
16 | 
17 | 		$this->load->helper('url');
18 | 
19 | 		$this->_init();
20 | 	}
21 | 
22 | 	...
23 | 
24 | 	public function example_4()
25 | 	{
26 | 		$this->output->unset_template();
27 | 		$this->load->view('ci_simplicity/example_4');
28 | 	}
29 | 	...
30 | }
31 | 
-------------------------------------------------------------------------------- /application/views/ci_simplicity/sidebar.php: -------------------------------------------------------------------------------- 1 |
2 | This is the sidebar menu that was loaded as a section. 3 |


4 |
-------------------------------------------------------------------------------- /application/views/ci_simplicity/welcome.php: -------------------------------------------------------------------------------- 1 |

Welcome to CodeIgniter Simplicity!

2 | 3 |
4 |

This is just an example view of the home page. You can easily load whatever html file you like here with a normal codeigniter view.

5 |
6 | 7 |
8 |

Code Behind this page

9 |
10 | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
11 | 
12 | class Example extends CI_Controller {
13 | 
14 | 	function __construct()
15 | 	{
16 | 		parent::__construct();
17 | 
18 | 		$this->load->helper('url');
19 | 
20 | 		$this->_init();
21 | 	}
22 | 
23 | 	private function _init()
24 | 	{
25 | 		$this->output->set_template('default');
26 | 
27 | 		$this->load->js('assets/themes/default/js/jquery-1.9.1.min.js');
28 | 		$this->load->js('assets/themes/default/hero_files/bootstrap-transition.js');
29 | 		$this->load->js('assets/themes/default/hero_files/bootstrap-collapse.js');
30 | 	}
31 | 
32 | 	public function index()
33 | 	{
34 | 		$this->load->view('ci_simplicity/welcome');
35 | 	}	
36 | 	...
37 | }	
38 | 		
39 |
-------------------------------------------------------------------------------- /application/views/themes/blank.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 17 | $content){ 20 | echo "\n\t\t"; 21 | ?>" /> 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /application/views/themes/default.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | <?php echo $title; ?> 4 | 5 | 6 | 7 | $content){ 11 | echo "\n\t\t"; 12 | ?> 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 48 | 49 | 50 | 51 | 52 | 111 | 112 | 113 | 114 | 115 | 116 | 138 | 139 |
140 | load->get_section('text_header') != '') { ?> 141 |

load->get_section('text_header');?>

142 | 143 |
144 | 145 | load->get_section('sidebar'); ?> 146 |
147 |
148 | 149 | 156 | 157 |
158 | 159 | -------------------------------------------------------------------------------- /application/views/themes/simple.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 17 | $content){ 20 | echo "\n\t\t"; 21 | ?>" /> 24 | 27 | 28 | 29 |
30 | Home | 31 | Example 1 | 32 | Example 2 | 33 | Example 3 | 34 | Example 4 35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /assets/themes/default/css/bootstrap-responsive.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.4 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | .clearfix { 12 | *zoom: 1; 13 | } 14 | 15 | .clearfix:before, 16 | .clearfix:after { 17 | display: table; 18 | content: ""; 19 | } 20 | 21 | .clearfix:after { 22 | clear: both; 23 | } 24 | 25 | .hide-text { 26 | font: 0/0 a; 27 | color: transparent; 28 | text-shadow: none; 29 | background-color: transparent; 30 | border: 0; 31 | } 32 | 33 | .input-block-level { 34 | display: block; 35 | width: 100%; 36 | min-height: 28px; 37 | -webkit-box-sizing: border-box; 38 | -moz-box-sizing: border-box; 39 | -ms-box-sizing: border-box; 40 | box-sizing: border-box; 41 | } 42 | 43 | .hidden { 44 | display: none; 45 | visibility: hidden; 46 | } 47 | 48 | .visible-phone { 49 | display: none !important; 50 | } 51 | 52 | .visible-tablet { 53 | display: none !important; 54 | } 55 | 56 | .hidden-desktop { 57 | display: none !important; 58 | } 59 | 60 | @media (max-width: 767px) { 61 | .visible-phone { 62 | display: inherit !important; 63 | } 64 | .hidden-phone { 65 | display: none !important; 66 | } 67 | .hidden-desktop { 68 | display: inherit !important; 69 | } 70 | .visible-desktop { 71 | display: none !important; 72 | } 73 | } 74 | 75 | @media (min-width: 768px) and (max-width: 979px) { 76 | .visible-tablet { 77 | display: inherit !important; 78 | } 79 | .hidden-tablet { 80 | display: none !important; 81 | } 82 | .hidden-desktop { 83 | display: inherit !important; 84 | } 85 | .visible-desktop { 86 | display: none !important ; 87 | } 88 | } 89 | 90 | @media (max-width: 480px) { 91 | .nav-collapse { 92 | -webkit-transform: translate3d(0, 0, 0); 93 | } 94 | .page-header h1 small { 95 | display: block; 96 | line-height: 18px; 97 | } 98 | input[type="checkbox"], 99 | input[type="radio"] { 100 | border: 1px solid #ccc; 101 | } 102 | .form-horizontal .control-group > label { 103 | float: none; 104 | width: auto; 105 | padding-top: 0; 106 | text-align: left; 107 | } 108 | .form-horizontal .controls { 109 | margin-left: 0; 110 | } 111 | .form-horizontal .control-list { 112 | padding-top: 0; 113 | } 114 | .form-horizontal .form-actions { 115 | padding-right: 10px; 116 | padding-left: 10px; 117 | } 118 | .modal { 119 | position: absolute; 120 | top: 10px; 121 | right: 10px; 122 | left: 10px; 123 | width: auto; 124 | margin: 0; 125 | } 126 | .modal.fade.in { 127 | top: auto; 128 | } 129 | .modal-header .close { 130 | padding: 10px; 131 | margin: -10px; 132 | } 133 | .carousel-caption { 134 | position: static; 135 | } 136 | } 137 | 138 | @media (max-width: 767px) { 139 | body { 140 | padding-right: 20px; 141 | padding-left: 20px; 142 | } 143 | .navbar-fixed-top, 144 | .navbar-fixed-bottom { 145 | margin-right: -20px; 146 | margin-left: -20px; 147 | } 148 | .container-fluid { 149 | padding: 0; 150 | } 151 | .dl-horizontal dt { 152 | float: none; 153 | width: auto; 154 | clear: none; 155 | text-align: left; 156 | } 157 | .dl-horizontal dd { 158 | margin-left: 0; 159 | } 160 | .container { 161 | width: auto; 162 | } 163 | .row-fluid { 164 | width: 100%; 165 | } 166 | .row, 167 | .thumbnails { 168 | margin-left: 0; 169 | } 170 | [class*="span"], 171 | .row-fluid [class*="span"] { 172 | display: block; 173 | float: none; 174 | width: auto; 175 | margin-left: 0; 176 | } 177 | .input-large, 178 | .input-xlarge, 179 | .input-xxlarge, 180 | input[class*="span"], 181 | select[class*="span"], 182 | textarea[class*="span"], 183 | .uneditable-input { 184 | display: block; 185 | width: 100%; 186 | min-height: 28px; 187 | -webkit-box-sizing: border-box; 188 | -moz-box-sizing: border-box; 189 | -ms-box-sizing: border-box; 190 | box-sizing: border-box; 191 | } 192 | .input-prepend input, 193 | .input-append input, 194 | .input-prepend input[class*="span"], 195 | .input-append input[class*="span"] { 196 | display: inline-block; 197 | width: auto; 198 | } 199 | } 200 | 201 | @media (min-width: 768px) and (max-width: 979px) { 202 | .row { 203 | margin-left: -20px; 204 | *zoom: 1; 205 | } 206 | .row:before, 207 | .row:after { 208 | display: table; 209 | content: ""; 210 | } 211 | .row:after { 212 | clear: both; 213 | } 214 | [class*="span"] { 215 | float: left; 216 | margin-left: 20px; 217 | } 218 | .container, 219 | .navbar-fixed-top .container, 220 | .navbar-fixed-bottom .container { 221 | width: 724px; 222 | } 223 | .span12 { 224 | width: 724px; 225 | } 226 | .span11 { 227 | width: 662px; 228 | } 229 | .span10 { 230 | width: 600px; 231 | } 232 | .span9 { 233 | width: 538px; 234 | } 235 | .span8 { 236 | width: 476px; 237 | } 238 | .span7 { 239 | width: 414px; 240 | } 241 | .span6 { 242 | width: 352px; 243 | } 244 | .span5 { 245 | width: 290px; 246 | } 247 | .span4 { 248 | width: 228px; 249 | } 250 | .span3 { 251 | width: 166px; 252 | } 253 | .span2 { 254 | width: 104px; 255 | } 256 | .span1 { 257 | width: 42px; 258 | } 259 | .offset12 { 260 | margin-left: 764px; 261 | } 262 | .offset11 { 263 | margin-left: 702px; 264 | } 265 | .offset10 { 266 | margin-left: 640px; 267 | } 268 | .offset9 { 269 | margin-left: 578px; 270 | } 271 | .offset8 { 272 | margin-left: 516px; 273 | } 274 | .offset7 { 275 | margin-left: 454px; 276 | } 277 | .offset6 { 278 | margin-left: 392px; 279 | } 280 | .offset5 { 281 | margin-left: 330px; 282 | } 283 | .offset4 { 284 | margin-left: 268px; 285 | } 286 | .offset3 { 287 | margin-left: 206px; 288 | } 289 | .offset2 { 290 | margin-left: 144px; 291 | } 292 | .offset1 { 293 | margin-left: 82px; 294 | } 295 | .row-fluid { 296 | width: 100%; 297 | *zoom: 1; 298 | } 299 | .row-fluid:before, 300 | .row-fluid:after { 301 | display: table; 302 | content: ""; 303 | } 304 | .row-fluid:after { 305 | clear: both; 306 | } 307 | .row-fluid [class*="span"] { 308 | display: block; 309 | float: left; 310 | width: 100%; 311 | min-height: 28px; 312 | margin-left: 2.762430939%; 313 | *margin-left: 2.709239449638298%; 314 | -webkit-box-sizing: border-box; 315 | -moz-box-sizing: border-box; 316 | -ms-box-sizing: border-box; 317 | box-sizing: border-box; 318 | } 319 | .row-fluid [class*="span"]:first-child { 320 | margin-left: 0; 321 | } 322 | .row-fluid .span12 { 323 | width: 99.999999993%; 324 | *width: 99.9468085036383%; 325 | } 326 | .row-fluid .span11 { 327 | width: 91.436464082%; 328 | *width: 91.38327259263829%; 329 | } 330 | .row-fluid .span10 { 331 | width: 82.87292817100001%; 332 | *width: 82.8197366816383%; 333 | } 334 | .row-fluid .span9 { 335 | width: 74.30939226%; 336 | *width: 74.25620077063829%; 337 | } 338 | .row-fluid .span8 { 339 | width: 65.74585634900001%; 340 | *width: 65.6926648596383%; 341 | } 342 | .row-fluid .span7 { 343 | width: 57.182320438000005%; 344 | *width: 57.129128948638304%; 345 | } 346 | .row-fluid .span6 { 347 | width: 48.618784527%; 348 | *width: 48.5655930376383%; 349 | } 350 | .row-fluid .span5 { 351 | width: 40.055248616%; 352 | *width: 40.0020571266383%; 353 | } 354 | .row-fluid .span4 { 355 | width: 31.491712705%; 356 | *width: 31.4385212156383%; 357 | } 358 | .row-fluid .span3 { 359 | width: 22.928176794%; 360 | *width: 22.874985304638297%; 361 | } 362 | .row-fluid .span2 { 363 | width: 14.364640883%; 364 | *width: 14.311449393638298%; 365 | } 366 | .row-fluid .span1 { 367 | width: 5.801104972%; 368 | *width: 5.747913482638298%; 369 | } 370 | input, 371 | textarea, 372 | .uneditable-input { 373 | margin-left: 0; 374 | } 375 | input.span12, 376 | textarea.span12, 377 | .uneditable-input.span12 { 378 | width: 714px; 379 | } 380 | input.span11, 381 | textarea.span11, 382 | .uneditable-input.span11 { 383 | width: 652px; 384 | } 385 | input.span10, 386 | textarea.span10, 387 | .uneditable-input.span10 { 388 | width: 590px; 389 | } 390 | input.span9, 391 | textarea.span9, 392 | .uneditable-input.span9 { 393 | width: 528px; 394 | } 395 | input.span8, 396 | textarea.span8, 397 | .uneditable-input.span8 { 398 | width: 466px; 399 | } 400 | input.span7, 401 | textarea.span7, 402 | .uneditable-input.span7 { 403 | width: 404px; 404 | } 405 | input.span6, 406 | textarea.span6, 407 | .uneditable-input.span6 { 408 | width: 342px; 409 | } 410 | input.span5, 411 | textarea.span5, 412 | .uneditable-input.span5 { 413 | width: 280px; 414 | } 415 | input.span4, 416 | textarea.span4, 417 | .uneditable-input.span4 { 418 | width: 218px; 419 | } 420 | input.span3, 421 | textarea.span3, 422 | .uneditable-input.span3 { 423 | width: 156px; 424 | } 425 | input.span2, 426 | textarea.span2, 427 | .uneditable-input.span2 { 428 | width: 94px; 429 | } 430 | input.span1, 431 | textarea.span1, 432 | .uneditable-input.span1 { 433 | width: 32px; 434 | } 435 | } 436 | 437 | @media (min-width: 1200px) { 438 | .row { 439 | margin-left: -30px; 440 | *zoom: 1; 441 | } 442 | .row:before, 443 | .row:after { 444 | display: table; 445 | content: ""; 446 | } 447 | .row:after { 448 | clear: both; 449 | } 450 | [class*="span"] { 451 | float: left; 452 | margin-left: 30px; 453 | } 454 | .container, 455 | .navbar-fixed-top .container, 456 | .navbar-fixed-bottom .container { 457 | width: 1170px; 458 | } 459 | .span12 { 460 | width: 1170px; 461 | } 462 | .span11 { 463 | width: 1070px; 464 | } 465 | .span10 { 466 | width: 970px; 467 | } 468 | .span9 { 469 | width: 870px; 470 | } 471 | .span8 { 472 | width: 770px; 473 | } 474 | .span7 { 475 | width: 670px; 476 | } 477 | .span6 { 478 | width: 570px; 479 | } 480 | .span5 { 481 | width: 470px; 482 | } 483 | .span4 { 484 | width: 370px; 485 | } 486 | .span3 { 487 | width: 270px; 488 | } 489 | .span2 { 490 | width: 170px; 491 | } 492 | .span1 { 493 | width: 70px; 494 | } 495 | .offset12 { 496 | margin-left: 1230px; 497 | } 498 | .offset11 { 499 | margin-left: 1130px; 500 | } 501 | .offset10 { 502 | margin-left: 1030px; 503 | } 504 | .offset9 { 505 | margin-left: 930px; 506 | } 507 | .offset8 { 508 | margin-left: 830px; 509 | } 510 | .offset7 { 511 | margin-left: 730px; 512 | } 513 | .offset6 { 514 | margin-left: 630px; 515 | } 516 | .offset5 { 517 | margin-left: 530px; 518 | } 519 | .offset4 { 520 | margin-left: 430px; 521 | } 522 | .offset3 { 523 | margin-left: 330px; 524 | } 525 | .offset2 { 526 | margin-left: 230px; 527 | } 528 | .offset1 { 529 | margin-left: 130px; 530 | } 531 | .row-fluid { 532 | width: 100%; 533 | *zoom: 1; 534 | } 535 | .row-fluid:before, 536 | .row-fluid:after { 537 | display: table; 538 | content: ""; 539 | } 540 | .row-fluid:after { 541 | clear: both; 542 | } 543 | .row-fluid [class*="span"] { 544 | display: block; 545 | float: left; 546 | width: 100%; 547 | min-height: 28px; 548 | margin-left: 2.564102564%; 549 | *margin-left: 2.510911074638298%; 550 | -webkit-box-sizing: border-box; 551 | -moz-box-sizing: border-box; 552 | -ms-box-sizing: border-box; 553 | box-sizing: border-box; 554 | } 555 | .row-fluid [class*="span"]:first-child { 556 | margin-left: 0; 557 | } 558 | .row-fluid .span12 { 559 | width: 100%; 560 | *width: 99.94680851063829%; 561 | } 562 | .row-fluid .span11 { 563 | width: 91.45299145300001%; 564 | *width: 91.3997999636383%; 565 | } 566 | .row-fluid .span10 { 567 | width: 82.905982906%; 568 | *width: 82.8527914166383%; 569 | } 570 | .row-fluid .span9 { 571 | width: 74.358974359%; 572 | *width: 74.30578286963829%; 573 | } 574 | .row-fluid .span8 { 575 | width: 65.81196581200001%; 576 | *width: 65.7587743226383%; 577 | } 578 | .row-fluid .span7 { 579 | width: 57.264957265%; 580 | *width: 57.2117657756383%; 581 | } 582 | .row-fluid .span6 { 583 | width: 48.717948718%; 584 | *width: 48.6647572286383%; 585 | } 586 | .row-fluid .span5 { 587 | width: 40.170940171000005%; 588 | *width: 40.117748681638304%; 589 | } 590 | .row-fluid .span4 { 591 | width: 31.623931624%; 592 | *width: 31.5707401346383%; 593 | } 594 | .row-fluid .span3 { 595 | width: 23.076923077%; 596 | *width: 23.0237315876383%; 597 | } 598 | .row-fluid .span2 { 599 | width: 14.529914530000001%; 600 | *width: 14.4767230406383%; 601 | } 602 | .row-fluid .span1 { 603 | width: 5.982905983%; 604 | *width: 5.929714493638298%; 605 | } 606 | input, 607 | textarea, 608 | .uneditable-input { 609 | margin-left: 0; 610 | } 611 | input.span12, 612 | textarea.span12, 613 | .uneditable-input.span12 { 614 | width: 1160px; 615 | } 616 | input.span11, 617 | textarea.span11, 618 | .uneditable-input.span11 { 619 | width: 1060px; 620 | } 621 | input.span10, 622 | textarea.span10, 623 | .uneditable-input.span10 { 624 | width: 960px; 625 | } 626 | input.span9, 627 | textarea.span9, 628 | .uneditable-input.span9 { 629 | width: 860px; 630 | } 631 | input.span8, 632 | textarea.span8, 633 | .uneditable-input.span8 { 634 | width: 760px; 635 | } 636 | input.span7, 637 | textarea.span7, 638 | .uneditable-input.span7 { 639 | width: 660px; 640 | } 641 | input.span6, 642 | textarea.span6, 643 | .uneditable-input.span6 { 644 | width: 560px; 645 | } 646 | input.span5, 647 | textarea.span5, 648 | .uneditable-input.span5 { 649 | width: 460px; 650 | } 651 | input.span4, 652 | textarea.span4, 653 | .uneditable-input.span4 { 654 | width: 360px; 655 | } 656 | input.span3, 657 | textarea.span3, 658 | .uneditable-input.span3 { 659 | width: 260px; 660 | } 661 | input.span2, 662 | textarea.span2, 663 | .uneditable-input.span2 { 664 | width: 160px; 665 | } 666 | input.span1, 667 | textarea.span1, 668 | .uneditable-input.span1 { 669 | width: 60px; 670 | } 671 | .thumbnails { 672 | margin-left: -30px; 673 | } 674 | .thumbnails > li { 675 | margin-left: 30px; 676 | } 677 | .row-fluid .thumbnails { 678 | margin-left: 0; 679 | } 680 | } 681 | 682 | @media (max-width: 979px) { 683 | body { 684 | padding-top: 0; 685 | } 686 | .navbar-fixed-top, 687 | .navbar-fixed-bottom { 688 | position: static; 689 | } 690 | .navbar-fixed-top { 691 | margin-bottom: 18px; 692 | } 693 | .navbar-fixed-bottom { 694 | margin-top: 18px; 695 | } 696 | .navbar-fixed-top .navbar-inner, 697 | .navbar-fixed-bottom .navbar-inner { 698 | padding: 5px; 699 | } 700 | .navbar .container { 701 | width: auto; 702 | padding: 0; 703 | } 704 | .navbar .brand { 705 | padding-right: 10px; 706 | padding-left: 10px; 707 | margin: 0 0 0 -5px; 708 | } 709 | .nav-collapse { 710 | clear: both; 711 | } 712 | .nav-collapse .nav { 713 | float: none; 714 | margin: 0 0 9px; 715 | } 716 | .nav-collapse .nav > li { 717 | float: none; 718 | } 719 | .nav-collapse .nav > li > a { 720 | margin-bottom: 2px; 721 | } 722 | .nav-collapse .nav > .divider-vertical { 723 | display: none; 724 | } 725 | .nav-collapse .nav .nav-header { 726 | color: #999999; 727 | text-shadow: none; 728 | } 729 | .nav-collapse .nav > li > a, 730 | .nav-collapse .dropdown-menu a { 731 | padding: 6px 15px; 732 | font-weight: bold; 733 | color: #999999; 734 | -webkit-border-radius: 3px; 735 | -moz-border-radius: 3px; 736 | border-radius: 3px; 737 | } 738 | .nav-collapse .btn { 739 | padding: 4px 10px 4px; 740 | font-weight: normal; 741 | -webkit-border-radius: 4px; 742 | -moz-border-radius: 4px; 743 | border-radius: 4px; 744 | } 745 | .nav-collapse .dropdown-menu li + li a { 746 | margin-bottom: 2px; 747 | } 748 | .nav-collapse .nav > li > a:hover, 749 | .nav-collapse .dropdown-menu a:hover { 750 | background-color: #222222; 751 | } 752 | .nav-collapse.in .btn-group { 753 | padding: 0; 754 | margin-top: 5px; 755 | } 756 | .nav-collapse .dropdown-menu { 757 | position: static; 758 | top: auto; 759 | left: auto; 760 | display: block; 761 | float: none; 762 | max-width: none; 763 | padding: 0; 764 | margin: 0 15px; 765 | background-color: transparent; 766 | border: none; 767 | -webkit-border-radius: 0; 768 | -moz-border-radius: 0; 769 | border-radius: 0; 770 | -webkit-box-shadow: none; 771 | -moz-box-shadow: none; 772 | box-shadow: none; 773 | } 774 | .nav-collapse .dropdown-menu:before, 775 | .nav-collapse .dropdown-menu:after { 776 | display: none; 777 | } 778 | .nav-collapse .dropdown-menu .divider { 779 | display: none; 780 | } 781 | .nav-collapse .navbar-form, 782 | .nav-collapse .navbar-search { 783 | float: none; 784 | padding: 9px 15px; 785 | margin: 9px 0; 786 | border-top: 1px solid #222222; 787 | border-bottom: 1px solid #222222; 788 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 789 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 790 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); 791 | } 792 | .navbar .nav-collapse .nav.pull-right { 793 | float: none; 794 | margin-left: 0; 795 | } 796 | .nav-collapse, 797 | .nav-collapse.collapse { 798 | height: 0; 799 | overflow: hidden; 800 | } 801 | .navbar .btn-navbar { 802 | display: block; 803 | } 804 | .navbar-static .navbar-inner { 805 | padding-right: 10px; 806 | padding-left: 10px; 807 | } 808 | } 809 | 810 | @media (min-width: 980px) { 811 | .nav-collapse.collapse { 812 | height: auto !important; 813 | overflow: visible !important; 814 | } 815 | } 816 | -------------------------------------------------------------------------------- /assets/themes/default/css/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.4 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;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:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-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}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>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}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{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}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;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:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-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}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.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;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.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;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:18px}.navbar-fixed-bottom{margin-top:18px}.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 9px}.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:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-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:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-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 .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}} 10 | -------------------------------------------------------------------------------- /assets/themes/default/css/custom.css: -------------------------------------------------------------------------------- 1 | .big-code, .big-code pre, .big-code pre.php 2 | { 3 | font-size: 16px !important; 4 | } 5 | .bsa_it_p{ 6 | display:none !important; 7 | } 8 | .via_ad_packs{ 9 | text-align:right; 10 | background: #F0F0F0 !important; 11 | border:1px solid #EEE; 12 | border: 1px solid rgba(0, 0, 0, 0.15) !important; 13 | border-top:none !important; 14 | padding-right:5px; 15 | padding-bottom:5px; 16 | border-radius: 0px 0px 6px 6px; 17 | } 18 | .one .bsa_it_ad{ 19 | border:1px solid #EEE !important; 20 | border: 1px solid rgba(0, 0, 0, 0.15) !important; 21 | border-bottom:none !important; 22 | border-radius: 6px 6px 0px 0px; 23 | background: #F0F0F0 !important; 24 | } 25 | .classic-table 26 | { 27 | width: 100%; 28 | border-bottom: 1px solid #CCC; 29 | border-right: 1px solid #CCC; 30 | } 31 | .classic-table tr td, .classic-table tr th 32 | { 33 | border: 1px solid #CCC; 34 | border-right: none; 35 | border-bottom: none; 36 | padding: 5px; 37 | text-align: left; 38 | } -------------------------------------------------------------------------------- /assets/themes/default/css/general.css: -------------------------------------------------------------------------------- 1 | /* ------------------------------------------------------------------ */ 2 | /* ------------------ General CSS Styling --------------------------- */ 3 | /* ------------------------------------------------------------------ */ 4 | 5 | /* pad comes from the word "padding" and not from PAD or... ipad! */ 6 | .pad0{padding:0px !important}.pad3{padding:3px;}.pad5{padding:5px;}.pad10{padding:10px;}.pad15{padding:15px;}.pad20{padding:20px;}.pad30{padding:30px;} 7 | 8 | .marg0{margin:0px !important}.marg3{margin:3px}.marg5{margin:5px;}.marg10{margin:10px;}.marg15{margin:15px;}.marg20{margin:20px;}.marg30{margin:30px;} 9 | 10 | .auto-margin-0{margin:0 auto !important}.auto-margin-5{margin:5px auto}.auto-margin-10{margin:10px auto}.auto-margin-15{margin:15px auto}.auto-margin-20{margin:20px auto}.auto-margin-30{margin:30px auto} 11 | 12 | /* height */ 13 | .h3{height:3px;}.h5{height:5px;}.h10{height:10px;}.h15{height:15px;}.h20{height:20px;}.h30{height:30px;}.h40{height:40px;}.h50{height:50px;}.h100{height:100px;}.h200{height:200px;}.h250{height:250px;}.h300{height:300px;}.h450{height:450px;}.h500{height:500px} 14 | /*width*/ 15 | .w25{width:25px;}.w50{width:50px;}.w75{width:75px;}.w100{width:100px;}.w125{width:125px;}.w150{width:150px;}.w175{width:175px;}.w200{width:200px;}.w215{width:215px;}.w250{width:250px;}.w300{width:300px;}.w450{width:450px;}.w500{width:450px;} 16 | 17 | /* margin-bottom */ 18 | .b0{margin-bottom:0px}.b3{margin-bottom:3px}.b5{margin-bottom:5px}.b10{margin-bottom:10px}.b15{margin-bottom:15px}.b20{margin-bottom:20px} 19 | /* margin-top */ 20 | .t0{margin-top:0px}.t3{margin-top:3px}.t5{margin-top:5px}.t10{margin-top:10px}.t15{margin-top:15px}.t20{margin-top:20px} 21 | /* margin-left */ 22 | .l0{margin-left:0px}.l3{margin-left:3px}.l5{margin-left:5px}.l10{margin-left:10px}.l15{margin-left:15px}.l20{margin-left:20px} 23 | /* margin-right */ 24 | .r0{margin-right:0px}.r3{margin-right:3px}.r5{margin-right:5px}.r10{margin-right:10px}.r15{margin-right:15px}.r20{margin-right:20px} 25 | 26 | /* text-align */ 27 | .alignL{text-align:left !important}.alignC{text-align:center !important}.alignR{text-align:right !important} 28 | 29 | table.no-border-table tr td,.no-border{border: none !important} 30 | 31 | .floatL{float:left !important}.floatR{float:right !important}.clear{clear:both} 32 | .half-width{width:50% !important}.almost-full-width{width:99% !important}.full-width{width:100% !important} 33 | 34 | /* Just to make sure that the browser will add this css style. For example if we already had the div as display block. We could use !important but it is not a suggested technique */ 35 | .hidden,div.hidden,span.hidden,ul.hidden,li.hidden,img.hidden,input.hidden,select.hidden,label.hidden{display:none} 36 | 37 | div.invisible,.invisible{opacity:0} 38 | 39 | /* ------------------------------------------------------------------ */ 40 | /* ------------------------------------------------------------------ */ 41 | /* ------------------------------------------------------------------ */ -------------------------------------------------------------------------------- /assets/themes/default/css/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 403 Forbidden 4 | 5 | 6 | 7 |

Directory access is forbidden.

8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-alert.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * bootstrap-alert.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#alerts 4 | * ========================================================== 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* ALERT CLASS DEFINITION 27 | * ====================== */ 28 | 29 | var dismiss = '[data-dismiss="alert"]' 30 | , Alert = function (el) { 31 | $(el).on('click', dismiss, this.close) 32 | } 33 | 34 | Alert.prototype.close = function (e) { 35 | var $this = $(this) 36 | , selector = $this.attr('data-target') 37 | , $parent 38 | 39 | if (!selector) { 40 | selector = $this.attr('href') 41 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 42 | } 43 | 44 | $parent = $(selector) 45 | 46 | e && e.preventDefault() 47 | 48 | $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) 49 | 50 | $parent.trigger(e = $.Event('close')) 51 | 52 | if (e.isDefaultPrevented()) return 53 | 54 | $parent.removeClass('in') 55 | 56 | function removeElement() { 57 | $parent 58 | .trigger('closed') 59 | .remove() 60 | } 61 | 62 | $.support.transition && $parent.hasClass('fade') ? 63 | $parent.on($.support.transition.end, removeElement) : 64 | removeElement() 65 | } 66 | 67 | 68 | /* ALERT PLUGIN DEFINITION 69 | * ======================= */ 70 | 71 | $.fn.alert = function (option) { 72 | return this.each(function () { 73 | var $this = $(this) 74 | , data = $this.data('alert') 75 | if (!data) $this.data('alert', (data = new Alert(this))) 76 | if (typeof option == 'string') data[option].call($this) 77 | }) 78 | } 79 | 80 | $.fn.alert.Constructor = Alert 81 | 82 | 83 | /* ALERT DATA-API 84 | * ============== */ 85 | 86 | $(function () { 87 | $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) 88 | }) 89 | 90 | }(window.jQuery); -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-button.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-button.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#buttons 4 | * ============================================================ 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* BUTTON PUBLIC CLASS DEFINITION 27 | * ============================== */ 28 | 29 | var Button = function (element, options) { 30 | this.$element = $(element) 31 | this.options = $.extend({}, $.fn.button.defaults, options) 32 | } 33 | 34 | Button.prototype.setState = function (state) { 35 | var d = 'disabled' 36 | , $el = this.$element 37 | , data = $el.data() 38 | , val = $el.is('input') ? 'val' : 'html' 39 | 40 | state = state + 'Text' 41 | data.resetText || $el.data('resetText', $el[val]()) 42 | 43 | $el[val](data[state] || this.options[state]) 44 | 45 | // push to event loop to allow forms to submit 46 | setTimeout(function () { 47 | state == 'loadingText' ? 48 | $el.addClass(d).attr(d, d) : 49 | $el.removeClass(d).removeAttr(d) 50 | }, 0) 51 | } 52 | 53 | Button.prototype.toggle = function () { 54 | var $parent = this.$element.parent('[data-toggle="buttons-radio"]') 55 | 56 | $parent && $parent 57 | .find('.active') 58 | .removeClass('active') 59 | 60 | this.$element.toggleClass('active') 61 | } 62 | 63 | 64 | /* BUTTON PLUGIN DEFINITION 65 | * ======================== */ 66 | 67 | $.fn.button = function (option) { 68 | return this.each(function () { 69 | var $this = $(this) 70 | , data = $this.data('button') 71 | , options = typeof option == 'object' && option 72 | if (!data) $this.data('button', (data = new Button(this, options))) 73 | if (option == 'toggle') data.toggle() 74 | else if (option) data.setState(option) 75 | }) 76 | } 77 | 78 | $.fn.button.defaults = { 79 | loadingText: 'loading...' 80 | } 81 | 82 | $.fn.button.Constructor = Button 83 | 84 | 85 | /* BUTTON DATA-API 86 | * =============== */ 87 | 88 | $(function () { 89 | $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { 90 | var $btn = $(e.target) 91 | if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') 92 | $btn.button('toggle') 93 | }) 94 | }) 95 | 96 | }(window.jQuery); -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-carousel.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * bootstrap-carousel.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#carousel 4 | * ========================================================== 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* CAROUSEL CLASS DEFINITION 27 | * ========================= */ 28 | 29 | var Carousel = function (element, options) { 30 | this.$element = $(element) 31 | this.options = options 32 | this.options.slide && this.slide(this.options.slide) 33 | this.options.pause == 'hover' && this.$element 34 | .on('mouseenter', $.proxy(this.pause, this)) 35 | .on('mouseleave', $.proxy(this.cycle, this)) 36 | } 37 | 38 | Carousel.prototype = { 39 | 40 | cycle: function (e) { 41 | if (!e) this.paused = false 42 | this.options.interval 43 | && !this.paused 44 | && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) 45 | return this 46 | } 47 | 48 | , to: function (pos) { 49 | var $active = this.$element.find('.active') 50 | , children = $active.parent().children() 51 | , activePos = children.index($active) 52 | , that = this 53 | 54 | if (pos > (children.length - 1) || pos < 0) return 55 | 56 | if (this.sliding) { 57 | return this.$element.one('slid', function () { 58 | that.to(pos) 59 | }) 60 | } 61 | 62 | if (activePos == pos) { 63 | return this.pause().cycle() 64 | } 65 | 66 | return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) 67 | } 68 | 69 | , pause: function (e) { 70 | if (!e) this.paused = true 71 | clearInterval(this.interval) 72 | this.interval = null 73 | return this 74 | } 75 | 76 | , next: function () { 77 | if (this.sliding) return 78 | return this.slide('next') 79 | } 80 | 81 | , prev: function () { 82 | if (this.sliding) return 83 | return this.slide('prev') 84 | } 85 | 86 | , slide: function (type, next) { 87 | var $active = this.$element.find('.active') 88 | , $next = next || $active[type]() 89 | , isCycling = this.interval 90 | , direction = type == 'next' ? 'left' : 'right' 91 | , fallback = type == 'next' ? 'first' : 'last' 92 | , that = this 93 | , e = $.Event('slide') 94 | 95 | this.sliding = true 96 | 97 | isCycling && this.pause() 98 | 99 | $next = $next.length ? $next : this.$element.find('.item')[fallback]() 100 | 101 | if ($next.hasClass('active')) return 102 | 103 | if ($.support.transition && this.$element.hasClass('slide')) { 104 | this.$element.trigger(e) 105 | if (e.isDefaultPrevented()) return 106 | $next.addClass(type) 107 | $next[0].offsetWidth // force reflow 108 | $active.addClass(direction) 109 | $next.addClass(direction) 110 | this.$element.one($.support.transition.end, function () { 111 | $next.removeClass([type, direction].join(' ')).addClass('active') 112 | $active.removeClass(['active', direction].join(' ')) 113 | that.sliding = false 114 | setTimeout(function () { that.$element.trigger('slid') }, 0) 115 | }) 116 | } else { 117 | this.$element.trigger(e) 118 | if (e.isDefaultPrevented()) return 119 | $active.removeClass('active') 120 | $next.addClass('active') 121 | this.sliding = false 122 | this.$element.trigger('slid') 123 | } 124 | 125 | isCycling && this.cycle() 126 | 127 | return this 128 | } 129 | 130 | } 131 | 132 | 133 | /* CAROUSEL PLUGIN DEFINITION 134 | * ========================== */ 135 | 136 | $.fn.carousel = function (option) { 137 | return this.each(function () { 138 | var $this = $(this) 139 | , data = $this.data('carousel') 140 | , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) 141 | if (!data) $this.data('carousel', (data = new Carousel(this, options))) 142 | if (typeof option == 'number') data.to(option) 143 | else if (typeof option == 'string' || (option = options.slide)) data[option]() 144 | else if (options.interval) data.cycle() 145 | }) 146 | } 147 | 148 | $.fn.carousel.defaults = { 149 | interval: 5000 150 | , pause: 'hover' 151 | } 152 | 153 | $.fn.carousel.Constructor = Carousel 154 | 155 | 156 | /* CAROUSEL DATA-API 157 | * ================= */ 158 | 159 | $(function () { 160 | $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { 161 | var $this = $(this), href 162 | , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 163 | , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) 164 | $target.carousel(options) 165 | e.preventDefault() 166 | }) 167 | }) 168 | 169 | }(window.jQuery); -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-collapse.js: -------------------------------------------------------------------------------- 1 | /* ============================================================= 2 | * bootstrap-collapse.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#collapse 4 | * ============================================================= 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* COLLAPSE PUBLIC CLASS DEFINITION 27 | * ================================ */ 28 | 29 | var Collapse = function (element, options) { 30 | this.$element = $(element) 31 | this.options = $.extend({}, $.fn.collapse.defaults, options) 32 | 33 | if (this.options.parent) { 34 | this.$parent = $(this.options.parent) 35 | } 36 | 37 | this.options.toggle && this.toggle() 38 | } 39 | 40 | Collapse.prototype = { 41 | 42 | constructor: Collapse 43 | 44 | , dimension: function () { 45 | var hasWidth = this.$element.hasClass('width') 46 | return hasWidth ? 'width' : 'height' 47 | } 48 | 49 | , show: function () { 50 | var dimension 51 | , scroll 52 | , actives 53 | , hasData 54 | 55 | if (this.transitioning) return 56 | 57 | dimension = this.dimension() 58 | scroll = $.camelCase(['scroll', dimension].join('-')) 59 | actives = this.$parent && this.$parent.find('> .accordion-group > .in') 60 | 61 | if (actives && actives.length) { 62 | hasData = actives.data('collapse') 63 | if (hasData && hasData.transitioning) return 64 | actives.collapse('hide') 65 | hasData || actives.data('collapse', null) 66 | } 67 | 68 | this.$element[dimension](0) 69 | this.transition('addClass', $.Event('show'), 'shown') 70 | this.$element[dimension](this.$element[0][scroll]) 71 | } 72 | 73 | , hide: function () { 74 | var dimension 75 | if (this.transitioning) return 76 | dimension = this.dimension() 77 | this.reset(this.$element[dimension]()) 78 | this.transition('removeClass', $.Event('hide'), 'hidden') 79 | this.$element[dimension](0) 80 | } 81 | 82 | , reset: function (size) { 83 | var dimension = this.dimension() 84 | 85 | this.$element 86 | .removeClass('collapse') 87 | [dimension](size || 'auto') 88 | [0].offsetWidth 89 | 90 | this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') 91 | 92 | return this 93 | } 94 | 95 | , transition: function (method, startEvent, completeEvent) { 96 | var that = this 97 | , complete = function () { 98 | if (startEvent.type == 'show') that.reset() 99 | that.transitioning = 0 100 | that.$element.trigger(completeEvent) 101 | } 102 | 103 | this.$element.trigger(startEvent) 104 | 105 | if (startEvent.isDefaultPrevented()) return 106 | 107 | this.transitioning = 1 108 | 109 | this.$element[method]('in') 110 | 111 | $.support.transition && this.$element.hasClass('collapse') ? 112 | this.$element.one($.support.transition.end, complete) : 113 | complete() 114 | } 115 | 116 | , toggle: function () { 117 | this[this.$element.hasClass('in') ? 'hide' : 'show']() 118 | } 119 | 120 | } 121 | 122 | 123 | /* COLLAPSIBLE PLUGIN DEFINITION 124 | * ============================== */ 125 | 126 | $.fn.collapse = function (option) { 127 | return this.each(function () { 128 | var $this = $(this) 129 | , data = $this.data('collapse') 130 | , options = typeof option == 'object' && option 131 | if (!data) $this.data('collapse', (data = new Collapse(this, options))) 132 | if (typeof option == 'string') data[option]() 133 | }) 134 | } 135 | 136 | $.fn.collapse.defaults = { 137 | toggle: true 138 | } 139 | 140 | $.fn.collapse.Constructor = Collapse 141 | 142 | 143 | /* COLLAPSIBLE DATA-API 144 | * ==================== */ 145 | 146 | $(function () { 147 | $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { 148 | var $this = $(this), href 149 | , target = $this.attr('data-target') 150 | || e.preventDefault() 151 | || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 152 | , option = $(target).data('collapse') ? 'toggle' : $this.data() 153 | $(target).collapse(option) 154 | }) 155 | }) 156 | 157 | }(window.jQuery); -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-dropdown.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-dropdown.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#dropdowns 4 | * ============================================================ 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* DROPDOWN CLASS DEFINITION 27 | * ========================= */ 28 | 29 | var toggle = '[data-toggle="dropdown"]' 30 | , Dropdown = function (element) { 31 | var $el = $(element).on('click.dropdown.data-api', this.toggle) 32 | $('html').on('click.dropdown.data-api', function () { 33 | $el.parent().removeClass('open') 34 | }) 35 | } 36 | 37 | Dropdown.prototype = { 38 | 39 | constructor: Dropdown 40 | 41 | , toggle: function (e) { 42 | var $this = $(this) 43 | , $parent 44 | , selector 45 | , isActive 46 | 47 | if ($this.is('.disabled, :disabled')) return 48 | 49 | selector = $this.attr('data-target') 50 | 51 | if (!selector) { 52 | selector = $this.attr('href') 53 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 54 | } 55 | 56 | $parent = $(selector) 57 | $parent.length || ($parent = $this.parent()) 58 | 59 | isActive = $parent.hasClass('open') 60 | 61 | clearMenus() 62 | 63 | if (!isActive) $parent.toggleClass('open') 64 | 65 | return false 66 | } 67 | 68 | } 69 | 70 | function clearMenus() { 71 | $(toggle).parent().removeClass('open') 72 | } 73 | 74 | 75 | /* DROPDOWN PLUGIN DEFINITION 76 | * ========================== */ 77 | 78 | $.fn.dropdown = function (option) { 79 | return this.each(function () { 80 | var $this = $(this) 81 | , data = $this.data('dropdown') 82 | if (!data) $this.data('dropdown', (data = new Dropdown(this))) 83 | if (typeof option == 'string') data[option].call($this) 84 | }) 85 | } 86 | 87 | $.fn.dropdown.Constructor = Dropdown 88 | 89 | 90 | /* APPLY TO STANDARD DROPDOWN ELEMENTS 91 | * =================================== */ 92 | 93 | $(function () { 94 | $('html').on('click.dropdown.data-api', clearMenus) 95 | $('body') 96 | .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) 97 | .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) 98 | }) 99 | 100 | }(window.jQuery); -------------------------------------------------------------------------------- /assets/themes/default/hero_files/bootstrap-modal.js: -------------------------------------------------------------------------------- 1 | /* ========================================================= 2 | * bootstrap-modal.js v2.0.4 3 | * http://twitter.github.com/bootstrap/javascript.html#modals 4 | * ========================================================= 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================= */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* MODAL CLASS DEFINITION 27 | * ====================== */ 28 | 29 | var Modal = function (content, options) { 30 | this.options = options 31 | this.$element = $(content) 32 | .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) 33 | } 34 | 35 | Modal.prototype = { 36 | 37 | constructor: Modal 38 | 39 | , toggle: function () { 40 | return this[!this.isShown ? 'show' : 'hide']() 41 | } 42 | 43 | , show: function () { 44 | var that = this 45 | , e = $.Event('show') 46 | 47 | this.$element.trigger(e) 48 | 49 | if (this.isShown || e.isDefaultPrevented()) return 50 | 51 | $('body').addClass('modal-open') 52 | 53 | this.isShown = true 54 | 55 | escape.call(this) 56 | backdrop.call(this, function () { 57 | var transition = $.support.transition && that.$element.hasClass('fade') 58 | 59 | if (!that.$element.parent().length) { 60 | that.$element.appendTo(document.body) //don't move modals dom position 61 | } 62 | 63 | that.$element 64 | .show() 65 | 66 | if (transition) { 67 | that.$element[0].offsetWidth // force reflow 68 | } 69 | 70 | that.$element.addClass('in') 71 | 72 | transition ? 73 | that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : 74 | that.$element.trigger('shown') 75 | 76 | }) 77 | } 78 | 79 | , hide: function (e) { 80 | e && e.preventDefault() 81 | 82 | var that = this 83 | 84 | e = $.Event('hide') 85 | 86 | this.$element.trigger(e) 87 | 88 | if (!this.isShown || e.isDefaultPrevented()) return 89 | 90 | this.isShown = false 91 | 92 | $('body').removeClass('modal-open') 93 | 94 | escape.call(this) 95 | 96 | this.$element.removeClass('in') 97 | 98 | $.support.transition && this.$element.hasClass('fade') ? 99 | hideWithTransition.call(this) : 100 | hideModal.call(this) 101 | } 102 | 103 | } 104 | 105 | 106 | /* MODAL PRIVATE METHODS 107 | * ===================== */ 108 | 109 | function hideWithTransition() { 110 | var that = this 111 | , timeout = setTimeout(function () { 112 | that.$element.off($.support.transition.end) 113 | hideModal.call(that) 114 | }, 500) 115 | 116 | this.$element.one($.support.transition.end, function () { 117 | clearTimeout(timeout) 118 | hideModal.call(that) 119 | }) 120 | } 121 | 122 | function hideModal(that) { 123 | this.$element 124 | .hide() 125 | .trigger('hidden') 126 | 127 | backdrop.call(this) 128 | } 129 | 130 | function backdrop(callback) { 131 | var that = this 132 | , animate = this.$element.hasClass('fade') ? 'fade' : '' 133 | 134 | if (this.isShown && this.options.backdrop) { 135 | var doAnimate = $.support.transition && animate 136 | 137 | this.$backdrop = $('