Még mindig számláló...

Antal Adrienn képe

Sziasztok és BUÉK!

Most nem a látogatottság számláló a megoldatlan kérdésem, hanem, hogy a hirdetési oldalamon
hogyan tudom összeszámoltatni, hogy összesen hány db hirdetés van? Az már csak hab lenne a tortán, ha kiírná, hogy mai napon mennyi? Mennyi ebből a kínál és mennyi a keres összesen...?
Blokkban megoldható? és hogyan?
Előre is hálás köszönetem, ha valaki tudja és megosztja velem.
Antal Adrienn

Fórum: 
nevergone képe

Ehhez valószínűleg az kell, hogy komolyabban lássuk az oldalad belső működését, mit mivel (és hogyan) valósítottál meg.

0
0
Antal Adrienn képe

A hirdetések feladása sima írásként (tartalom beküldése) kerül be. Kategóriák, menük. Két csoport van, a kínál és a keres. Ezek útvonala admin/user/acces/3, illetve 4. Ezen kívül természetesen minden kategóriának van egy útvonala a taxonomy/term/valamennyi útvonalon.
Máshogy kellene csinálni a számoláshoz?
Ezenkívül be van kapcsolva a friss tartalom Tracker modul...Hát ennyi nagyjából..
Adrienn

0
0

Adrienn

Antal Adrienn képe

Az oldalt a http://hirdetes.tarsandlove.com címen tudod megnézni, talán az is árulkodik arról, hogy mit és hogyan csináltam...
Adrienn

0
0

Adrienn

nevergone képe

... a nyitólapon vedd le a kéken villogó szövegről a villogást! Kb. négyszer kellett nekifutnom az elolvasásához. A témába vágóan majd később próbálok segíteni.

0
0
Antal Adrienn képe

Köszönöm
Adrienn

0
0

Adrienn

aboros képe

ha mindent taxonómiával csináltál (úgy néztem igen) akkor bizonyos taxonómia-feltételeknek megfelelő node -ok listáját - például - ezzel a kampóval tudod lekérdezni:
http://api.drupal.org/api/function/taxonomy_select_nodes/5

nem tudom elég e ennyi segítség, próbáld ki, ha valami nem megy vagy nem világos keress vagy kérezz rá. ;)

0
0

-
clear: both;

Antal Adrienn képe

Nézegettem, de nem tudom mit is kezdjek vele..? Annyira nem, hogy nem tudok rákérdezni sem...Ezt a modulba másoljam be? Adjam meg, hogy eddig mennyi hirdetés van? Vagy? Ez egyenlőre túlnőtt rajtam. Segítenél még egy picit?
Adrienn

0
0

Adrienn

Antal Adrienn képe

Szóval hová rakjam ezt a kódot?

<?php
function taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC') {
  if (count($tids) > 0) {
    // For each term ID, generate an array of descendant term IDs to the right depth.
    $descendant_tids = array();
    if ($depth === 'all') {
      $depth = NULL;
    }
    foreach ($tids as $index => $tid) {
      $term = taxonomy_get_term($tid);
      $tree = taxonomy_get_tree($term->vid, $tid, -1, $depth);
      $descendant_tids[] = array_merge(array($tid), array_map('_taxonomy_get_tid_from_term', $tree));
    }
 
    if ($operator == 'or') {
      $args = call_user_func_array('array_merge', $descendant_tids);
      $placeholders = implode(',', array_fill(0, count($args), '%d'));
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $placeholders .') AND n.status = 1 ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid IN ('. $placeholders .') AND n.status = 1';
    }
    else {
      $joins = '';
      $wheres = '';
      $args = array();
      foreach ($descendant_tids as $index => $tids) {
        $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid';
        $placeholders = implode(',', array_fill(0, count($tids), '%d'));
        $wheres .= ' AND tn'. $index .'.tid IN ('. $placeholders .')';
        $args = array_merge($args, $tids);
      }
      $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY '. $order;
      $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres;
    }
    $sql = db_rewrite_sql($sql);
    $sql_count = db_rewrite_sql($sql_count);
    if ($pager) {
      $result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $sql_count, $args);
    }
    else {
      $result = db_query_range($sql, $args, 0, variable_get('feed_default_items', 10));
    }
  }
?>

A hirdetések összeszámolásáról van még mindig szó.
Tudtok segíteni?
Adrienn

return $result;

0
0

Adrienn

aboros képe

ez egy drupal kampó, amit használhatsz szabadon. nem raknod (kikopizod -> bepészteled) kell valahova. arra való, hogy egy (vagy több) adott taxonómia id -vel felruházott node -okat lekérdezd. a kampónak vannak argumentumai is. meg kell adnod neki egy tömbben, hogy milyen taxonómia id -k érdekelnek, mi legyen ezek között az egyeztetés alapja (or vagy and vagy..) milyen mélységben vizsgálod őket és mi legyen a rendezés szempontja. például, a "kínál" és a "keres" taxonómia kifejezésekkel ellátott node -ok listáját a beküldés sorrendjében visszaadhatja.

