Címkéken alapuló site

cworm képe

Sziasztok!

2008-ban használtam utoljára Drupal-t, akkor egész jól elnyomkodtam, de most feltettem a 7.16-ot és nem tudom, hogyan tovább. Van egy honlaptervem, és már feltelepítettem a Views modult is, csak nem tudom beállítani.
A honlap pedig tök egyszerű lenne (legalábbis annak tűnik):
A regisztrált felhasználók olyan "blogokat" hozhatnának létre, ahol szerkesztéskor a "Title" mezőbe automatiksan az aznapi dátum íródna be (óra-perc már nem kell), kötelező lenne megadni néhány tag-et, de tartalmat nem lenne muszáj írni. Az összes tag egyetlen nagy globális tag-felhőbe kerülne.
Le lehetne kérdezni, hogy x napon, vagy y intervallumban mi volt a legtöbbször használt tag és hol (regisztrációkor a user megadhatja tartózkodási helyét), vagy pedig egy tag-re kattintva bejönne egy lista, hogy pl az utóbbi 30 napban melyik nap hányszor és hol használták a tag-et. Vagy pl egy helyszínre kattintva azt lehetne látni, milyen tag-ek és milyen dátummal tartoznak hozzá... Ehhez elég a beépített Taxonomy, vagy kell külön modul kell hozzá?
Remélem, érthetően fogalmaztam.:) Szeretnék ennek a beállításában segítséget kérni, mert ezzel a Views-zal nem nagyon boldogulok.

Tomi

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

Senki?

0
-2
snufkin képe

Cimet automatikusan kitolteni jo lehet pl a http://drupal.org/project/auto_nodetitle module, bar en atgondolnam a helyedben, hogy valoban ezt akarod, vagy inkabb egy uj mezot bevezetni erre (hogy felulirhato maradjon a cim egyeb felhasznalasra).

0
0
Sk8erPeter képe

Manapság inkább az Automatic Entity Label modult érdemes használni, mert ez egyéb entitásokhoz is tudja a Tokenek segítségével való címgenerálást.

@cworm :
az előbb említett modult és a Tokent telepítsd, aztán a dátumgeneráláshoz használhatsz custom date formátumokat is, vagy előre definiáltakat, előbbire példa (asszem ennek működnie kéne, testreszabható ez alapján; mondjuk ebben óra-perc-másodperc is benne van, mert egy-egy felhasználó készíthet ugyanabban a percben is akár új tartalmat):
[current-date:custom:Y-m-d. H-M-S]

Aztán tagcloudra meg van pár modul, pl. Tagadelic (bár csak dev van 7-re), de mondjuk ezzel még önmagában csak egy címkefelhőt generálsz, a Cumulus modullal szépítheted, azt egész pontosan nem vágom, hogyan szeretnéd felhasználási dátum szerint szűrni a tageket Views-zal: amikor készült a tartalom, aszerint? Ha utólag hozzácsapnak tageket, akkor az már új időpontnak számít?
Tulajdonképpen mi lenne a use-case? Hátha akkor értelmesebb ötlettel tudunk előállni.

1
0
cworm képe

Köszi, a fentiek alapján sikerült már végre pár dolgot beállítani, egyelőre úgy tűnik, hogy talán fogok vele boldogulni, bár azért egy dolog még lenne.
Rájöttem, hogy a Cumulus nekem nem kell, mert fölösleges lenne flash-es cuccal lassítani az oldalt, szerintem ez sima szövegként is megoldható kell, hogy legyen. De nem is ez a fontos, hanem az, hogy igazából én azt szeretném nagyon-de-nagyon testreszabni, hogy milyen információk jelenjenek meg abban az esetben, ha kiválasztunk egy tag-et. Olyasmikre gondolok, hogy kilistázná az oldal, hogy az adott tag-et milyen országokban és hányszor használták már (az országot a felhasználónak be kellene írnia a regisztrációkor). Hm, de lehet, hogy nem is ilyeneket kellene leírnom, hanem hogy tulajdonképpen egy részletes statisztikát szeretnék kapni egy adott tag-ről, ha kiválasztjuk. A lehető legtöbb információval, mint pl. hol, kik, mikor, milyen gyakran, stb tag-elték meg vele a bejegyzésüket. Nagyjából ilyesmi lenne a use-case.:)
Lehetséges esetleg, hogy létezik erre egy külön "statisztika" modul? (Egyelőre nem találtam.)

