Клименко Вадим [Архив]
Делаем ToDo-лист на uCozuCoz
После прочтения поста "Как устроен мой виртуальный мир" я вспомнил что у меня раньше использовался список 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 на номер своего сервера. Вы можете его увидеть у себя в панели управления.

Написано 1 декабря 2009 года
Комментарии выключены, так как это архив. Новые материалы можно прочитать в новом блоге