Быстро создаем себе структуру своего шаблона с нуля
|
|
Автор: Львенок
Опубликовано: 797 дней назад (18 марта 2010)
Рубрика: Без рубрики
Редактировалось: 1 раз — 18 марта 2010
Играет: SpyGames OST
|
+23↑ Голосов: 27 |
Для тех, кто знает и немного работал с HTML и CSS, но пугается огромного объема информации, находящегося в "/templates/_default_/template.php".
Результат будет не совсем ожидаемый, но логика действий, надеюсь будет проста и понятна...
Итак...
1. Копируем себе в резерв на всякий случай "/templates/_default_/template.php" и "templates/_default_/css/styles.css"
2. Создаем себе простейший html-файл (хоть в Dreamweaver`е, как я) с таблицей похожей на расположение стандартного шаблона:
3. В самое начало файла вместо тэга "<html>"вставляем инициализацию:
4. В средний ряд в ячейки вставляем строки для блоков модулей:
В левую среднюю ячейку вставляем "<?php cmsModule("left"); ?>". Заодно добавляем ей атрибуты <td valign="top" id="left">
В самую среднюю вставляем
В правую среднюю ставим
5. Теперь нам надо подцепить в заголовок кучу мета-данных, кодировки и яваскрипты:
из нашего файлика выкидываем все между тэгами "<head></head>" и вставляем туда код, находящийся в этих тэгах в файле "/templates/_default_/template.php":
6. В верхние объединенные ячейки вставляем код "<div id="sitename"><?php cmsPrintSitename(); ?></div>"
Сюда же через "
" прикручиваем "глубиномер": "<div><?php cmsPathway(’»’); ?> </div>".
7. В подвал (в нижние объединенные ячейки) вставляем "<div id="footer"><a href="/"><?php cmsPrintSitename(); ?></a> © <?php echo date(’Y’)?></div>"
8. Теперь самое сложное и интересное...
Нам нужно вставить кусок кода для авторизации, меню для пользователя "Зарегистрироваться, Авторизоваться, Выйти", и код для поиска.
Вам нужно определиться, куда вы хотите это прикрутить, и будем прикручивать.
Я решил что мне будет удобно в правой средней ячейке сверху перед блоком правых модулей.
Лезу, соответственно, в эту ячейку и поочередно вставляю следующие куски кода:
Для ввода пароля:
Дальше...
Блок меню "Зарегистрироваться, Авторизоваться, Выйти" идет одной таблицей, объединенной еще и с формой поиска. Берем все это также из "/templates/_default_/template.php":
". В вышеприведенном коде уже меню уже идет вместе с переносами строк, чтобы Вам было проще копировать, вставлять и разбираться дальше...
Собственно и все... Сохраняем получившийся файлик вместо "/templates/_default_/template.php".
В результате у меня получилос вот такой вот файл:
Теперь вы можете стереть файл "templates/_default_/css/styles.css"(предварительно сохранив старый вариант). Создать новый... и копировать в новый нужные блоки из старого файла, заодно разбираясь и внося нужные исправления в стили...
Если уж вы понимаете, что напортачили и запутались, то восстанавливаете ранее сохраненные файлы и начинаете заново...
Всем удачи!!! ;)
Результат будет не совсем ожидаемый, но логика действий, надеюсь будет проста и понятна...
Итак...
1. Копируем себе в резерв на всякий случай "/templates/_default_/template.php" и "templates/_default_/css/styles.css"
2. Создаем себе простейший html-файл (хоть в Dreamweaver`е, как я) с таблицей похожей на расположение стандартного шаблона:
Код PHP:
Надеюсь здесь все понятно. Заголовок, простая таблица 3х3 ячейки, верхние ячейки объединены в одну и нижние тоже...<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
</table>
</body>
</html>3. В самое начало файла вместо тэга "<html>"вставляем инициализацию:
Код PHP:
<?php if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
4. В средний ряд в ячейки вставляем строки для блоков модулей:
В левую среднюю ячейку вставляем "<?php cmsModule("left"); ?>". Заодно добавляем ей атрибуты <td valign="top" id="left">
В самую среднюю вставляем
Код PHP:
Атрибуты ставим "<td valign="top" id="center">" <div><?php cmsModule("top"); ?></div>
<div><?php cmsBody(); ?></div>
<div><?php cmsModule("bottom"); ?></div>
В правую среднюю ставим
Код PHP:
Атрибуты ставим соответственно "<td valign="top" id="right">"<?php if (cmsCountModules("right")) { ?>
<?php cmsModule("right"); ?>
<?php } ?>5. Теперь нам надо подцепить в заголовок кучу мета-данных, кодировки и яваскрипты:
из нашего файлика выкидываем все между тэгами "<head></head>" и вставляем туда код, находящийся в этих тэгах в файле "/templates/_default_/template.php":
Код PHP:
Так, скрипты подцепили...<!-- HEAD !-->
<?php cmsPrintHead(); ?>
<link href="/templates/_default_/css/styles.css" rel="stylesheet" type="text/css" />
<link type='text/css' href='/templates/_default_/basic/css/basic.css' rel='stylesheet' media='screen' />
<!--[if lt IE 7]>
<link type='text/css' href='/templates/modern/basic/css/basic_ie.css' rel='stylesheet' media='screen' />
<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<script src='/templates/_default_/basic/js/jquery.simplemodal.js' type='text/javascript'></script>
<script src='/templates/_default_/basic/js/basic.js' type='text/javascript'></script>
<script type="text/javascript" src="/templates/_default_/jquery.iepnghack.1.6.js"></script>
<script type="text/javascript">$(function(){ $("#logoimg").pngfix(); })</script>
6. В верхние объединенные ячейки вставляем код "<div id="sitename"><?php cmsPrintSitename(); ?></div>"
Сюда же через "
" прикручиваем "глубиномер": "<div><?php cmsPathway(’»’); ?> </div>".
7. В подвал (в нижние объединенные ячейки) вставляем "<div id="footer"><a href="/"><?php cmsPrintSitename(); ?></a> © <?php echo date(’Y’)?></div>"
8. Теперь самое сложное и интересное...
Нам нужно вставить кусок кода для авторизации, меню для пользователя "Зарегистрироваться, Авторизоваться, Выйти", и код для поиска.
Вам нужно определиться, куда вы хотите это прикрутить, и будем прикручивать.
Я решил что мне будет удобно в правой средней ячейке сверху перед блоком правых модулей.
Лезу, соответственно, в эту ячейку и поочередно вставляю следующие куски кода:
Для ввода пароля:
Код PHP:
Этот блок на самом деле не имеет значение куда вставлять. Главное чтобы он не разбивал структуру документа в ненужном месте... <div id="authModal" style='display:none'> <form id="authform" target="_self" style="margin: 0px;" name="authform" method="post" action="/login"> <div id="authtitle">Авторизация</div> <table cellpadding="2" cellspacing="2" align="center" id="authtable"> <tr> <td id="authtd">Логин:</td> <td id=""><input name="login" type="text" id="authinput" /></td> </tr> <tr> <td id="authtd">Пароль:</td> <td id=""><input name="pass" type="password" id="authinput" /></td> </tr> </table> <div id="authoption"><input type="checkbox" value="1" name="remember"/>Запомнить меня | <a href="/0/passremind.html">Забыли пароль?</a></div> <div id="authbutton"><input name="auth" type="submit" value="Войти" id="authbtn"/></div> </form> </div>
Дальше...
Блок меню "Зарегистрироваться, Авторизоваться, Выйти" идет одной таблицей, объединенной еще и с формой поиска. Берем все это также из "/templates/_default_/template.php":
Код PHP:
Для того чтобы пункты меню справа были каждый с новой строки, я после каждой ссылки вида "<a href="/registration" id="ht_reg">Регистрация</a>" добавляю перенос строки "
<table width="370" border="0" align="right" cellpadding="0" cellspacing="0" id="headtools">
<tr>
<td>
<!-- Если юзер не авторизован, показываем ему ссылки с регистрацией и авторизацией -->
<?php if(!$inUser->id){ ?>
<a href="/registration" id="ht_reg">Регистрация</a>
<a href="javascript:auth()" id="ht_auth">Авторизация</a>
<a href="javascript:window.external.AddFavorite('http://<?php echo $_SERVER['HTTP_HOST']?>/', '<?php cmsPrintSitename(); ?>')" id="ht_fav">В избранное</a>
<?php } else {
$uid = $inUser->id;
$newmsg = usrNewMessages($inUser->id);
?>
<a href="/users/0/<?php echo $uid?>/profile.html" id="ht_profile">Мой профиль</a>
<?php if (!$newmsg) { ?>
<a href="/users/0/<?php echo $uid?>/messages.html" id="ht_messages">Cообщения</a>
<?php } else { ?>
<a style="color:#F60;" href="/users/0/<?php echo $uid?>/messages.html" id="ht_messages">Cообщения <?php echo strip_tags($newmsg)?></a>
<?php } ?>
<a href="/logout" id="ht_logout">Выход</a>
<?php } ?>
</td>
</tr>
<tr>
<td>
<div id="bar_search">
<form name="searchform" action="/index.php" method="get">
<input type="hidden" name="view" value="search" />
<input name="query" type="text" id="searchinput" /><input name="gosearch" id="searchbtn" type="image" src="/templates/_default_/images/searchbtn.png" alt="Поиск" width="22" height="23" onclick="document.searchform.submit()"/>
</form>
</div>
</td>
</tr>
</table>
". В вышеприведенном коде уже меню уже идет вместе с переносами строк, чтобы Вам было проще копировать, вставлять и разбираться дальше...
Собственно и все... Сохраняем получившийся файлик вместо "/templates/_default_/template.php".
В результате у меня получилос вот такой вот файл:
Код PHP:
Если вы зайдете на свой сайт с этим файлом шаблона, то увидите, что все это хоть и криво (CSS стили мы пока еще не трогали, они остались старыми), но примерно на том месте где и ожидалось. Теперь вы знаете что где находится. Знаете в каком блоке какие классы используются и что нужно прописывать в CSS, чтобы получить желаемый результат. <?php if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- HEAD !-->
<?php cmsPrintHead(); ?>
<link href="/templates/_default_/css/styles.css" rel="stylesheet" type="text/css" />
<link type='text/css' href='/templates/_default_/basic/css/basic.css' rel='stylesheet' media='screen' />
<!--[if lt IE 7]>
<link type='text/css' href='/templates/modern/basic/css/basic_ie.css' rel='stylesheet' media='screen' />
<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<script src='/templates/_default_/basic/js/jquery.simplemodal.js' type='text/javascript'></script>
<script src='/templates/_default_/basic/js/basic.js' type='text/javascript'></script>
<script type="text/javascript" src="/templates/_default_/jquery.iepnghack.1.6.js"></script>
<script type="text/javascript">$(function(){ $("#logoimg").pngfix(); })</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table >
<tr>
<td colspan="3"><div id="sitename"><?php cmsPrintSitename(); ?></div>
<div><?php cmsPathway('»'); ?> </div></td>
</tr>
<tr>
<td valign="top" id="left"><?php cmsModule("left"); ?></td>
<td valign="top" id="center">
<div><?php cmsModule("top"); ?></div>
<div><?php cmsBody(); ?></div>
<div><?php cmsModule("bottom"); ?></div>
</td>
<td><div id="authModal" style='display:none'>
<form id="authform" target="_self" style="margin: 0px;" name="authform" method="post" action="/login">
<div id="authtitle">Авторизация</div>
<table cellpadding="2" cellspacing="2" align="center" id="authtable">
<tr>
<td id="authtd">Логин:</td>
<td id=""><input name="login" type="text" id="authinput" /></td>
</tr>
<tr>
<td id="authtd">Пароль:</td>
<td id=""><input name="pass" type="password" id="authinput" /></td>
</tr>
</table>
<div id="authoption"><input type="checkbox" value="1" name="remember"/>Запомнить меня | <a href="/0/passremind.html">Забыли пароль?</a></div>
<div id="authbutton"><input name="auth" type="submit" value="Войти" id="authbtn"/></div>
</form>
</div>
<table width="370" border="0" align="right" cellpadding="0" cellspacing="0" id="headtools">
<tr>
<td>
<!-- Если юзер не авторизован, показываем ему ссылки с регистрацией и авторизацией -->
<?php if(!$inUser->id){ ?>
<a href="/registration" id="ht_reg">Регистрация</a>
<a href="javascript:auth()" id="ht_auth">Авторизация</a>
<a href="javascript:window.external.AddFavorite('http://<?php echo $_SERVER['HTTP_HOST']?>/', '<?php cmsPrintSitename(); ?>')" id="ht_fav">В избранное</a>
<?php } else {
$uid = $inUser->id;
$newmsg = usrNewMessages($inUser->id);
?>
<a href="/users/0/<?php echo $uid?>/profile.html" id="ht_profile">Мой профиль</a>
<?php if (!$newmsg) { ?>
<a href="/users/0/<?php echo $uid?>/messages.html" id="ht_messages">Cообщения</a>
<?php } else { ?>
<a style="color:#F60;" href="/users/0/<?php echo $uid?>/messages.html" id="ht_messages">Cообщения <?php echo strip_tags($newmsg)?></a>
<?php } ?>
<a href="/logout" id="ht_logout">Выход</a>
<?php } ?>
</td>
</tr>
<tr>
<td>
<div id="bar_search">
<form name="searchform" action="/index.php" method="get">
<input type="hidden" name="view" value="search" />
<input name="query" type="text" id="searchinput" /><input name="gosearch" id="searchbtn" type="image" src="/templates/_default_/images/searchbtn.png" alt="Поиск" width="22" height="23" onclick="document.searchform.submit()"/>
</form>
</div>
</td>
</tr>
</table>
<?php if (cmsCountModules("right")) { ?>
<?php cmsModule("right"); ?>
<?php } ?>
</td>
</tr>
<tr>
<td colspan="3">
<div id="footer">
<a href="/"><?php cmsPrintSitename(); ?></a> © <?php echo date('Y')?>
</div>
</td>
</tr>
</table>
</body>
</html>
Теперь вы можете стереть файл "templates/_default_/css/styles.css"(предварительно сохранив старый вариант). Создать новый... и копировать в новый нужные блоки из старого файла, заодно разбираясь и внося нужные исправления в стили...
Если уж вы понимаете, что напортачили и запутались, то восстанавливаете ранее сохраненные файлы и начинаете заново...
Всем удачи!!! ;)
| # 18 марта 2010 в 04:38 +1 | ||
|
| # 18 марта 2010 в 10:16 0 | ||
|
| # 18 марта 2010 в 10:20 0 | ||
|
| # 18 марта 2010 в 10:28 0 | ||
|
| # 18 марта 2010 в 10:34 0 | ||
|
| # 18 марта 2010 в 10:45 0 |
| # 18 марта 2010 в 10:41 0 | ||
|
| # 18 марта 2010 в 12:04 0 | ||
|
| # 18 марта 2010 в 12:06 0 | ||
|
| # 18 марта 2010 в 14:25 0 |
| # 18 марта 2010 в 14:27 0 | ||
|
| # 18 марта 2010 в 15:17 0 | ||
|
| # 18 марта 2010 в 15:28 0 | ||
|
| # 18 марта 2010 в 12:18 0 | ||
|
| # 18 марта 2010 в 15:56 0 |
|
Действительно "доходчиво и понятно!!!"... Одно не ясно почему "человеки" продолжают заниматься "мартышкиным трудом"? Мы ведь на компьютере работаем? Так почему все эти "перетаскивания стандартных блоков" не "засунуть" в общий модуль с толковым интерфейсом. Дать на него линк из "админки" и обозвать просто - "Конструктор шаблонов" Получим что-то типа этого: http://anton.shevchuk.name/wordpress/theme-constructor-for-wordpress-updated/ Мы ведь к этому стремимся? Спасибо автору, что сделал шаг в нужном направлении: "Строим любой сайт одними кликами - без программиста" |
| # 18 марта 2010 в 16:13 0 |
| # 18 марта 2010 в 16:54 0 |
| # 19 марта 2010 в 06:22 0 | ||
|
| # 18 марта 2010 в 16:24 +1 |
|
А если "разобрать на косточки" вот это: http://wiki.a-cms.ru/constructor/index и ... с божьей помощью и того же Smarty ... Естественно без унификации и некоторой "жесткости" в концепции не обойтись, зпто получим универсальный инструмент ... прецеденты ведь на лицо |
| # 20 августа 2011 в 07:57 0 | ||
|
| # 25 декабря 2011 в 12:35 -1 |
| # 25 декабря 2011 в 12:52 -1 | ||
|
| # 25 декабря 2011 в 12:56 -1 | ||
|
| # 25 декабря 2011 в 12:57 -1 | ||
|