Ru-Board.club
← Вернуться в раздел «Системы управления сайтами»

» Модифицированный календарь

Автор: FatCat
Дата сообщения: 15.08.2001 19:29
Привет! Я вернулся из отпуска, если это кого-то интересует :)

Переделал модуль Calendar под наши нужды - посмотреть в действии можно на Rolemancer - второй блок в правом меню.
Новая функция - вывод новостей на конкретный день и только это. Просили.

Образец 1, Образец 2, Образец 3,

На баги пока, правда, не протестировано.

Если кому-то интересно - могу выслать модифицированные файлы модуля. Правда они у вас скорей всего сразу не пойдут - у нас несколько отличный от стандартного вывод новостной ленты, кажется есть лишние переменные. Но если их приветсти в соответствие со стандартной функцией themeindex, то, по идее должно заработать.

Автор: Uniq
Дата сообщения: 16.08.2001 08:19
Привет, FatCat! С возвращением!
>Если кому-то интересно - могу выслать модифицированные файлы модуля.
Мне интересно , я ведь такой вопрос задавал. Вот сюда - webmaster@reaktor.ru

Спасибо заранее!
Автор: FatCat
Дата сообщения: 16.08.2001 10:02
Сделаем проще (вдруг еще кому-то нужно). Вот тут лежит архив того что внутри /modules, остальное я вроде бы не менял.
Автор: Uniq
Дата сообщения: 16.08.2001 11:21
Спасибо, сейчас приступим к установке...
Автор: Uniq
Дата сообщения: 16.08.2001 13:00
2Fatcat. Там наверно еще таблицы надо новые делать? У меня например такой таблицы - events - нет. Вы ее сами сделали или в оригинальном календаре она создается?
Автор: Uniq
Дата сообщения: 16.08.2001 15:27
Взял оригинальный календарь, понял, надо еще пару табличек вставить. Вставил... Отлично, теперь календарь начал запускаться... Но что это? Сразу под табличкой с месяцем - Warning: Supplied argument is not a valid MySQL result resource in c:\internet\home\localhost\www\modules\Calendar\index.php on line 963
Нет новостей на этот день...

О, чего то не хватает... Идем смотреть line 963...
Там у нас:

$result = mysql_query("SELECT eid, aid, title, time, hometext, comments, counter, topic, informant FROM nuke_events ORDER BY eid DESC limit $storynum");
if(!$result) {
echo mysql_errno(). ": ".mysql_error(). "<br>"; exit();
}

В общем, своим умом мне календарь не поставить
Автор: FatCat
Дата сообщения: 16.08.2001 16:50
Может у тебя версия не та? Я ставил с 1.41, в ней эта таблица уже есть.


Код: CREATE TABLE nuke_events (
eid BIGINT NOT NULL auto_increment,
aid varchar(30) NOT NULL default '',
title varchar(150) default NULL,
time datetime default NULL,
hometext BLOB,
comments int(11) default '0',
counter mediumint(8) unsigned default NULL,
topic int(3) NOT NULL default '1',
informant varchar(20) NOT NULL default '',
eventDate DATE NOT NULL,
endDate DATE NOT NULL,
startTime TIME,
endTime TIME,
alldayevent INT(1) NOT NULL default '0',
barcolor VARCHAR(1),
PRIMARY KEY (eid)
);
Автор: FatCat
Дата сообщения: 16.08.2001 16:57
Вообще, я таблицы не менял, незачем, пусть болтаются пара лишних, не страшно.
Автор: Uniq
Дата сообщения: 16.08.2001 17:07
Итак, я скачал дистрибутив календаря у вас. Поставил благополучно. Календарь успешно запускался и работал (кстати нюка у меня 5.01).
Потом я отредактировал ваши файлы, заменив все префиксы на свои.
Потом все ваши файлы залил поверх оригинальных календарных.
Не работает.
Warning: Supplied argument is not a valid MySQL result resource in c:\internet\home\localhost\www\modules\Calendar\index.php on line 963

FatCat, ХЭЛП!!!
Автор: FatCat
Дата сообщения: 17.08.2001 16:41
посмотри вот этот кусок:


Код:

function viewEvent($eid) {
global $admin,$module_name,$time24Hour,$useInternationalDates;
OpenTable();
$result = mysql_query("SELECT * FROM rolemancer_events WHERE eid=$eid");

Автор: Uniq
Дата сообщения: 17.08.2001 17:01
Префиксы все сменил ,это точно. Скорее всего дело в доп. переменных, две я уже нашел - $source_name, $source_url, а других нет?

И еще вопрос, когда браузер выдает Warning: Supplied argument is not a valid MySQL result resource in c:\internet\home\localhost\www\modules\Calendar\index.php on line 963, он при этом считает пустые строки и строки от вложенных (include) файлов?
Автор: Uniq
Дата сообщения: 17.08.2001 17:16
Ура, я нашел ошибку, там где в оригинальном календаре таблицы зовутся nuke_referer, у вас просто referer. Исправил, ошибки теперь не выдаются.
Переменные доп. тоже убрал. Одна проблема. Новости не показываются... Бум копать...
Автор: Uniq
Дата сообщения: 17.08.2001 17:33
Я сделал это! Новости не выводились из-за разных названий таблиц, у вас просто story, а у меня то nuke_story! Все дело в том, что в пятых нбках по умолчанию ставится префикс Nuke, а у вас вроде 4-ый?
В любом случае, Fatcat, огромнейшее спасибо! Жалко я не могу угостить вас пивом
Автор: FatCat
Дата сообщения: 18.08.2001 20:22
Хе-хе...я сам себя тогда угощу
Рад за тебя.


Цитата:
там где в оригинальном календаре таблицы зовутся nuke_referer, у вас просто referer

Это потому что у нас движок на основе версии 4.4, а префиксы ввели с 5-ой.



Цитата:

И еще вопрос, когда браузер выдает Warning: Supplied argument is not a valid MySQL result resource in c:\internet\home\localhost\www\modules\Calendar\index.php on line 963, он при этом считает пустые строки и строки от вложенных (include) файлов?

Нет, но он может "съезжать" от места реальной ошибки.

Я тут подумал - на днях попробую еще малость поковырять, чтобы на ненаступившие еще даты выдавалось либо "На этот день новостей нет", либо просто чтобы дни не линковались.
Автор: Uniq
Дата сообщения: 20.08.2001 11:11
Привет. Пара новых проблем. Я думал только у меня, но зашел на ролемансер, там аналогичная проблема. В общем когда выводим календарь за год, то под таблицей с календарем на год высвечиваются новости за 9 августа (и у меня и у вас). Возможно завтра вообще будут выводится новости за 10 августа...

Второе. У меня не выводится надпись "Нет новостей на этот день". Просто пустое пространство. И когда вывожу новости за день, не выводится дата новости.

Посмотрите пожалуйста мой код, может что найдете:


Код:
##################################


$date_Array = explode("/",$Date);if ($date_Array[0] < 10) {$pref ="0";} else {$pref="";}
if ($date_Array[2] < 10) {$pref ="0";} else {$pref="";}$day1=$date_Array[2]."-".$pref.$date_Array[0]."-".$date_Array[1].""; $result = mysql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes FROM nuke_stories WHERE (time like '%$day1%') ORDER BY time DESC"); if((!$result) OR ($result =="")) {echo "<p><b><center>Нет новостей на этот день</b></center>"; exit(); }

while (list($s_sid, $catid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes) = mysql_fetch_row($result)) {
if ($catid > 0) {
list($cattitle) = mysql_fetch_row(mysql_query("select title from $prefix"._stories."_cat where catid='$catid'"));
}
$printP = "<a href=\"print.php?sid=$s_sid\"><img src=\"images/print.gif\" border=0 Alt=\""._PRINTER."\" width=\"15\" height=\"11\"></a>&nbsp;";
$sendF = "<a href=\"friend.php?op=FriendSend&amp;sid=$s_sid\"><img src=\"images/friend.gif\" border=0 Alt=\""._FRIEND."\" width=\"15\" height=\"11\"></a>";
getTopics($s_sid);
formatTimestamp($time);
$subject = stripslashes($subject);
$hometext = stripslashes($hometext);
$notes = stripslashes($notes);
$introcount = strlen($hometext);
$fullcount = strlen($bodytext);
$totalcount = $introcount + $fullcount;
$morelink = "";
if ($fullcount > 1) {
$morelink .= "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink .= "&amp;mode=$cookie[4]"; } else { $morelink .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink .= "&amp;order=$cookie[5]"; } else { $morelink .= "&amp;order=0"; }
$morelink .= "\"><b>"._READMORE."</b></a> | "; }
$count = $comments;
$morelink .= "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink .= "&amp;mode=$cookie[4]"; } else { $morelink .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink .= "&amp;order=$cookie[5]"; } else { $morelink .= "&amp;order=0"; }
if (isset($cookie[6])) { $morelink .= "&amp;thold=$cookie[6]"; } else { $morelink .= "&amp;thold=0"; }
$morelink2 = "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink2 .= "&amp;mode=$cookie[4]"; } else { $morelink2 .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink2 .= "&amp;order=$cookie[5]"; } else { $morelink2 .= "&amp;order=0"; }
if (isset($cookie[6])) { $morelink2 .= "&amp;thold=$cookie[6]"; } else { $morelink2 .= "&amp;thold=0"; }
if(($count==0)) {
if ($catid > 0) {
$morelink .= "\">"._COMMENTSQ."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">"._COMMENTSQ."</a> | $printP $sendF";
}
} else {
if (($fullcount<1)) {
if(($count==1)) {
if ($catid > 0) {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENT."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENT."</a> | $printP $sendF";
}
} else {
if ($catid > 0) {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENTS."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENTS."</a> | $printP $sendF";
}
}
} else {
if(($count==1)) {
if ($catid > 0) {
$morelink .= "\">$count "._COMMENT."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">$count "._COMMENT."</a> | $printP $sendF";
}
} else {
if ($catid > 0) {
$morelink .= "\">$count "._COMMENTS."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">$count "._COMMENTS."</a> | $printP $sendF";
}
}
}
}
$sid = $s_sid;
if ($catid != 0) {
$resultm = mysql_query("select title from $prefix"._stories."_cat where catid='$catid'");
list($title1) = mysql_fetch_row($resultm);
$title = "<a class =\"storycat\" href=\"categories.php?op=newindex&amp;catid=$catid\">$title1</a>: $title";
}
themeindex($aid, $informant, $datetime, $title, $counter, $topic, $hometext, $notes, $morelink, $topicname, $topicimage, $topictext);
}


###############
Автор: FatCat
Дата сообщения: 20.08.2001 22:52
Сорри, я тут с запуском нового сайта завяз, не смотрел еще. Постараюсь на днях посмотреть в чем дело и отпишу. Ошибки есть, я их просто не заметил.
Автор: FatCat
Дата сообщения: 20.08.2001 23:20
Насчет первой ошибки - все очень просто, достаточно было source формы посмотреть, там после 9 везде девятки идут, моя ошибка - забыл по второй переменной счетчик увеличивать.

Пофиксил, исправь функции в начале index.php на:


Код:
function buildMonthSelect($month) {
for ($i = 1; $i <= 12; $i++) {
if ($i == $month) $sel = "SELECTED";
else $sel = "";
if ($i<10) { $i2="0"."$i"; } else {$i2=$i;}
echo "<option $sel value=\"$i2\">$i\n</option>";
}
}

function buildDaySelect($day) {
for ($i = 1; $i <= 31; $i++) {
if ($i == $day) $sel = "SELECTED";
else $sel = "";
if ($i<10) { $i2="0"."$i"; } else {$i2=$i;}
echo "<option $sel value=\"$i2\">$i\n</option>";
}
}

function buildYearSelect($year) {
for ($i = 1997; $i <= 2030; $i++) {
if ($i == $year) $sel = "SELECTED";
else $sel = "";
echo "<option $sel value=\"$i\">$i\n</option>";
}
}

Автор: Uniq
Дата сообщения: 21.08.2001 07:19
Исправил, спасибо. Попробую со второй проблемой сам справиться, если не получится, напишу... :)
Автор: FatCat
Дата сообщения: 21.08.2001 10:40
Ок, и если получится - кусок кода дай, у меня сейчас большой загруз, лень ковыряться :)
Автор: Uniq
Дата сообщения: 21.08.2001 12:38
А те две календарные таблички все-таки нужны, без них тот блок, что на главной не работает (в смысле ссылки в нем).
Автор: Uniq
Дата сообщения: 21.08.2001 14:49
Нашел новую ошибку. Когда щелкаем по ссылке в "годовом" виде, попадаем в никуда.