0
0
Sk8erPeter képe

Hmm, hát nekem az az érzésem, hogy erre nem a taxonomy-t kéne használnod, hanem mondjuk a Flag modult.
Ez elég sokrétűen használható, talán arra a feladatra is, amit Te szeretnél.

http://drupal.org/project/flag

0
0
aboros képe

userek nodeokat küldözgetnek be (nincs bodyja, na és?) címet dátum alapján kap, tegelik. egy nézet kell ami nodeokat mutat, felfedett szűrőbe meg dátum tól ig, plusz egy autocomplete a tegekre. táblázatos elrendezés, mezőket berakni tetszés szerint.

ez jó így nem? látod táblázatba a beküldéseket összes tegjükkel, szűrhetsz időre, tegre, felhasználóra, amire akarsz. nem jó?

1
0

-
clear: both;

Sk8erPeter képe

+1, valóban, már a kérdés miatt annyira rákattantunk erre a taxonómia, flagelés témára, hogy "olcsó húsnak az anyja se látja a fától az erdőt" lett belőle. :D
Pedig a megoldás így triviális. :)

0
0
aboros képe

ez a legjobb a segítésben, hogy ha mégse tudod azonnal, akkor ilyenkor megtanulod. :)

0
0

-
clear: both;

Sk8erPeter képe

igen, a "triviális" azért erős szó volt, némi költői túlzással. :)) Inkább úgy fogalmaznék, hogy így utólag már sokkal egyértelműbb, hogy tényleg ez a járható út, amit Te javasoltál. Ezerszer sokrétűbb módon lehet így túl sok modul felrakása nélkül is tök jó megoldást összehozni (de erre közben írtál is példát).

0
0
aboros képe

http://aboros.com/webshare/term_node_count-20121122-185555.jpg
ennyi? nincs most egy komplett helymeghatározás beépítve úgyhogy az nem látszik, de ha van idő azt is be lehet. meg persze akkor a userek oldalára kis listákat ugyanígy vagy akár ilyen naptárszerűt vagy timelinejst :) vagy bármit.

szerk, ja bocs, itt a view. importáld be. azt kell megfigyelni hogy az advanced (haladó beállítások?) részben lehet állítani egy olyat, hogy "Use aggregation" és azt igenre kell állítani. Aztán minden mezőnél így meg lehet mondani hogy mi legyen, distinct, vagy count, max, min, sum vagy mifene. És persze az is trükkös hogy ez egy taxonomy term nézet igazából ami node relationshipet meg author relationshipet használ. az author csak azért kellett, hogy lehessen exposed filter a userra.

screenshot: http://aboros.com/webshare/term_node_count-sc-20121122-190434.jpg
export:

