eT` Posted February 14, 2010 Report Share Posted February 14, 2010 Tamm forumu tagad esmu uzčinījis jau tik tālu, ka ir topiku pinnošana/lockošana. Mēģināju izdomāt, kā lai uzliek, sistēmu, kas nosaka vai useris to topiku, jau ir apskatījis ( ķipa New Posts ) nav ne mazākās nojausmas :/ Quote Link to comment Share on other sites More sharing options...
briedis Posted February 14, 2010 Report Share Posted February 14, 2010 tabula views( user_id thread_id date_viewed ) ja date_viewed(vai tāda vispār nav) ir mazāks par thread last post date, tad lietotājs nav lasījis postu. Tiklīdz lietotājs ieiet postā, tā ievietojam views tabulā ierakstu (protams, to nevajadzētu darīt uz katra refresh) Šito nekad neesmu taisījis, bet tā iztēlojos, ka tas notiktu.... Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) Labprāt redzētu, ko eT ir/būs sadarījis :] Pats arī pašlaik cenšos to veidot. Tieši pēc tam, kad izlasīju briedis iedoto. EDIT: Esmu iesprūdis jau pie pirmā kverija. Kad tiek izvadītas kategorijas, tad nepieciešams noteikt, vai iekšs šīs kategorijas ir kāds temats, kuru nav lasījis lietotājs. forums_temati (id, name) forums_read (lietotajs,temats,datums) EDIT: Dabūju sev gatavu kaut ko tādu. $rs = mysql_query("SELECT t2.lietotajs FROM ".PREFIX."forums_temati as t1, ".PREFIX."forums_read AS t2 WHERE t2.lietotajs = '".$lietotajs['id']."' AND t1.subkategorija = '".$subkategorija['id']."'") or die(mysql_error()); if(mysql_num_rows($rs) > 0) $read_status = 'http://php.lv/f/public/style_images/master/f_read.png'; Edited February 14, 2010 by anonīms Quote Link to comment Share on other sites More sharing options...
eT` Posted February 14, 2010 Author Report Share Posted February 14, 2010 (edited) ideja. SQL tabula. id,lietotajs,temas_id,posta_id izvelkam no konkrētā topika pēdējā posta id, tad salīdzinam ja tabulā jau ir attiecīgs lauks rādam read, bet ja nav pie apskatīšanas ievietojam un rādam unread. EDIT: function read($temasid,$useris) { $k = mysql_query("SELECT id FROM forums_posts WHERE tid='$temasid' ORDER BY id DESC LIMIT 1"); $row = mysql_fetch_array($k); $posts = $row["id"]; $l = mysql_query("SELECT * FROM forums_views WHERE user='$useris' AND temas_id='$temasid' AND posta_id='$posts'"); $m = mysql_fetch_array($l); if(empty($m)) { /*atgriež nelasīto bildi*/ } else { /*atgriež lasīto bildi*/ } } bet vajadzētu atgriezt bildītes. Edited February 14, 2010 by eT` Quote Link to comment Share on other sites More sharing options...
2easy Posted February 14, 2010 Report Share Posted February 14, 2010 lol, tādas lietas, ko kurš ir apskatījis, vsp neglabā db. priekš tam ir cookie. ieliec tur sarakstu ar visiem thread id, kurus useris ir apskatījis (neatkarīgi vai ir ielogojies vai nav). piemēram: viewed_threads=1,2,5,7,8,14,23,112,123,250 un kad rādi thread sarakstu, tad katru apskatīto kkā vizuāli noformē, lai atšķiras no neapskatītajiem, balstoties uz to cookie informāciju Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 doh. atcerējos šo: http://php.lv/f/topic/14725-temats-izlasitsjauns-lietotajam/page__p__113904__fromsearch__1entry113904 Quote Link to comment Share on other sites More sharing options...
2easy Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) nu ja, viss jaunais ir labi aizmirsts vecais ;) vsp droši vien bija smieklīgi atkal izlasīt savus toreizējos jautājumus? :D Edited February 14, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 Nu šos vēl nē :D Bet, kad skatījos MārisL, kuram esmu aizmirsis paroli un epasta paroli, tur gan ir ko pasmaidīt :) Lab, jāmēģina ar jauno metodi. Ja kaut kas sanāks, došu ziņu. Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 Tik tālu nu ir :D <?php $array['uid'] = 1337; // lietotaja ID $array['b'] = 'kaka'; $str = serialize($array); $strenc = urlencode($str); setcookie('forum_read',$strenc,mktime()+99999999999999); echo $str . "<br />"; echo $strenc; ?> Tik īsti nav skaidrs nafig tam $array vaajg ['wtf'], jo bez tā viņš tikai ķer vienu. Kā tad īsti izvilkt visus tematus un tad atlasīt, kuri ir, kuri nav lasīti? Quote Link to comment Share on other sites More sharing options...
eT` Posted February 14, 2010 Author Report Share Posted February 14, 2010 @ 2easy, bet ja tēmā ir jauns posts? piemēram vai ir kāda iespēja, kā salādēt cepumā visu saturu kā emm varētu pat ar masīvu laikam. un katru reizi kā apskata topiku, tā pievieno cepumam jaunu masīva elementu. Bet kā no cepuma pārbaudīt vai tāds elements eksistē? @ anonīms. neko nesaprotu, ko tu tur esi sarakstījis :D ķīniešu ābece :D Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 eT. Mans kods arī tam ir domāts. Cerams... :D kr4 ir tā (vismaz Es tā domāju), ka vispirms iemetam uid $array['uid'] = 1337; // lietotaja ID un tad kaut kādā mistiskā veidā nepieciešams iemest visus tematu id array'ā un tālākais jau redzams. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) nav jāmet nekāds uid. vsp no mana viedokļa nav svarīgi, vai topikus ir apskatījis ielogojies useris vai anonīms apmeklētājs. galvenais, ka man no šī apmeklētāja browsera pienāk cookie ar visu apskatīto topiku id sarakstu: topics_read:123,234,345,456 tālāk no šī saraksta var iegūt masīvu: $aRead = explode(',', $_COOKIE['topics_read']); un kad echoju foruma topikus, tad čekoju: if (in_array($topic_id, $aRead)) ... else ... pārējo daļu, kā izveidot/papildināt to topics_read kūkiju, cerams, jūs varēsiet izdomāt paši ;) tīri no lietojamības viedokļa es pats šādu fīču nelietotu. vnk paskatītos jaunākos topikus. tas man liekas daudz svarīgāk. un arī padomājot loģiski, palielākā forumā tie topiki ir tūkstošiem. sanāk katru reizi, katrā pieprasījumā līdzi ceļo miiilziiiga kūka ar visiem izlasītajiem id. es tīri no performances/trafika neko tādu nedarītu, ja pats taisītu savu forumu. bet nju treniņa pēc jau šādu "fīču" varat uzkodēt ;) nu jā tādā gadījumā, lai atslogotu trafiku, izlasītos id tiešām saprātīgāk būtu glabāt db (ja tas tiešām ir tik svarīgi. man gan tā drīzāk liktos kā db piecūkošana ar mazsvarīgu/nesvarīgu/nevajadzīgu info). lol Edited February 14, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
eT` Posted February 14, 2010 Author Report Share Posted February 14, 2010 (edited) @easy es jau labprāt liktu caur DB bet nevari pačekot kapēc mana f-ja neiet? function read($temasid,$useris) { $k = mysql_query("SELECT id FROM forums_posts WHERE tid='$temasid' ORDER BY id DESC LIMIT 1"); $row = mysql_fetch_array($k); $posts = $row["id"]; $l = mysql_query("SELECT * FROM forums_views WHERE user='$useris' AND temas_id='$temasid' AND posta_id='$posts'"); $m = mysql_fetch_array($l); if(empty($m)) { $lasita = "unread.png"; } else { $lasita = "read.png"; } return $lasita; } un f-jas izsaukšana read($row5["id"], $_SESSION["user"]); <img src=http://filmam.lv/images/$lasita /> Edited February 14, 2010 by eT` Quote Link to comment Share on other sites More sharing options...
anonīms Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) a kam tev vajag posta_id? Ja teiksim iemet jaunu atbildi, tad delete from where user_id != postotaja_id and temata_id = ? Neredzu jēgu tam postam, ja pēc katra posta var drīzāk izmest ārā tos, kuri skatījušies pirms viņš postojis EDIT: eT, a te f-ja kaut ko atgriež vispār? EDIT2: Es tikai nesaprotu kapēc tev tur visu sarežģīt vajag? Parādi kā tev tabula izskatās. Edited February 14, 2010 by anonīms Quote Link to comment Share on other sites More sharing options...
2easy Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) omg, uz katra topika parādīšanu 2x mysql_query()!!! tas nav uz labu :D vajag jau laikus vienu selektu ar visiem šī usera apskatītajiem topiku id un laiku, kad apskatījās. un jā, anonīms pareizi atgādināja, ka laiks ir svarīgs!!! tipa jauns posts, un topic vairs neskaitās read (savādāk tikai pirmo postu izlasīs un domās, ka tālāk nekā jauna nav :D). tāpēc pie topika arī vajag info, kad ir pēdējais posts bijis. ja šis posts ir bijis senāk nekā apskatīts, zna4it topic ir read, else unread Edited February 14, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.