你好 molily,
Denn wenn man ein Posting gelesen hat, bekommt man die Forumshauptseite immer noch ohne class=visited ausgeliefert, weil stark gecacht wird und die Threadliste nur bei neuen Postings neu ausgeliefert wird.
Das allerdings muss an einem Fehler in der Konfiguration liegen (ich rate jetzt mal: Benutzer-Rechte flasch gesetzt). Denn eigentlich™ wird bei einer visited-Markierung (also, der serverseitigen Markierung) ein Timestamp zurück gesetzt und damit das Last-Modified-Datum (für den Nutzer) auf den Zeitpunkt der Markierung gesetzt:
/* {{{ module api function, mark a posting visited */
void *flt_visited_mark_visited_api(void *vmid) {
u_int64_t *mid = (u_int64_t *)vmid;
DBT key,data;
int ret,fd;
u_char buff[256];
size_t len;
char one[] = "1";
if(Cfg.VisitedFile) {
memset(&key,0,sizeof(key));
memset(&data,0,sizeof(data));
len = snprintf(buff,256,"%"PRIu64,*mid);
data.data = one;
data.size = sizeof(one);
key.data = buff;
key.size = len;
if((ret = Cfg.db->put(Cfg.db,NULL,&key,&data,0)) != 0) {
if(ret != DB_KEYEXIST) {
fprintf(stderr,"flt_visited: db->put() error: %s\n",db_strerror(ret));
return NULL;
}
return vmid;
}
/* reset last-modified timestamp */
snprintf(buff,256,"%s.tm",Cfg.VisitedFile);
remove(buff);
if((fd = open(buff,O_CREAT|O_TRUNC|O_WRONLY)) != -1) close(fd);
return vmid;
}
return NULL;
}
/* }}} */
/* {{{ flt_visited_validate */
#ifndef CF_SHARED_MEM
int flt_visited_validate(cf_hash_t *head,configuration_t *dc,configuration_t *vc,time_t last_modified,int sock)
#else
int flt_visited_validate(cf_hash_t *head,configuration_t *dc,configuration_t *vc,time_t last_modified,void *sock)
#endif
{
struct stat st;
char buff[256];
if(Cfg.VisitedFile) {
snprintf(buff,256,"%s.tm",Cfg.VisitedFile);
if(stat(buff,&st) == -1) return FLT_DECLINE;
if(st.st_mtime > last_modified) return FLT_EXIT;
}
return FLT_OK;
}
/* }}} */
Und den Tests nach, die ich eben gemacht habe, funktioniert das prinzipiell auch.
再见,
克里斯蒂安
--
http://wwwtech.de/
If God had a beard, he'd be a UNIX programmer.
CFPropertyList: PHP-Klassen zur Manipulation von Apples property lists – AdHoc-Distribution via IPA-Format
http://wwwtech.de/
If God had a beard, he'd be a UNIX programmer.
CFPropertyList: PHP-Klassen zur Manipulation von Apples property lists – AdHoc-Distribution via IPA-Format