Не буду описывать особенности данного фреймворка, для этого есть документация:
Сразу перейдем к разработке шаблона: Начнем с того, что оптимально использовать html5+css3 при верстке сайта, т.к. сам фреймворк использует данную связку, т.е. структура файла index.php шаблона будет примерно следующей :
<?php defined('_JEXEC') or die; ?>
<?php echo '<?'; ?>xml version="1.0" encoding="<?php echo $this->_charset ?>"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/bootstrap-responsive.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
</head>
<body>
...
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/widgets.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-alert.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-button.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-carousel.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-collapse.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-dropdown.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-modal.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-tab.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-tooltip.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-popover.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/bootstrap/plugins/bootstrap-typeahead.js"></script>
</body>
</html>
Итого:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Дополнительно желательно отключить mootools, чтобы в последствии не пришлось использовать jQuery.noConflict():
unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
$this->_scripts[$this->baseurl.'/media/system/js/core.js'],
$this->_scripts[$this->baseurl.'/media/system/js/caption.js']);
if (isset($this->_script['text/javascript']))
{
$this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
if (empty($this->_script['text/javascript']))
unset($this->_script['text/javascript']);
Кроме того, если требуется поддержка html5/css3 в браузерах ie младших версий, то стоит подключить еще и стили и скрипты для этих браузеров.
Модальное окно в дефолтном варианте не самый лучший выбор для показа изображений, по этому кроме него решено подключать jquery.colorbox, т.е., при весе 10Кб, поддерживает фреймы, слайдинг изображений, AJAX, видео, галаереи изображений, флэш, плюс достаточно прост в настройке и модификации, а т.к. мы используем еще и jQ, то вполне можно подключить еще доп. библиотеку слайдера на 5-20 строк кода.
На финальной стадии проекта оптимально все скрипты и CSS объеденить в два файла, провести компрессию и упаковать в gzip самостоятельно, это даст ощутимый выигрыш в скорости, но при этом потребуется перенести все скрипты из компонентов в данный единый файл. Объединять плагинами — не рекомендую, больше проблем в итоге будет.