Tartalomtipus számának (sum) kiirása minden oldalra

vajdasági képe

Otletet szeretnek kerni hogyan induljak el.

Az elejen kezdenem. Letrehoztam egy tartalomtipust aminek egyik mezoje egy taxonomy mezo pelda kedveert legyen "hotelek" tartalomtipus taxomoni szerint csoportasithatom oket mongyuk hogy hany csillagosak. A tartalom bevitelekor igy a taxonomy legordulo inputjaban be lehet jelolni hogy pl. 3 csillagos a hotel.

A celom az hogy a honlap minden oldalan kiirassam hogy peladul "Oszesen 999 hotel van es abbol 99 otcsillagos."

Salyat sminket keszitettem. Gondolom a szovegnek letre kell hoznom a smink megfelelo helyen egy regiot hogy oda be tudjak illesztni egy blokkot. Viewsel letrehozom a blokkot es azt rakom be a regioba? Vegeredmenyben ez egy ritkan valtozo szoveg lenne. Erdemes erre blokk meg views vagy valami modult irjak ra inkabb? Eleg kezdo vagyok meg a Drupalban olyan megoldast szeretnek ami nagyritkan szamolna ossze a "hotelekt" mongyuk naponta csak parszor. Jol tudom hogy ha viewsel meg blokkal csinlanam mint ahogy irtam is akkor a Drupal alapbol tudja ezt cachelni?

Vagy induljak el inkabb egy olyan iranyba hogy Cron-nal szamoltatom ossze neha a "hoteleket" (Drupaltol teljesen fuggetlenul csak sima php) es az eredmenyt kiirom egy sima pl. php fajlba es azt includolom be a page.tpl.php -be?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
vajdasági képe

Picit pontositanak, mert a hasonlatom nem a legtalalobb volt.

Inkabb ugy kellene elkepzelni a dolgot hogy a "hotel" tartalomtipusban van egy szobaszam mezo is. Es azt kellene osszeszamolni hogy hany ilyen "hotel" tartalomtipusu node van es azokban a szobak szamat osszeadni.

Peldaul ez kellene: "Oszesen 99 hotel, 9999 szobaval."

Feltettem a Term Node Count modult letrehoztam a views nezetet sot megkapom a "hotelek" szamat es a szobak osszeget is. Viszont nevezzem ugy hogy a kinezete nem a megfelelo. Kapk egy ilyesmit peldaul: " 3 Total COUNT
Total SUM 13 " amit sehogyan sem tudok a "Oszesen 3 hotel, 13 szobaval." alakra atalakitani. Raadasul az oldal tobbnyelvu, a szovegnek mindeg a megfelelo nyelven kellene megjelenni.

Megjegyeznem hogy siman csak MySql es PHP segitsegevel Drupalt mellozve megtudnam csinalni a lekerdezest es a kiiratasat is, de igy nem boldogulok vele.

Letezik hogy teljesen rossz iranyba keresgelek? A "hotelek" es a "szobaszam" ritkan fog valtozni igy nem jo ha minden oldallekerdezeskor ujraszamolja. Modult meg sosem irtam, problajak meg megis inkabb egy modult oszehozni ami elvegzi ezt? Elvegre valamikor elkell kezedni a modul irasat is tanulni.

0
0
szantog képe

Nya, akkor php + mysql elő, és íme a drupal körítés:
Na tolok még egy pár
sort,
hogy
az avatarom alá kerüljön a kód.

//kell egy hook_block, amivel megasszongyuk drupalnak, hogy kell egy saját blokk
/**
 * Implementation of hook_block().
 *
 * @param $op What kind of information to retrieve about the block. Possible values: list, configure, save, view.
 * @param $delta Which block to return.
 * @param $edit Data from a configuration form, if submitted.
 */
function MODULKÁM_block($op = 'list', $delta = 0, $edit = array()) {
  switch($op) {
    case 'list':
      $blocks = array();
      $blocks['0'] = array(
        'info' => t('Egy english cím a blokk oldalra'),
      );
 
      return $blocks;
      break;
 
    case 'view':
      $blocks = array();
      switch($delta) {
        case '0':
          $block['subject'] = t('English cím, ami a blokk cím lesz');
          break;
      }
      $block['content'] = MODULKÁM_block_content($delta);
 
      return $block;
      break;
  }
}
 
/**
 * Generate block contents.
 *
 * @param $delta The block id.
 * @return The generated block content.
 */
function MODULKÁM_block_content($delta) {
  switch($delta) {
    case '0':  
      //Ezt a sminkfüggvényt lentebb fogjuk deklarálni
      return theme('MODULKÁM_db_counter_text');
      break;
  }
}
 
/**
 * Ez itt maga a számokat összegyűjtő, előállító függvény, mint látod, én is termekhez tartozó node-okat számolok vele össze, mégpedig egy adott node típust.
 *
 * @param $tid the term id to filter
 * @return the number of nodes
 */
function MODULKÁM_node_counter($tid = NULL) {
  if (!is_null($tid)) {
    $query = "SELECT COUNT(1) as count FROM {node} n INNER JOIN {term_node} t ON n.vid = t.vid WHERE ((t.tid = %d) & (n.type = '%s'))";
    $result = db_query($query, $tid, '[ez itt a nodetype]');
  }
  else {
    $query = "SELECT COUNT(1) as count FROM {node} WHERE type = '%s'";
    $result = db_query($query, '[ez itt a nodetype]');
  }
 
  $counter = db_fetch_array($result);
 
  return $counter['count'];
 
}
 
/**
 * Ez egy sminkfüggvény definíciója, hogy ne hányjuk tele a modul   működési logikáját divekkel + egyéb szemetekkel.
 * Implementation of hook_theme().
 */
function MODULKÁM_theme() {
  return array(
    'MODULKÁM_db_counter_text' => array(
      'arguments' => array(),
    ),
  );
}
 
/*
 * Ez meg itt maga a sminkfüggvény, ami tképpen nem is igazi sminkfüggvény, de ezt még nem lehet tudni, hogy később milyen html köret kell esetleg a cucchoz.
 * Simple theme function for database counter block.
 */
function theme_MODULKÁM_db_counter_text() {
  $output = t('We currently feature !count-all suppliers from Central Europe, including !count_russia suppliers from Russia, !count_czech suppliers from the Czech Republic, !count_hun suppliers from Hungary, !count_pol from Poland, !count_slovak from Slovakia, !count_sloven from Slovenia and more...'
    , array ('!count-all' => MODULKÁM_node_counter(), '!count_russia' => MODULKÁM_node_counter(2929), '!count_czech' => MODULKÁM_node_counter(2802), '!count_hun' => MODULKÁM_node_counter(2843), '!count_pol' => MODULKÁM_node_counter(2919), '!count_slovak' => MODULKÁM_node_counter(2940), '!count_sloven' => MODULKÁM_node_counter(2938)));
  return $output;
}
3
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

vajdasági képe

Koszonom szepen, ugy nezem ezen mar eltudok indulni.

Kicsit keresgeltem a neten, a /sites/all/modules/ mappaban egy uj mappat hoztam letre, megirtam a MODULKÁM.info fajlt is, es az MODULKÁM.module fajlba bemasoltam a kodot.

Meg annyit rakerdeznek hogy ezzel lehet valahogy az osszeszamolast gyorstarazni vagy ez minden oldallekerdezesrok ujbol szamolja ossze az egeszet? Jol sejtem hogy ezt a Drupal oldja meg majd helyettem?

0
0
vajdasági képe

Ezt igy a Drupal alapbol tudja cachelni is hogy ne minden oldallekerdezesnel szamolja ujbol?

0
0