После прочтения поста "Как устроен мой виртуальный мир" я вспомнил что у меня раньше использовался список ToDo. Вот сегодня и я расскажу как такое сделать. Сама идея сделать свой ToDo у меня пришла после того, как на хабре опубликовали пост про microToDo. Основным недостатком я считал то, что все сохраняется на куках. Вот потом и появилось мое решение Этот ToDo будет находиться в модуле board. Итак, приступим. Для начала мы активируем этот модуль. Создаем две категории: Название 1 категории: Выполнено Название 2 категории: Не выполнено Если вы хотите сделать, чтобы смотреть список могли вы, то поставьте при создании категории необходимые права. Внимание! Обязательно у первой категории должен быть ID 1, у второй - ID 2. Переходим в настройки модуля и делаем все как на скрине: Все. Первый этап окончен. Едем дальше. Заходим в редактирование шаблонов. Модуль - Доска объявлений. Шаблон: Главная страница модуля Code <html> <head> <title>$MODULE_NAME$ - $SITE_NAME$</title> <style type='text/css' media='all'> body {font: normal normal normal large/1.6em Verdana, sans-serif;}
header a, header span {opacity:.3;} header a:hover {opacity:1; color:#0000FF;} header a {padding-right:1em; color:black;} #name {text-decoration:none;}
.ahtung {background:yellow; padding:1em;} .hidden {display:none;}
.add {margin-top:1em;} #new {width:40%;}
ul, p, footer {margin:0 0 .2em 6em; padding-left:0;} footer {font-size:medium;}
ul {padding:1em 0 1em 0; clear:both;}
li {list-style:none;} li a, footer #del {text-decoration:none; color:red; visibility: hidden; padding:0 .6em;} li:hover a, footer:hover #del {visibility: visible}
.OK, .add a {opacity:.2;} .add label * {float:left; padding:.2em; margin:2px; line-height:1.6em; font-size:large;} .add a {text-decoration:none; color:black; padding:1px; margin:3px 0 0 8px;} .add a:hover, .add a:active {opacity:1; background:#D8D8D8; margin:1px 0 0 6px; border:2px solid red; border-color:#E9E9E9 #C7C7C7 #C7C7C7 #E9E9E9;} .add a:active {border-color:#C7C7C7 #E9E9E9 #E9E9E9 #C7C7C7;}
.info {padding:.6em 0; color:#25BA25;} .info a {color:#179217;} .info a:hover {color:#FF3722;}
.opacity_on {opacity:.3;} .opacity_off {opacity:1;}
footer {font:0.9em Verdana;} </style> </head> <body> <header> <a href='http://vadimklimenko.com/blog/2009-12-01-44' id='name'> U.ToDo</a> </header>
<form action='#' method='post' id='add'> <p class='add'> <label><input type='text' id='new' value='Что нужно написать?' maxlength='255' onclick="if(this.value=='Что нужно написать?')this.value='';" onblur="if(this.value=='')this.value='Что нужно написать?';" /> <a href='#' id='addtodo' onclick="sendZamech();"> ← Enter </a></label> </p> </form>
<ul id="ToDoList">$BODY$</ul> <script type="text/javascript"> function sendZamech(){ zText = $("#new").val(); $.get('/board/0-0-0-0-1', function(o){ $.post('/board/', {ocat: 1,brief: zText,edttbrief: 2,format_brief: 1,html_brief: 1,coms_allowed: 1,a: 12,ssid: $('input[name="ssid"]', o).val(),numi: 1}, function(qqq){ location.reload(); }); }); } </script> </body> <footer>$POWERED_BY$. Дизайн и все такое от <a href='http://ru.bmsubmitter.com/buy/microToDo/demo.html' title='Гыгы' id='name'>µToDo</a>, переделано под uCoz: <a href='http://vadimklimenko.com' id='name'>Vadim Klimenko</a></footer> </html> Если же вы не хотите,чтобы пользователи и не видели ToDo, то прописываем так: Code <?if($USER_GROUP$='Администраторы')?> *Тут содержимое предыдущего кода* <?else?> <html> <head> <meta name="robots" content="noindex,nofollow"> <title> HTTP 403 Запрещено </title> <style> body, td {font-family:Tahoma,Arial;font-size:9pt;} a:link {text-decoration:underline; color:#0000FF} a:visited {text-decoration:underline; color:#0000FF} a:hover {text-decoration:underline; color:#FF0000} .copy {font-size:7pt;} </style> </head> <body bgcolor="#FFFFFF"> <table height="100%" width="100%" border="0"> <tr height="100"> <td valign="top" align="center"> <h2> У вас нет прав для просмотра этого ресурса </h2> </td> </tr> <tr> <td valign="top" align="center">
Возможно, просмотр этого ресурса с использованием указанных вами личных данных не разрешен. </p> </td> </tr> <tr> <td valign="bottom" align="center" class="copy"> <br>$POWERED_BY$</b> </a> <br> </td> </tr> </table> </body>
</html>
<?endif?> Ну и последний этап - вид материалов. Code <div id="dltentr$ID$" style="display: none;">$MODER_PANEL$</div> <?if($CATEGORY_NAME$="Выполнено")?><li><label><input onclick="sendZamech$ID$();return false;" title="Пометить как не выполнено" type="checkbox"> $MESSAGE$ <a href="#" title="Удалить" onclick="$('#dltentr$ID$ img[src=\'http://s21.ucoz.net/img/fr/EmnD.gif\']').parent().click();return false;">×</a> </label> </li><?endif?> <?if($CATEGORY_NAME$="Не выполнено")?><li class="OK"><label><input title="Выполнено?" checked="checked" onclick="sendZamech$ID$();return false;" type="checkbox"> $MESSAGE$ <a href="javascript://" title="Удалить" onclick="$('#dltentr$ID$ img[src=\'http://s21.ucoz.net/img/fr/EmnD.gif\']').parent().click();return false;">×</a> $DATE$($TIME$)</li></label><?endif?> <?if($CATEGORY_NAME$="Выполнено")?><script type="text/javascript"> function sendZamech$ID$(){ $.get('/board/0-0-0-$ID$-13', function(o){ $.post('/board/', {brief:$('textarea[name="brief"]',o).val(), jkd498:1, jkd428:1, ocat:2, edttbrief:2, format_brief:1, html_brief:1, is_pending:0, coms_allowed:1, id:$ID$, a:14, ssid: $('input[name="ssid"]', o).val(),numi: 1}, function(qqq){ location.reload(); }); }); } </script><?endif?> <?if($CATEGORY_NAME$="Не выполнено")?><script type="text/javascript"> function sendZamech$ID$(){ $.get('/board/0-0-0-$ID$-13', function(o){ $.post('/board/', {brief:$('textarea[name="brief"]',o).val(), jkd498:1, jkd428:1, ocat:1, edttbrief:2, format_brief:1, html_brief:1, is_pending:0, coms_allowed:1, id:$ID$, a:14, ssid: $('input[name="ssid"]', o).val(),numi: 1}, function(qqq){ location.reload(); }); }); } </script><?endif?> Текст меняете на свое Вот и все Пример Убедительная просьба: оставляйте копирайты. При копировании - обязательная ссылка на блог - обязательна. PS: Все так очень сложно расписано, потому что у меня через sendZamech(id); не получилось UPD: В последнем коде есть две ссылки на изображение http://s21.ucoz.net/img/fr/EmnD.gif. Чтобы все работало корректно, заменяем в том изображении s21 на номер своего сервера. Вы можете его увидеть у себя в панели управления.
|