Încerc să păstrez un număr de cuvinte pe un set de câmpuri de text lungi. Din câte văd, există mai multe opțiuni:
- Creați o vizualizare și adăugați php la un șablon personalizat care produce numărul de cuvinte. Cele mai multe soluții pe care le-am găsit par să se refere prea la acest număr din 2005, care este considerabil depășit.
Aceasta ar fi o soluție viabilă, cu excepția faptului că niciuna dintre opțiunile de cod enumerate nu funcționează și nu sunt suficient de priceput cu php sau jquery pentru a le actualiza la D7 pe cont propriu. Am incercat asta:
<?php $wordcount = " | ".count(explode(" ", strip_tags(trim($content))))." words" ; ?>
Dar primesc o eroare de variabilă nevalidă.
- În partea de jos a aceleiași probleme, există o soluție D6 care salvează numărul de cuvinte de fiecare dată când nodul este salvat:
funcția od_tweaks_nodeapi(&$nod, $op, $a3 = NULL, $a4 = NULL) {
if ($op == „inserare”) { // Salvați numărul de cuvinte
$corp = $nod->corp;
$număr_cuvinte = număr(explode(" ", strip_tags(trim($corp))));
$nid = $nod->nid;
db_query("INSERT INTO {od_tweaks} (nid, wordcount) VALUES ($nid, $word_count)");
} else if ($op == „actualizare”) {
$corp = $nod->corp;
$număr_cuvinte = număr(explode(" ", strip_tags(trim($corp))));
$nid = $nod->nid;
db_query("UPDATE {od_tweaks} SET wordcount = $word_count WHERE nid = $nid");
}
}
- Folosește un modul, pe care aș prefera să-l evit. De asemenea, majoritatea modulelor de numărare a cuvintelor D7 sunt acum învechite. Număr de cuvinte nu pare să facă foarte mult și nu există documentație. Validarea câmpului necesită mai multe module și un pic de agitație. Pare o soluție grea pentru ceea ce ar trebui să fie o problemă ușoară de cod. Cele mai multe dintre celelalte soluții pe care le-am găsit vor produce un număr de cuvinte care rulează pentru un câmp activ, dar nu vor salva sau combina.
Câmpurile în cauză pot fi actualizate împreună cu nodul complet sau actualizate prin câmpuri editabile, așa că mă gândesc că cea mai bună modalitate este fie un hook sau jquery care renumărește cuvintele de fiecare dată când câmpul este actualizat și apoi salvează acea valoare într-un camp Nou. Având în vedere cazul meu de utilizare, acest lucru îmi va oferi flexibilitate de a adăuga și combina valorile numărului de cuvinte în diferite moduri.
Deci, se pare că opțiunea 2 este direcția corectă, dar codul este învechit. Există o modalitate mai bună de a face acest lucru în D7?