Přeskočit přímo na text


Node reference Views

Kategorie: Jak na to?
Týká se verze: Drupal 6.x

Ahoj, mám 3 typy obsahu. Jedná se o typ Okres, Obec, Akce. Typ Okres má položky Název okresu (NOKR) a Číslo okresu (COKR) Typ obec má položky Název obce (NOBCE) a Číslo okresu (COKR) do kterého patří. Typ Akce má položky NazOkresu typu nodereference autocomplete na typ obsahu Okres(NOKR). Tu vyplním jako první. Další položkou je položka NazObce typu nodereference autocomplete na typ obsahu Obec (NOBCE). Potřebuji však, aby se mi nabízely pouze obce ze zadaného okresu. Toho chci dosáhnout pomocí parametru COKR. Pomocí SQL by to bylo např. NazObce = select NOBCE from Obec where (COKR(Okres) = COKR(Obec)) and (NazOkresu=NOK­R(Okres)). Myslím že v Drupalu si musím ten select vytvořit přes Views, ale nevím jak. Už na to zírám druhý den a nemohu se pohnout z místa. Mohl by mne někdo popostrčit prosím? Problém jsem zde již jednou řešil http://www.drupal.cz/node/13806 ale k cíli jsem se nedostal Zde jsou problémy:

  1. Umím udělat View1 ve kterém na základě Název okresu (NOKR) získá Číslo okresu (COKR) . To však pouze u nodů, které jsou již v databázi. Jak to však udělat u právě pořizovaného nodu?
  2. Umím udělat View2 ve kterém na základě argumentu Číslo okresu (COKR) získám seznam Obcí v Okresu. Jak mám však předat tomuto View2 výsledek COKR z View1?

Předem děkuji za pomoc. Pokud však chcete pomoci, nepište prosím úplně obecná doporučení typu „Wiew Attach“, „Display view“, „View Arguments“, atd. ale myšlenku trochu rozveďte. Věřte, že návody na tyto doplňkové moduly jsem již četl a jsem z nich dost zmatený. Díky moc za inspiraci.

PřílohaVelikost
view1.jpg55.04 KB
view2.jpg56.53 KB
 

Jak to však udělat u právě

