Небольшое лирическое отступление - "XXX" не имеет никакого отношения к сексу с кем или чем либо... 
Интересно, что для ограничения публикации нет необходимости писать свой модуль (хотя наверное это было бы правильнее, но это обсуждаемо) в данном примере - все реализовано в тем.
Суть вопроса состояла в том, что пользователи должны вводить максимум 5 нод в сутки определенного типа. При этом нам необходимо оставить возможность редактировать все введенные пользователем ноды (его авторства конечно)
Итак приступим:
нам необходимо вставить эти конструкции в конце template.php для того чтобы подключить собственную форму редактирования ноды для контента content_news
<?php
//Форма добавления
if ((arg(0) == 'node') && (arg(1) == 'add') && (arg(2) == 'content_news')){
	 function phptemplate_node_form($form) {
	 return _phptemplate_callback('news_edit', array('user' => $user, 'form' => $form));
	 }
}
// Форма редактирования
if ((arg(0) == 'node') && (arg(2) == 'edit'  && (arg(2) == 'content_news'))){
    $node = node_load(array('nid' => arg(1)));
		function phptemplate_node_form($form) {
          	return _phptemplate_callback('news_edit', array('user' => $user, 'form' => $form));
		}
}
?>
в качестве комментария - вы можете пропустить проверку arg(2) - тогда у вас будет один шаблон для редактирования любых типов контента. Или вы можете указать отдельный шаблон для добавления или для редактирования даже в одном типе контента. Очень здорово - не правда ли?
А теперь пора создавать шаблон для формы редактирования/Добавления (news_edit.tpl.php):
<?php
if (arg(1) == 'add') {
	$edit_title = "Добавление новости";
        //делаем что-то при добавлении ноды
        global $user;
        $sql_usernodes = "SELECT COUNT(n.nid) as nidcounter FROM {node} n WHERE n.uid=".$user->uid." AND  FROM_UNIXTIME(n.created)>DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR) AND n.type = 'content_news' GROUP BY n.uid ";
        //запрос выдает нам счетчик нод которые запостил пользователь за последние 24 часа
        $qry_usernodes =  db_query($sql_usernodes);
        if (db_num_rows($qry_usernodes)>0) {
	      $cntr = db_fetch_object($qry_usernodes);
	      $ncounter= $cntr->nidcounter;
        } else {
	      $ncounter=0;
        }
       //$ncounter - количество нод которые опубликовал пользователь,проверяем что не больше пяти
       if ($ncounter>5) {
	   $edit_title = "Ошибка!";
	    print '
'.$edit_title.'
';
	    print 'Ограничения не позволяют Вам публиковать более 5 новостей в сутки!';
        } else {
            print form_render($form);
       }
} else {
	$edit_title = "Редактирование новости";
        //делаем что-то при редактировании ноды
        print form_render($form);
}
?>
Помимо таких ограничений вы можете также темизировать формы добавления, редактирования нод. (достаточно поработать с $form), но это уже отдельная тема.
P.S. очень логичным так же выглядит такая проверка с помощью создания модуля который будет проверять кол-во опубликованных нод. Вариант с темами не очень удобен в том плане, что значение которое вы используете как ограничитель - задается жестко. А в модуле вы можете создать страницу с настройками и сохранять это значение в переменной в базе.


Комментарии
О, то что надо! Все думал, как же это реализовать, а тут и ответ Спасибо!
 Спасибо!
Сейчас поставлю себе, погоняю, может еще что придумается.
Спасибо! Очень полезная функция. А как сделать, чтобы после заполнения формы пользователь сразу уходил на frontpage?
дааа, нужная вещь!
подскажите, мне в перспективе понадобится, чтоб пользователи могли создавать вообще только один нод (именно в отдельном созданном блоге) с возможностью редактирования
например в стандартном блоге - все без границ
а в другом его подобии – ограничение только на один нод
спасибо
deletedСпасибо. Нужно будет подумать для 6ки
deletedЗадался поиском решения для Drupal 6 - http://drupal.org/project/node_limit. Также на странице модуля есть ссылки еще на три подобных по функционалу модуля, в том числе и под D5.