Kan jag ändra poll_page() i modules/poll/poll.pages.inc med egen modul?

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

Kan jag "hooka" in i funktionen poll_page(); i modules/poll/poll.pages.inc med en egen modul på något sätt?

Vill ändra hur listningen för tidigare omröstningar visas, just nu är det en super enkel ul-lista bara. Och jag vill helst inte in och ändra direkt i poll.pages.inc filen.

typ:

minmodule_poll_page() ?

Comments

En variant är

jonne_jvl's picture

En variant är hook_menu_alter

Och byta ut vilken funktion som anropas på den urlen.

Jag tror det räcker med att

solipsist's picture

Jag tror det räcker med att åsidosätta den theme-funktion som körs. Det är sannolikt en av dessa:
http://api.drupal.org/api/search/6/theme_poll

Får testa hook_menu_alter,

Urme's picture

Får testa hook_menu_alter, poll_page() har ingen theme-funktion, det är sidan som listar tidigare polls i en enkel

<

ul>-lista bara och koden byggs upp direkt i poll_page() funktionen.

Men är hook_menu_alter bästa alternativet? Jag har en egen modul som heter typ urmecustommods, som bara används för att ändra andra moduler lite enkelt. Är det OK att köra en och samma modul för att ändra flera andra moduler på detta sätt?

Är det OK att köra en och

jonne_jvl's picture

Är det OK att köra en och samma modul för att ändra flera andra moduler på detta sätt?

I min mening är menu_alter mycket bättre än att trixa med alltför invecklade theme overrides eller form alters osv.
Men det beror helt på. Mindre kod = bättre.
Man kan iofs bli lite för lockad att köra den för att lösa allt, men det är inte så lyckat i längden.

Jag tycker det är lättare att hitta sitespecifika tweak om det ligger på ett ställe. Känns lite mer contained på det sättet, samt att man snabbt kan få en överblick över vad just denna siten gör för små trollerier. Det är ju inga problem att splitta den modulen i flera filer som man inkluderar om det behövs.

Jag fick till det där med

Urme's picture

Jag fick till det där med hook_menu_alter, så ändrade så en annan funktion kördes och det fungerade bra.

Men vill ändra en till grej i poll-modulen.

Denna funktion:

function poll_view_results(&$node, $teaser, $page, $block) {
  // Count the votes and find the maximum
  $total_votes = 0;
  $max_votes = 0;
  foreach ($node->choice as $choice) {
    if (isset($choice['chvotes'])) {
      $total_votes += $choice['chvotes'];
      $max_votes = max($max_votes, $choice['chvotes']);
    }
  }

  $poll_results = '';
  foreach ($node->choice as $i => $choice) {
    if (!empty($choice['chtext'])) {
      $chvotes = isset($choice['chvotes']) ? $choice['chvotes'] : NULL;
      $poll_results .= theme('poll_bar', $choice['chtext'], $chvotes, $total_votes, isset($node->vote) && $node->vote == $i, $block);
    }
  }

  return theme('poll_results', $node->title, $poll_results, $total_votes, isset($node->links) ? $node->links : array(), $block, $node->nid, isset($node->vote) ? $node->vote : NULL);
}

Jag vill skicka in ett eller två till värden på denna rad till poll_bar:
$poll_results .= theme('poll_bar', $choice['chtext'], $chvotes, $total_votes, isset($node->vote) && $node->vote == $i, $block);

Men kan jag på något sätta flytta ur denna funktion till min egna modul så den körs istället? Har testat en del men förstår inte hur det ska gå till.

Sweden

Group notifications

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