Jak to však udělat u právě pořizovaného nodu? co to presne znamena? zobrazovat neco na strance node/add/* na zaklade vyplneneho inputu? tak to ctu jeste jednou znovu a poradne, zkuste se spis podivat na modul hierarchical select a jeho implementaci node reference. do typu obsahu akce nedavejte zadnou referenci na okres, je zbytecna kdyz tam je reference na obec a ta ma referenci na okres. osobne bych si dokazal predstavit to resit pres taxonomy:
  • okres1
--obec11 –obec12
  • okres2
--obec21 –obec22 a pak pouzit vyse zmineny hierarchical select a v nem nastavit Allow deepest level only. nektery veci je lepsi v drupalu resit trochu jinak nez jak by se resili v nejaky na miru psany aplikaci a jak by rikalo rozumne navrzene DB schema.

Je to node, který právě

Je to node, který právě vytvářím a ještě není uložený v DB. Okres již mám vyplněný, a teď chci vyplnit Obec. Chci použít pole typu autocomplete. Do tohoto pole by však neměly naskakovat všechny obce, ale pouze ty z vyplněného okresu. Řešení přes taxonomy jsem původně zavrhl, ale možná to bude ono. Děkuji, určitě to vyzkouším. Myslel jsem, že to bude úplně snadné, přeci lze v Drupalu napsat registr obyvatel, pozemků, adres …

snadne to je, jen nektere

snadne to je, jen nektere veci v UI je potreba si dodelat vlastnorucne ve vlastnich modulech – to je hlavni sila Drupalu.

Škoda je, že modul funguje

Škoda je, že modul funguje pouze na taxonomy a ne na normální obsah. Problém je taky, jak naimportovat do taXONOMY 81 okresů a 6000 obcí ve správné stromové struktuře. I poté však taxonomy bude patrně považovat Lhotu v jednom okrese za stejnou Lhotu, jako v okrese jiném. Stále věřím, že to jde pomocí views. Všichni tu básní, jak je Drupal univerzální a skvělý, ale o některých věcech se asi nemluví. Vlastní modul bohužel napsat neumím. To ještě nikdy nikdo v Drupalu nepracoval s číselníkem adres? Nebo jsem něco přehlédl?

s views jen tak to nepujde,

s views jen tak to nepujde, muselo by se to resit pres custom js/ajax. co se struktury pres taxonomy tyce tak nevidim problem – Taxonomy CSV import/export modul funguje perfektne a umi i to, ze tam budou dve Lhoty- kazda s vlastnim ID. Pokud by to melo jit pres nody tak zkuste co jsem psal a to sice hierarchical select (a je mozne ze ten pro reference je samostatny submodul, nevim z hlavy) a mozna kombinaci s node_hierarchy modulem. proste je problem, ze v zakladu se nema ten druhy field jak dozvedet o tom co je vyplneno v prvnim. asi by to slo udelat pres vlastni autocomplete callback. ale hlavne: vazba na okres je nesmysl kdyz je tam vazba na obec a ta ma vazbu na okres. pro reseni pres taxonomy by ale byl lepsi drupal7 kde jsou termy Entity se vsema vyhodama. v sestce by to bylo dost omezujici.

Díky, udělám to jak říkáte.

Díky, udělám to jak říkáte. Pokud bude fungovat import, bude to asi nejlepší a nejrychlejší řešení. Zdraví Roland

ale je potreba tam nekde

ale je potreba tam nekde zatrhnout nastaveni neco jako „create term for each repeating name“ nebo tak nejak… pokud delate novy projekt tak doporucim jednoznacne switch na drupal7 jeste nez to vic rozjedete.

JJ, zrovna studuji postup

JJ, zrovna studuji postup upgrade. Koukám, že Taxonomy CSV import je i v verzi D7.

Tak jsem sice o kousek dál,

Tak jsem sice o kousek dál, ale zatím to je tak nějak napůl. Taxonomy CSV import se mi seknul přesně v půlce (problém s parametrem max_questions). Na to jsem celkem zvyklý, většinou importní soubor zkrátím o počet importovaných řádků a jede se znovu. V tomto případě to není možné. Přestože mám modul prokazatelně nainstalovaný, import se nedá podruhé spustit. Zmizel na něj odkaz v meníčku a přestala existovat i cesta mojedomena?q=ad­min/structure/ta­xonomy/csv_im­port. Dále trochu vadí, že když dám Hierarchical select, tak se mi nenabídne widget typu autocomplete, takže musím používat seznam. Je to takové celé divné, ale určitý pokrok tam je. Budu na tom dál pracovat a v případě úspěchu zde ještě doplním info.

to je vlastnost hierarchical

to je vlastnost hierarchical selectu. widget seznam = select anglicky. tady je to jakoby „hierarchicky seznam“. nainstalujte devel a admin_menu. pak vlevo nahore v admin menu bude flush all caches – to by tam melo vratit tu cestu importu(nebo admin – konfigurace – vyvoj – vykon → vymazat mezipameti)

Já se z toho zblázním. Po

Já se z toho zblázním. Po načtení všech položek do Taxonomy mi Drupal hlásí překročený PHP memory limit (80M) kdykoliv chci dát seznam termínů. Pokud si dovolím přidávat nový obsah typu kde se vyskytuje Hierarchical select, tak automaticky staré známé překročení max_questions (50k) a pak půl hodiny nepřístupná DB. Evidentně se nesnaží pracovat s podmnožinou obcí v okrese, ale nejdřív zřejmě vybere všechny obce, které pak nějakým mechanizmem zúží. přitom PHPMyAdmin s tou tabulkou žádné potíže nemá, normálně mi udělá select všech vět z tabulky taxonomy_data nebo jak se to jmenuje, už je to zase nedostupné). Žádné čištění cache nepomáhá. Buď změním hosting, nebo RS. To teda nevím, kdybych šel o úroveň níž a zahrnul do toho ještě katastry a ulice, tak bych asi potřeboval nějaký superserver. Na to mi před 20 lety stačila obyčejná Dbase 4 a PC AT 286 s 1 MB RAM. Dnes ani zítra to už nechci vidět.

casy se meni… ale takovy

casy se meni… ale takovy hosting s takovymi limity bych nechtel ani zadarmo. co se tyce vykonu hierarchical selectu uprimne nevim kde je problem, on nejak nevyuziva taxonomy_get_tree, ale nejak ho obchazi snad kvuli cache nebo co…

Máte pravdu. Právě měním

Máte pravdu. Právě měním hosting – 128M snad bude OK. Pak budu pokračovat.

Už to chodí, díky za podporu.

Už to chodí, díky za podporu.

Tak jsem to vzdal a celý

Tak jsem to vzdal a celý problém vyřešil modulem Address. Ten sice neposkytuje komfort základních územních registrů, ale zase umí spolupracovat s Google maps. S tím Hierarchical selectem byly jen potíže. I po změně hostingu se taxonomy načítalo cca 2 minuty, což je při zadávání nových záznamů do DB velký problém. Vyzkoušel jsem všechny varianty nastavení. Věřím, že HS může být dobrý sluha do několika stovek položek. Ale od několika tisíc položek v taxonomy je to zlý pán.

Poslat nový komentář

  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <em> <strong> <b> <i> <br> <code> <ul> <ol> <li> <pre> <pre class="php">
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

Více informací o možnostech formátování

Hledat

Přihlášení

Bezpečnost Drupalu

Z hlediska bezpečnosti je Drupal na velmi vysoké úrovni, díky propracovanému systému hlášení, prověřování a řešení možných problémů.

Čtěte více a odebírejte bezpečnostní aktuality

Poslední komentáře

Kdo je online

Momentálně je online 1 uživatel a 0 hostů.

Online uživatelé

Support

Psychologie - poradenství