Потому что:
ссылка на день в годовом календаре:
http://rolemancer.ru/modules.php?op=modload&name=Calendar&file=index&Date=8/19/2001&type=day

В месячном:
http://rolemancer.ru/modules.php?op=modload&name=Calendar&file=index&Date=08/08/2001&type=day


Где в коде добавить этот недостающий 0?
Автор: FatCat
Дата сообщения: 21.08.2001 15:10
Хы..я не смотрел толком :) - мне нужно было сделать "быстрый хак". Черт...где бы скрипт нарыть...где бы скрипт....убежал скрипт форумный искать.

Автор: FatCat
Дата сообщения: 21.08.2001 15:12
Вообще это это несложно - подставлять в нужном месте по аналогии нолик при выводе.. Сейчас попробую глянуть.
Автор: FatCat
Дата сообщения: 21.08.2001 15:36
Ага, ну и багов у меня ;)
Уродцы они с этими несовместимыми форматами

Это в function buildYear($Date) :

Замени

Код:

}
if (($day == $Today_d) && ($Date_Array[0] == $Today_m) && ($Date_Array[2] == $Today_y))
{
if ($day <10) {$pref="0"; } else {$pref="";}
$day2="$pref"."$day";

print("\n\t<TD width=10 align=center bgcolor=$selecteddaycolor><FONT FACE=ARIAL color=$yeartextcolor SIZE=1><a href=\"modules.php?op=modload&name=$module_name&file=index&Date=$Date_Array[0]/$day2/$Date_Array[2]&type=day\">$day</a></TD>");
}
else
{
if ($day <10) {$pref="0"; } else {$pref="";}
$day2="$pref"."$day";

print("\n\t<TD width=10 align=center bgcolor=$yearbgcolor><FONT FACE=ARIAL color=$yeartextcolor SIZE=1><a href=\"modules.php?op=modload&name=$module_name&file=index&Date=$Date_Array[0]/$day2/$Date_Array[2]&type=day\">$day</a></TD>");
}
Автор: Uniq
Дата сообщения: 27.08.2001 13:09
FatCat, спасибо!
Автор: Uniq
Дата сообщения: 27.08.2001 13:26
FatCat, а все таки фраза "Нет новостей на этот день" не выводится.

