Itt a Gépház.
Hibát találtál? Javaslatod van? Meg akarod dicsérni a Gépházat? Nem érted, hogy működik a felület? Look no further.
A hozzászólások alatt várjuk az észrevételeidet. Ha egyetértesz egy javaslattal vagy téged is nagyon zavar egy hiba, lájkold a hozzászólást.
Backlog
To-Do
- translate theme (theme does not support translation)
- toggle comment threads
- BuddyPress?
- chat?
- Upgrade Jetpack?
- Propose a random post from the archive
Work-in-progress
- advanced search (awaiting user validation)
- migrate from blog.hu
Complete
- migrate from WP.com
- latest comments plugin
- migrate email subscribers
- highlight latest comment in thread
- like/dislike comment
- subscribe to notification
- timestamp on recent comments widget
@Gépház: Elvileg ilyen, amikor egy nem válaszolható hozzászólást idézel
izé.
jó, akkor most dolgozom, utána megpróbálom kitalálni, hol baszarintom el a válasz erre-t, mert hogy elb, az tuti.
Pontosítottam a magyarázatot.
@Gépház: kösz. Egy pillanatra megörültem, hogy talán ez a kukacos-kattintós válasz lesz, hogy ha rákatt az előzményre, akkor oda is ugrik. De akkor ezt úgy lehetne megcsinálni, ha az előzmény kódjába a hivatkozott komment permalinkjét adnám meg, amit egyrészt nem tudok, másrészt a kis buborék biztos amúgy se lenne kattintható.
Azért érzed ugye, hogy te itt már az ismert univerzum határait feszegeted… 🙂
@Podvincecz marsall
A permalinkhez elég a comment id-t ismerni.
Ha az előzmény válaszolható, akkor az id-t megnézheted alul, ha a Válasz link föléd viszed az egeret.
Ha nem, akkor a hozzászóláson jobbklikk, helyi menüből Inspect, az Elements fülben megkeresed azt a sor, ami úgy kezdődik, hogy
<li id="comment-...."
a … a commend id.
Ha megvan a comment id, akkor csinálsz egy linket, ahol a link egyszerűen
[@Józsi](#comment-...)
ahol a … a comment-id.
De szerintem nem akarsz te permanlinket. 🙂
@Gépház: sejtem, hogy feszegetem 🙂 és nem, nem feltétlenül akarok permalinket, pedig tök hasznos és még mafi is sikítozva örülne. Szeretek legozni, csak nem tudok.
Az ilyen kommentelőkről, mint én, ezt ajánlanám figyelmedbe, intő jelként.
@Kettes számú Gépház csak kipróbálom azért, ez egy nagyon hasznos cucc, hátha még nekem is sikerül.
yes, @Gépház felejtsd el a linkelt videot, már nem vagyok olyan, becsszó!
Ja, csak nem mindig veszem észre, ha írsz.:-)
Én továbbra is azt javasolnám, hogy a filterben tedd bele, hogy melyik kommentekről van csak szó:
$query[‘comment__in’] = ov_get_last_comments(1);
ahol a függvény innen a Constructing the SQL query alatt található
get_cids_wpse()
. Kérdés, hogy az még ma is fut-e így, módosítás nélkül, de ha igen, akkor visszaadja az érintett kommentek ID-jét, annyit, amennyit paraméterben átadsz (itt egyet). A szűrés meg már elvégzi akkor, hogy a plugin csak őket mutassa meg. Nem hiszem, hogy ennél gyorsabban és transzparensebben el lehetne érni a célt, és ez nem nyúl bele az eredeti pluginba.@Podvinecz marsall Te nem örülsz sikoltozva? Csak én? :))
@Józsi izé Gépház Nem tennéd bele ezt a feszegetést is a leírásba, hogy megtaláljam, amikor most hogy már lehet, nem használom a permalinket hetekig, de aztán megint irtóra akarom?
@mafi: ha kettőpontyot is teszek, olyan mint régen. sírok.
Sőt, a komment végére, a Válasz link mellé akarom kiíratni azt a markdownt, amit bemásolhatsz a válaszodba, és akkor örülve sikoltozhatsz.
Majdnem 400 ezer hozzászólás lesz az adatbázisban. Nem biztos, hogy jó ötlet, hogy minden címlapletöltéskor kétszer is lekérdezzük a comments táblát. Nem lenne jobb az utófeldolgozás? Akkor a második szűrés már csak 50 tételből válogat.
Erre kapásból nem tudok jót válaszolni, mert nem ismerem a WP cache-stratégiáját, de az evi problémának azt látom, hogy: vagy belenyúlsz úgy, a lekérdezések optimalizása érdekében, hogy például már a $query filterbe beleteszel egy olyat, hogy max. 50 komment. Akkor nem fogja a sok hozzászólást mind visszaadni. Viszont, elvileg belefuthatsz egy olyan helyzetbe, hogy mondjuk van öt poszt, ebből egynél 49 hozzászólás van, lekérdezel ötvenet, megszűröd, és végeredményben csak két posztod lesz a címlapon, holott nyilván több lenne valójában.
Vagyis, minden olyan megoldás, ami nem a lekérdezés szintjén tudja megoldani, hogy minden posztból csak egy kommentet vesz elő, hanem utólag szűri vissza, szükségszerűen egy, jóval több adatot fog megmozgatni, kettő, extrém esetekben, mint fent, tévedhet.
Az a helyzet, hogy például Drupalnál tudnám, hogy hogy kell megoldani az ilyet úgy, hogy a címlapra kerülő blokk tartalma a cache-ben legyen, és akárhányan érkeznek, nem kell lekérdezni, megkapja a cache-ből. Ha születik egy új hozzászólás, az érvényteleníti a cache-t, akkor a következő látogatónak egyszer lefut, onnantól kezdve megint cache. De WP-hez ennyire nem tudok hozzászólni, ámbár nekiállhatok guglizni…
De oké, nem tudom, most a plugin átpasszol-e valami maximumot a lekérdezésnek, de ha véletlenül nem, akkor állítsd be max 100 hozzászólásra (szerintem ez azért nagyjából elkerüli a fenti extrém esetet, nyilván nem matematikai bizonyossággal, de a gyakorlatban elegendően), és már csak azok között szűrj.
@Gépház: Ó bébi!
plugin
Igen, átadja a limit paramétert, ami most asszem 40-re van beállítva.
Azzal a get_cids_wpse() függvénnyel annyi van, hogy a comment id-k nem dátumsorrendben növekednek, mert miközben mi itt kommentelgetünk, a háttérben migrálom a régi blog.hu-s kommenteket. Lényeg a lényeg, subselect nélkül nem fog menni, és akkor már inkább utófeldolgozás, megengedve, hogy extrém esetben nagyon kevés posztot kapunk vissza.
Jó, akkor szerintem vedd feljebb 40-ről, az ő esetében az elmegy, ha válogatni akarsz, akkor 100 vagy 200 jobb lenne, és nem gondolnám, hogy túl nagy telerheltséget jelentene pluszban. Valamint, remélhetőleg, azért ez is cache-sel megfelelően.
Elvileg mindkét szélsőség megeshet (az utolsó n hozzászólás n különböző posztra ment vs. az utolsó n hozzászólás ugyanarra a posztba ment). Az n változtatgatásával az egyik problémát orvosoljuk, a másikat súlyosbítjuk. Vagyis valójában két limitre lenne szükségünk, de a plugin csak egyet kezel.
Úgy érzem, hogy a specifikáció kezd eszkalálódni. 🙂
Megnéztem a WP get_comment() függvényét, és a sor végén lévő WP_Comment_Query kezel valami cache-eket, de a megfejtés meghaladja a képességeimet.
big fat like
Nem túl fontos, az a komment cache-e. Azt nyilván csinálja, rendben is van, de igazából a kérdés az lenne, hogy a recent_comments modul szintjén van-e cache az egész aktuális címoldali blokkra, és olyat nem látok.
Ez?
Általában azt mondanám, hogy meg ne lássam, hogy a $comments-et úgy szűröd, hogy végigmész rajta egy ciklussal, és pakolgatod, ami kell. 🙂 De mivel itt időközben adatot kell gyűjtened, hát…
$results = [];
$posts = [];
for ($comments as $comment_id => $comment) {
if (isset($posts[$comment->post_id)] {
$results[] = $comments;
$posts[$comment->post_id] = TRUE;
}
}
return $results;
De a $comment post_idje hasraütés, meg kell nézned.
És természetsen !isset(), nem túl jó ötlet ide írni be csak úgy kapásból… 🙂
Nice. Ezt a cwp_get_comments végére a get_comments() hívás után szúrjam be?
(Egyébként a post id pontos neve comment_post_id).
Igen, lehet oda. A végén return $results;
A
$var = []
a$var = array()
modernebb formája, ha esetleg olyan öreg arrafelé a PHP, hogy panaszkodik, akkor írd úgy, de azért nem hinném.A ciklust elkúrtam, mint Gyurcsány, egyszerre sok nyelven szoktam dolgozni, és most nem IDE-ben írtam, hanem itt…
foreach
, nemfor
.A
foreach ($array as $key => $value)
azt feltételezi, hogy a tömb $key alapján szervezett tömb, mindegyik eleme egy $value, vagy itt a komment ID-jével a kommentet magát adja vissza. Reméljük, mert ha nem, másképp kell, de elég furcsa lenne. Azért mutatom, hátha:foreach ($comments as $comment) {
$comment_id = $comment->comment_id // mondjuk, ez az ID, ha ez a neve
Ciklusban belül még egyszer van a
comment_post_id
…Á, nem is kell neked egyáltalán a
$comment_id
…Rámentek, mindenki kapaszkodjon. Ready?
Annyi minden elrontottam benne a végére, várj, inkább beírom még egyszer.
$results = [];
$posts = [];
foreach ($comments as $comment_id => $comment) {
if (!isset($posts[$comment->comment_post_id)] {
$results[] = $comment; // így csak hozzáadjuk sorban
$results[$comment_id] = $comment; // így kulccsal együtt adjuk hozzá
$posts[$comment->comment_post_id] = TRUE;
}
}
return $results;
Van két sor a ciklusban, az alternatív. Könnyen lehet, hogy a második kell neki inkább, de nem látom most, hogy melyiket kéri tőled vissza.
Nem… A ciklusban a konkrét $comment-et kell hozzáadni, nem a teljes $comments tömböt újra és újra, az volt az egyik, aminél félrehordott a szemem.. Közben már most jól írtam…
Azon gondolkodom, hogy ez nem a poszt utolsó hozzászólását írja fel a result tömbbe, hanem az elsőt, amit a comments-től kapott. Nem kéne visszafelé felolvasni a comments-et?
Igen, azt. Én különösebb gondolkodás nélkül abból indultam ki, hogy csökkenő időrendben van. Miért, nem úgy van?
De. Akkor lementem. Brace yourselves.
Kijavítottam a szintaktikai hibát. Csak egy találatot ad vissza. Kipróbálom a másik verziót.
Ugyanaz.
A snippet:
Ilyenkor kezdene az ember belenézegetni, hogy mi jön belefelé, és mi kerül ahhoz képest a resultsba. 🙂
Belenéztem a kódba, és nem használja a $comments-ből a kulcsokat. Úgyhogy, ha mégis így?
$results = [];
$posts = [];
foreach ($comments as $comment) {
if (!isset($posts[$comment->comment_post_id])) {
$results[] = $comment;
$posts[$comment->comment_post_id] = TRUE;
}
}
return $results;
comment->comment_ID
lenne az ID, ha kellene, de nem kell igazán itt most.A post id pontos neve comment_post_ID. 🙂
Hát, akkor jogos. 🙂 Te legalább látod a hibaüzeneteket valahol? Mert az segít…
Csak a szintaktikai hibákat jelzi a wp-admin, egyébként silent fail.
Mon Marshall, átvenné a feature-t, hogy végre bonthassunk @Péter 2-vel egy sört? 🙂
Köszönettel és az úri közönség nevében is hálásan átvettem. A fene se gondolta volna, hogy egy marsalli sóhaj micsoda energiákat mozgat meg, egészen megható. Annyit tudok felajánlani, hogy ha egyszer az életben összefutunk és még tudunk is róla, állom a sört, erre marsalli becsületszavamat adom. Részemről ruzsénoár, bankuver és fájront.
Képbeszúrás próba
höhö. és ha kisebb fába vágom a fejszém, nem rögtön gif?
akkor se 🙁
[]
(https://upload.wikimedia.org/wikipedia/commons/5/57/ “Fejszék meg fa”)
Yay, a megrendelő átvette a munkát és meghívott minket a beláthatatlan jövőben egy bizonytalan minőségű sörre! 🙂
Kudos!
Nekem mát kezd nagyon tetszeni