Lista alla noder med viss längd på titeln?

Events happening in the community are now at Drupal community events on www.drupal.org.
Anonymous's picture

Hej alla Drupalister;

Hur kan man lista alla noder (med nid) vars titel är längre än visst antal tecken?
Views eller php gissar jag, men hur?

Hälsningar som är väldigt tacksam för all hjälp jag får via forumet,
Anders

Comments

Computed Field?

itangalo's picture

En möjlighet vore att använda Computed Field och helt enkelt skapa ett nytt fält där längden på titeln listas. Om längden hålls i ett eget fält lär det bli lättare att hantera listningar i Views.

//Johan Falk, Solna

ja, kanske det skulle gå ..

Azone's picture

... men jag var nog lite diffus. Jag vill titta på varenda page, story och egna contet-types, samtliga noder på sajten i stort sätt.
Fler moduler tillåter inte one.com att jag använder. Jag vill veta längden på titeln, eller lista de som är längre än en viss längd.

Att köra några select på databasen skulle vara enkelt, men det vore smidigast om man kunde sköta det från Drupal, dvs med Views eller php-script.
Det borde vara väldigt enkelt, men jag är ingen php-guru och hinner inte lära mig denna vecka.
I stort sätt vill jag köra en select på databasen och printa ut resultatet i en page eller block.
Hur fasen gör man det i drupal, har förskt att titta i Drupal API FAQ mm men hittar inget exempel!?

--
Azone

Johans idé är faktiskt

solipsist's picture

Johans idé är faktiskt väldigt bra, och ger dig fördelen att du kan göra alltihop med Views. I ditt computed field placerar du kod liknande:

strlen($node->title)

Förutsatt att $node är aktuellt nodobjekt. Den där koden körs/evalueras när noden sparas. Du kan sedan i Views använda dig av ditt computed field som kommer innehålla längden på titeln för noden.

Alternativt kan du göra som du säger och placera denna kod i ett block:

<?php
  $len
= 45; // <-- ändra detta!
 
$res = db_query('SELECT nid, title FROM node WHERE LENGTH(title) > %d', $len);
  while (
$row = db_fetch_object($res)) {
   
$links[] = l($row->title, "node/{$row->nid}");
  }
  print
theme('item_list', $links);
?>

Jag har inte testat koden ovan.


Jakob Persson - NodeOne

Tack

Azone's picture

Php-koden funkar klockrent. Tack Jakob!
Och Tack Johan för ditt förslag också, men med one.com har jag ständiga php-minnesproblem och jag har svårt att addera fler moduler.

--
Anders Olsén

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week