mindemellett nem bírom megállni, hogy meg ne jegyezzem: a drupal egészen fejlett adatbázis réteggel van felvértezve hála a magasságos kommjunitinek. erről bővebben az api doku vonatkozó részében olvashatsz.

ha az a probléma, hogy nem tudod hol és hogyan használdd az ajánlott kampót, akkor szerintem olvass még kézikönyveket, ponthun, de főleg pontorgon. (utóbbi hihetetlenül részletes, trásztmí)

0
0

-
clear: both;

Antal Adrienn képe

Köszönöm, ezzel egy ideig biztosan lefoglalom magam....Már kimásoltam. Beraktam egy blokkba, de ott nem működött, mert hát nem ez volt a jó megoldás. Egyszerűen már annak is örülnék, ha minden komplikáció nélkül kiírná, hogy összesen hány db hirdetés van az oldalon..Az a baj, hogy angolul nemigen beszélek, de majd lefordítgatom.
2./
Fordítgattam..de én továbbra sem értem, hogy hogyan kell ezt lekérdezni..
Adrienn

0
0

Adrienn

pp képe

Ez spec nem egy kampó, hanem egy olyan Drupal függvény, amit meg lehet hívni. Tehát ez egy sima függvény. ;)

A kampó az egy olyan függvény, ami alapból nincs. Neve "hook_" karaktersorozattal kezdődik. Ha létrehozol egy saját modult és benne egy függvényt, aminél a "hook" szöveget lecseréled a modulod nevére, akkor azt a Drupal meg fogja hívni, így be tudsz épülni a rendszerbe.

Tehát a különbség: a kampó függvényt a Drupal hívja meg a sima függvényt pedig a Te modulod.
Ez a függvény nem a legalkalmasabb arra, hogy megszámolja hány elem van az adott kategóriában, azonban a kódból könnyedén kiolvasható a megfelelő kódrészlet.

pp

0
0
Antal Adrienn képe

$allquery = "SELECT * FROM node WHERE TYPE = 'hirdetesek'";
$maiquery = "SELECT * FROM node WHERE TYPE = 'hirdetesek' AND created >= (UNIX_TIMESTAMP() - 86400)";
$all = mysql_numrows( db_query($allquery) ) - 1;
$mai = mysql_numrows( db_query($maiquery) ) - 1;
print("<span style=\"color: red; font-weight: bold;\">Összes hirdetés: $all</span><br>Mai: $mai");

Ezzel szépen számolja már az összes hirdetést és a mai napon feladottakat is.
Megoldandó még számomra a "kínál" és "keres" száma.
Ha meglesznek ezek a finomítások is, akkor beküldöm Nektek.
Köszönöm a segítséget.
Adrienn

0
0

Adrienn

pp képe

- javasolt a mysql_numrows helyett a COUNT SQL utasítás/kulcsszó használata. Előbbi esetben az sql szerver legyártja a teljes eredmény halmazt, míg utóbbinál nem. Persze ha nem fontos az erőforrás, akkor persze lehet.
- Ez ugye egy php snipet, mely egy kis forgalmú oldalnál elfogadható megoldás, azonban egy nagyobb forgalmú oldalnál olyan szintű plusz terhelést jelent, aminél már érdemesebb elgondolkodni egy modul fejlesztésről, mely mind a gyorstárazást, mind a különböző logikai szintek szétválasztását lehetővé teszi.

pp

0
0
nevergone képe

Ezzel kapcsolatban eszembe jutott valami, amiről új témát indítottam itt.

0
0
Antal Adrienn képe

Kipróbáltam a mysql_numrows helyett a COUNT SQL utasítás/kulcsszó használatát, de azonnal error-t írt ki. Persze én így nature cupp, beírtam, aztán gyorsan vissza az egészet, mivel az oldalon folyamatosan hirdetnek. Valami bizti hiányzott belőle mondjuk _ egy ilyen..?
Szóval helyesen így kellett volna, hogy count_sql ? vagy még valami?
Egyenlőre hagytam ahogy van. Átgondolom majd. Köszi.
Adrienn

0
0

Adrienn

nevergone képe

Kipróbáltam a mysql_numrows helyett a COUNT SQL utasítás/kulcsszó használatát, de azonnal error-t írt ki. Persze én így nature cupp, beírtam, aztán gyorsan vissza az egészet, mivel az oldalon folyamatosan hirdetnek.

Az ilyen (és sok egyéb más) dolgok kisérletezésére jó lenne, ha lenne egy másolat a gépeden a futó oldaladról, amelyben szabadon próbálkozhatsz, és ha valami elcsesződik, akkor sincs baj.

0
0
pp képe

Egy másik szálban leírtam, szerintem meg tudod csinálni! :D

És tényleg telepíts fel egy teszt szájtot, mert ez így iszonyatosan gáz megoldás!

pp

0
0
Antal Adrienn képe

Köszia hasznos infót. Valóban leírtad már...bocs..
Adrienn

0
0

Adrienn

aboros képe

köszi! autodidakta padavan vagyok, úgyhogy az ilyen morzsák legtöbbször hiányoznak ezért mindig örülök, mikor véletlenül találok egyet.

0
0

-
clear: both;