Код:
$date_Array = explode("/",$Date);if ($date_Array[0] < 10) {$pref ="0";} else {$pref="";}
if ($date_Array[2] < 10) {$pref ="0";} else {$pref="";}$day1=$date_Array[2]."-".$pref.$date_Array[0]."-".$date_Array[1].""; $result = mysql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes FROM nuke_stories WHERE (time like '%$day1%') ORDER BY time DESC");

if((!$result) OR ($result =="")) { echo "<p><b><center>Нет новостей на этот день</b></center>"; exit(); }

while (list($s_sid, $catid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes) = mysql_fetch_row($result)) {
if ($catid > 0) {
list($cattitle) = mysql_fetch_row(mysql_query("select title from $prefix"._stories."_cat where catid='$catid'"));
}
$printP = "<a href=\"print.php?sid=$s_sid\"><img src=\"images/print.gif\" border=0 Alt=\""._PRINTER."\" width=\"15\" height=\"11\"></a>&nbsp;";
$sendF = "<a href=\"friend.php?op=FriendSend&amp;sid=$s_sid\"><img src=\"images/friend.gif\" border=0 Alt=\""._FRIEND."\" width=\"15\" height=\"11\"></a>";
getTopics($s_sid);
formatTimestamp($time);
$subject = stripslashes($subject);
$hometext = stripslashes($hometext);
$notes = stripslashes($notes);
$introcount = strlen($hometext);
$fullcount = strlen($bodytext);
$totalcount = $introcount + $fullcount;
$morelink = "";
if ($fullcount > 1) {
$morelink .= "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink .= "&amp;mode=$cookie[4]"; } else { $morelink .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink .= "&amp;order=$cookie[5]"; } else { $morelink .= "&amp;order=0"; }
$morelink .= "\"><b>"._READMORE."</b></a> | "; }
$count = $comments;
$morelink .= "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink .= "&amp;mode=$cookie[4]"; } else { $morelink .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink .= "&amp;order=$cookie[5]"; } else { $morelink .= "&amp;order=0"; }
if (isset($cookie[6])) { $morelink .= "&amp;thold=$cookie[6]"; } else { $morelink .= "&amp;thold=0"; }
$morelink2 = "<a href=\"article.php?sid=$s_sid";
if (isset($cookie[4])) { $morelink2 .= "&amp;mode=$cookie[4]"; } else { $morelink2 .= "&amp;mode=thread"; }
if (isset($cookie[5])) { $morelink2 .= "&amp;order=$cookie[5]"; } else { $morelink2 .= "&amp;order=0"; }
if (isset($cookie[6])) { $morelink2 .= "&amp;thold=$cookie[6]"; } else { $morelink2 .= "&amp;thold=0"; }
if(($count==0)) {
if ($catid > 0) {
$morelink .= "\">"._COMMENTSQ."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">"._COMMENTSQ."</a> | $printP $sendF";
}
} else {
if (($fullcount<1)) {
if(($count==1)) {
if ($catid > 0) {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENT."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENT."</a> | $printP $sendF";
}
} else {
if ($catid > 0) {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENTS."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\"><b>"._READMORE."</b></a> | $morelink2\">$count "._COMMENTS."</a> | $printP $sendF";
}
}
} else {
if(($count==1)) {
if ($catid > 0) {
$morelink .= "\">$count "._COMMENT."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">$count "._COMMENT."</a> | $printP $sendF";
}
} else {
if ($catid > 0) {
$morelink .= "\">$count "._COMMENTS."</a> | $printP $sendF | <a href=\"categories.php?op=newindex&amp;catid=$catid\">$cattitle</a>";
} else {
$morelink .= "\">$count "._COMMENTS."</a> | $printP $sendF";
}
}
}
}
$sid = $s_sid;
if ($catid != 0) {
$resultm = mysql_query("select title from $prefix"._stories."_cat where catid='$catid'");
list($title1) = mysql_fetch_row($resultm);
$title = "<a class =\"storycat\" href=\"categories.php?op=newindex&amp;catid=$catid\">$title1</a>: $title";
}
themeindex($aid, $informant, $datetime, $title, $counter, $topic, $hometext, $notes, $morelink, $topicname, $topicimage, $topictext);
}