$view = new view;
$view->name = 'term_node_count';
$view->description = 'Displays node count values for terms';
$view->tag = '';
$view->base_table = 'taxonomy_term_data';
$view->human_name = 'term_node_count';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
/* Display: Defaults */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->display->display_options['title'] = 'Tag usage';
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '100';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all'] = 0;
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'name' => 'name',
  'nid' => 'nid',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'name' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
  'nid' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
);
$handler->display->display_options['style_options']['override'] = 1;
$handler->display->display_options['style_options']['sticky'] = 0;
/* Relationship: Taxonomy term: Content with term */
$handler->display->display_options['relationships']['nid']['id'] = 'nid';
$handler->display->display_options['relationships']['nid']['table'] = 'taxonomy_index';
$handler->display->display_options['relationships']['nid']['field'] = 'nid';
$handler->display->display_options['relationships']['nid']['required'] = 0;
/* Relationship: Content: Author */
$handler->display->display_options['relationships']['uid']['id'] = 'uid';
$handler->display->display_options['relationships']['uid']['table'] = 'node';
$handler->display->display_options['relationships']['uid']['field'] = 'uid';
$handler->display->display_options['relationships']['uid']['relationship'] = 'nid';
$handler->display->display_options['relationships']['uid']['required'] = 0;
/* Field: Taxonomy term: Name */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['name']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name']['alter']['html'] = 0;
$handler->display->display_options['fields']['name']['element_label_colon'] = 1;
$handler->display->display_options['fields']['name']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name']['hide_empty'] = 0;
$handler->display->display_options['fields']['name']['empty_zero'] = 0;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = 1;
/* Field: COUNT(Content: Nid) */
$handler->display->display_options['fields']['nid']['id'] = 'nid';
$handler->display->display_options['fields']['nid']['table'] = 'node';
$handler->display->display_options['fields']['nid']['field'] = 'nid';
$handler->display->display_options['fields']['nid']['relationship'] = 'nid';
$handler->display->display_options['fields']['nid']['group_type'] = 'count';
$handler->display->display_options['fields']['nid']['label'] = 'Count';
$handler->display->display_options['fields']['nid']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['nid']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['nid']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['nid']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['nid']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['nid']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['nid']['alter']['trim'] = 0;
$handler->display->display_options['fields']['nid']['alter']['html'] = 0;
$handler->display->display_options['fields']['nid']['element_label_colon'] = 1;
$handler->display->display_options['fields']['nid']['element_default_classes'] = 1;
$handler->display->display_options['fields']['nid']['hide_empty'] = 0;
$handler->display->display_options['fields']['nid']['empty_zero'] = 0;
/* Field: MAX(Content: Post date) */
$handler->display->display_options['fields']['created']['id'] = 'created';
$handler->display->display_options['fields']['created']['table'] = 'node';
$handler->display->display_options['fields']['created']['field'] = 'created';
$handler->display->display_options['fields']['created']['relationship'] = 'nid';
$handler->display->display_options['fields']['created']['group_type'] = 'max';
$handler->display->display_options['fields']['created']['label'] = 'Last use';
$handler->display->display_options['fields']['created']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['created']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['created']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['created']['alter']['external'] = 0;
$handler->display->display_options['fields']['created']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['created']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['created']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['created']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['created']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['created']['alter']['more_link'] = 0;
$handler->display->display_options['fields']['created']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['created']['alter']['trim'] = 0;
$handler->display->display_options['fields']['created']['alter']['html'] = 0;
$handler->display->display_options['fields']['created']['element_label_colon'] = 1;
$handler->display->display_options['fields']['created']['element_default_classes'] = 1;
$handler->display->display_options['fields']['created']['hide_empty'] = 0;
$handler->display->display_options['fields']['created']['empty_zero'] = 0;
$handler->display->display_options['fields']['created']['hide_alter_empty'] = 1;
$handler->display->display_options['fields']['created']['date_format'] = 'long';
/* Field: MIN(Content: Post date) */
$handler->display->display_options['fields']['created_1']['id'] = 'created_1';
$handler->display->display_options['fields']['created_1']['table'] = 'node';
$handler->display->display_options['fields']['created_1']['field'] = 'created';
$handler->display->display_options['fields']['created_1']['relationship'] = 'nid';
$handler->display->display_options['fields']['created_1']['group_type'] = 'min';
$handler->display->display_options['fields']['created_1']['label'] = 'First use';
$handler->display->display_options['fields']['created_1']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['external'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['created_1']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['created_1']['alter']['more_link'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['trim'] = 0;
$handler->display->display_options['fields']['created_1']['alter']['html'] = 0;
$handler->display->display_options['fields']['created_1']['element_label_colon'] = 1;
$handler->display->display_options['fields']['created_1']['element_default_classes'] = 1;
$handler->display->display_options['fields']['created_1']['hide_empty'] = 0;
$handler->display->display_options['fields']['created_1']['empty_zero'] = 0;
$handler->display->display_options['fields']['created_1']['hide_alter_empty'] = 1;
$handler->display->display_options['fields']['created_1']['date_format'] = 'long';
/* Sort criterion: COUNT(DISTINCT Content: Nid) */
$handler->display->display_options['sorts']['nid']['id'] = 'nid';
$handler->display->display_options['sorts']['nid']['table'] = 'node';
$handler->display->display_options['sorts']['nid']['field'] = 'nid';
$handler->display->display_options['sorts']['nid']['relationship'] = 'nid';
$handler->display->display_options['sorts']['nid']['group_type'] = 'count_distinct';
$handler->display->display_options['sorts']['nid']['order'] = 'DESC';
/* Filter criterion: Content: Post date */
$handler->display->display_options['filters']['created']['id'] = 'created';
$handler->display->display_options['filters']['created']['table'] = 'node';
$handler->display->display_options['filters']['created']['field'] = 'created';
$handler->display->display_options['filters']['created']['relationship'] = 'nid';
$handler->display->display_options['filters']['created']['operator'] = '<=';
$handler->display->display_options['filters']['created']['value']['type'] = 'offset';
$handler->display->display_options['filters']['created']['exposed'] = TRUE;
$handler->display->display_options['filters']['created']['expose']['operator_id'] = 'created_op';
$handler->display->display_options['filters']['created']['expose']['label'] = 'Post date';
$handler->display->display_options['filters']['created']['expose']['use_operator'] = 1;
$handler->display->display_options['filters']['created']['expose']['operator'] = 'created_op';
$handler->display->display_options['filters']['created']['expose']['identifier'] = 'created';
$handler->display->display_options['filters']['created']['expose']['multiple'] = FALSE;
/* Filter criterion: Content: Author uid */
$handler->display->display_options['filters']['uid']['id'] = 'uid';
$handler->display->display_options['filters']['uid']['table'] = 'node';
$handler->display->display_options['filters']['uid']['field'] = 'uid';
$handler->display->display_options['filters']['uid']['relationship'] = 'nid';
$handler->display->display_options['filters']['uid']['value'] = '';
$handler->display->display_options['filters']['uid']['exposed'] = TRUE;
$handler->display->display_options['filters']['uid']['expose']['operator_id'] = 'uid_op';
$handler->display->display_options['filters']['uid']['expose']['label'] = 'Author';
$handler->display->display_options['filters']['uid']['expose']['operator'] = 'uid_op';
$handler->display->display_options['filters']['uid']['expose']['identifier'] = 'uid';
$handler->display->display_options['filters']['uid']['expose']['multiple'] = FALSE;
$handler->display->display_options['filters']['uid']['expose']['reduce'] = 0;
 
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->display->display_options['path'] = 'taxonomy_stat';

a viewst tudom hogy könnyű feladni, de nem érdemes.

2
0

-
clear: both;

cworm képe

Köszi, már be is importáltam.:) Viszont (tudom, hogy béna vagyok...) nem tudom, hogyan kell beállítani úgy, hogy ha rákattintok egy tag-re, akkor ez a nézet jöjjön be, mert most még a hagyományos módon jeleníti meg. (A Views-ban a View page-dzsel ki tudtam próbálni, úgy működött.)
Illetve még egy olyan kérdésem van, hogy vajon az adatbázisba minden egyes tag/term felvételkor eltárolja-e annak az időpontját, vagy csak az első és a legutolsó használat időpontját? Mert dátum szerint is szeretnék majd szűrni.

0
0
aboros képe

a last use, first use oszlopot azért tettem bele, hogy lásd ilyet is lehet, szemléltetve, hogy többféle aggregation type van. (ugye az advanced reszbe kapcsoltuk be azt az aggregationt)

a nézetben ugye ott van benne a dátum, mint felfedett szűrő. a táblázatban látható first use, last use, az csak a szűrt intervallumon belülre érvényes. tehát ha beállítasz olyan dátum feltételt, hogy is less than, -42days akkor a 42 nappal ezelőttnél korábbi "tag használatot" (node beküldés) listázza majd a táblázat, a last use legfeljebb 42 nappal ezelőtt lesz a táblázatban és minden számláló is kevesebb lesz, azok a tegek amiket 42 nappal ezelőtt még nem használt senki eltűnnek a táblázatból, miegymás. ez mind megy már a fenti nézettel is.

a dátum a nodeban tárolódik amit a felhasználó beküld. a teg, a nodera vonatkozik igazából. azt számolgatjuk össze melyik tag hányszor szerepel, a dátumot a nodeból szedjük és ki tudunk még onnan más dolgokat is, ki a user aki akkor abban a nodeban használta a teget, mi a profilképe, ha van a nodeba más mező (kép, link) azt is, miegymás.

szóval a válasz erre, hogy vajon az adatbázisba minden egyes tag/term felvételkor eltárolja-e annak az időpontját, vagy csak az első és a legutolsó használat időpontját? a válasz: nem. és igen. :) nem a tag tárolja, a user nem teget küld be, hanem tartalmat, amit tegel.

