作者allen501pc.bbs@bbs.sa.ncyu.edu.tw (加 ~ 油 !!) 看板: itoc
標題Re: [問題]功能-文章編輯時無法加分
時間新綠園 (2007/03/31 Sat 22:08:00)
若是加入以下:
hdr.h 中 struct hdr 多增加以下欄位:
{
..
..
time_t edittime;
..
..
} HDR
然後在post_edit()內多加黃色部份
※ 引述《chrisliu.bbs@loli.twbbs.org (ChrisLiu*)》之銘言:
> ───────────────────────────────────────
> ※ 引述《allen501pc.bbs@bbs.sa.ncyu.edu.tw (靜養中..)》之銘言:
> [deleted]
> > 可是不管怎麼弄,一定會進入vedit(fpath,0),所以我在進入之前的那一刻加入
> > hdr->xmode = xmode ^ POST_NOW_EDIT;
> > 先鎖住,不管最後有沒有編輯成功,在執行完vedit(fpath,0) 之後馬上解放
> 對... 我看錯了...
> 所以 你要加入的是
> + hdr->xmode = xmode ^ POST_NOW_EDIT;
hdr->edittime = time(0) + 1200 ; /* allen501pc: 限制20分鐘內 使用者
不得推文 */
> + currchrono = hdr->chrono;
> + rec_put(xo->dir, hdr, sizeof(HDR), xo->key == XZ_XPOST ? hdr->xid : pos,
> cmpchrono); //同行
> if (!vedit(fpath, 0)) /* 若非取消則加上修改資訊 */
> {
> if (fp = fopen(fpath, "a"))
> {
> ve_banner(fp, 1);
> fclose(fp);
> }
> }
hdr->edittime = 0; /* allen501pc: 歸零 */
> + hdr->xmode=xmode;
> + currchrono = hdr->chrono;
> + rec_put(xo->dir, hdr, sizeof(HDR), xo->key == XZ_XPOST ? hdr->xid : pos,
> cmpchrono); //同行
> 這樣應該可以!?
> 最前面要改成下面那樣 因為 rec_put 的時候會用到
> 那問題就如 weiyu.bbs@muse.twbbs.org 所說的一樣 參考 post_mark 寫回即可
> + int pos, cur, xmode;
> + pos = xo->pos;
> + cur = pos - xo->top;
> ! hdr = (HDR *) xo_pool + cur;
> + xmode = hdr->xmode;
在 post.c : post_score()中加入以下:
/* allen501pc:20070225 正在編輯文章的旗標 */
+ if((hdr->xmode & POST_NOW_EDIT) && time(0)<(hdr->edittime))
+ {
+ zmsg("此篇文章正被編輯中...");
+ return XO_NONE;
+ }
switch (ans = vans("◎ 評分 1)推文 2)唾棄 3)自定推 4)自定呸 5)續推加註?[Q]
"))
{
case '1':
..
..
或許可以成功,但是我編譯時候,
[~/src/maple/]$ rm -rf *.o
[~/src/maple/]$ make linux install update
發現HDR欄位全亂掉了,可是沒動到struct啊?
有大大可以提供意見嗎?
這樣做應該就快完成了^^
--
╒═╕
║ ║║║ ★愛過方知情重★
╠═╣║║╓═┐╭─╮
║ ║║║╠═╜║ ║ ★醉過方知酒濃★
║ ║║║╰─╯│ │
--
╭─ Origin ─╗ 新綠園 bbs.sa.ncyu.edu.tw ~ κλμ ─┤
├ Author ╡ 220-133-214-148.HINET-IP.hinet.net