Автор: Uniq
Дата сообщения: 27.08.2001 13:27
Блин, еще эти смайлики....
Автор: Uniq
Дата сообщения: 27.08.2001 13:50
Вот FatCat, и я кое-что исправил.. :)

В файле block2.php измени
Код:

/**** Build Month */
print("\n<center><TABLE border=0 cellspacing=1 cellpadding=3>");
print("\n<TR>\n\t<TH colspan=7><FONT SIZE=1 color=000000><a
href=\"modules.php?op=modload&name=$module_name&file=index&Date=$Date_Array[0]/1/$Date_Array[2]&type=month\">");
print( getMonthName2($Date)." ".$Today_y );
print("</a></FONT></TH>\n</TR>");
************************************
Автор: Uniq
Дата сообщения: 27.08.2001 13:51
Блин, опять эти тупые смайлы..... :(((
Автор: Antuan
Дата сообщения: 27.08.2001 15:40
Uniq

Цитата:
Блин, опять эти тупые смайлы

Обратите внимание внизу сообщения - "Разрешить смайлики"...
Когда пишется Код, т.е. заключаете cвою цитату в <code></code>(только с квадратными скобками), - птичку Уберите с "Разрешить..."

Страницы: 12

Предыдущая тема: PhProfession - Job/Resume script для РostNuke


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.