0
0

-
clear: both;

aboros képe

"ha rákattintok egy tag-re, akkor ez a nézet jöjjön be, mert most még a hagyományos módon jeleníti meg."

légyszi erről küldj egy képernyőképet, hogy hol kattintva micsoda jelenik meg. és minek kéne. ha ebben a táblázatban egy tegre kattintasz, be kéne jöjjön ugyan ez a táblázat csak arra a tegre amire kattintottál? mert abban 1 sor lesz, amire kattintottál. az kell?

0
0

-
clear: both;

aboros képe

és bármilyen tegre kattintasz, csak azokat a beküldéseket látod a táblázatban amikben használták azt?
http://aboros.com/webshare/term_node_table_%28Content%29_%7C_playground....

0
0

-
clear: both;

cworm képe

Ha rákkatintok egy tag-re, például a "zokni"-ra, akkor egy ilyen oldal jön be, lásd kép:

http://www.kephost.com/view3.php?filename=a1_2012_11_27_hiafcj2dqg.png

Ez így igazából annyira nem is rossz, de az megoldható valahogy esetleg, hogy pl az oldal tetején látszódjanak ugyanazok a statisztikák, mint amik az általad készített táblázatban vannak?

Egyébként még arra sem tudtam rájönni ( :( ), hogy azt a táblázatot hogyan lehet sima userként elérni, mert egyelőre csak adminként tudom a Structures-on keresztül a Views-ben és a View page-re kattintva. (Ezt: http://www.kephost.com/view3.php?filename=a1_2012_11_27_w37nt2cgqk.png)

Bocs, hogy ennyit bénázok...:D A régebbi Drupalokkal jobban boldogultam.:/

0
0
Sk8erPeter képe

1. hogy az oldal tetején látsszanak a statisztikák, egy megoldás a sokból, hogy block view-t hozol létre, meg contextual filterekkel játszol, hogy term id-t vársz, aztán Context modullal beállítod, hogy amennyiben az XYZ taxonómiaszótár elemeit böngészed, akkor jelenjen meg a content régióban a statisztika blokk (vagy ahol szeretnéd, hogy megjelenjen).

2. állítsd be a View published content permissiont:

View published content

1
0
Nagy Gusztáv képe

A nézethez csinálhatsz

  1. "oldal" megjelenítést útvonallal, és pl. menübe teszed
  2. "blokk" megjelenítést valamelyik régióba
0
0

Nagy Gusztáv

cworm képe

Igyekszem megvalósítani a fent leírtakat, aztán majd írok, csak nincs sok időm...:(

0
0