views-ben hogy kell beállítani, hogy az url-be ne igényeljen vesszőt

this.isti képe

Sziasztok!

Van egy "Kategória" szótáram, ami a cikkek besorolására szolgál.
Létrehoztam Views-el egy Page típusú nézetet, az adott kategóriához tartozó cikkeket listázza.
A listázás sikerül is, de az url-be igényli a szótár nevében szereplő írásjeleket.
Pl: kategória000/alma,-körte,-szilva

Ez azért zavar be, mert ez az oldal felül kéne hogy írja a szótár oldalait, ha majd kiszedem a "000"-t az url-ből.
A pathautónál az van beállítva, hogy az url-ből törölje az írásjeleket, így ő a szótár url-jének ezt adja meg:
kategória/alma-körte-szilva
Szóval nem fogja fedni egymást a két url készlet, így a views csak azoknak az oldalaknak a kinézetét fogja felülírni, amikben nincsenek írásjelek.

Remélem érthetően fogalmaztam...

Views beállításai:
Útvonal: kategória000/%
Relationships: Identifier = Identifier
Contextual filters:
When the filter... = Provide default value
Típus = Taxonomy term ID from URL
When the filter... = Specify validation criteria
Validator = Taxonómia kifejezés
Szótárak = Cikkek
Filter value type = Term name converted to Term ID
Transform dashes in URL to spaces in term name... = bejelölve

Mit állítsak be, hogy a views se igényelje az url-be az írásjeleket?

Köszönöm előre is a segítséget!

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

felejcsd el a pathautot egy pillanatra. neked nem "Term name converted to Term ID" típusú kéne, hanem sima Term ID.

így aztán lesznek teljesen hagyományos taxonomy/term/42 útvonalaid a saját nézeteddel. ha ez megy, generálsz ezeknek álnevet a pathauto segítségével (ez lesz pl a kategória/korte-alma-barack). ezek továbbra is csak álnevek, valójában az útvonal továbbra is a taxonomy/term/42. a listázásod ekkor mindkét urlre bejön, beírhatod kézzel ugyan az álnevet, de a drupal tudja hogy az valójában egy taxonomy/term/42 oldal és a nézetedet hívja meg rá.

hogy mégis mindig az álnév szerepeljen a böngésző címsorában az egy külön probléma. telepíted a globalredirect modult, ami pedig azt csinálja, hogy ha egy útvonalnak létezik álneve, akkor automatikusan átírányít arra.

2
0

-
clear: both;

this.isti képe

Logikus amit írsz, nekem mégis adódtak vele nehézségeim.

Ha a "Term name converted to Term ID" helyett a "Term ID"-t választom, nem lesz egyből "taxonomy/term/42" url, hanem csak "kategória000/42".
Az útvonalat írjam át "taxonomy/term/%"-ra?

Ha ezt így állítom be, nem lehet simán beállítani, hogy views-es "taxonomy..." url fedje a szótár által létrehozottat?

Ha nem lehet, hanem tényleg a pathauto-val kéne a views-hez hozzárendelni álnevet, azt nem igazán tudom hogy kell. Pathautoban nálam a patternek közt csak "Content -", "Taxonomi Term -", és "User Path" van, "Views Path" nincs. Ehhez is kell valami bővítmény?

Meg az is van, hogy ha a szótár "taxonomy/term/42" url-jéből csinálok egy ugyanolyan url-ű view-et, hogy különbözteti majd meg őket a pathauto?

0
0
this.isti képe

Sikerült megoldani, de nem kellett hozzá más bővítményt telepíteni, sem beállítgatni.

A viewsben csak ezeket kellett módosítani:
Útvonal: taxonomy/term/%
Filter value type = Kifejezésazonosító
Transform dashes in URL to spaces in term name... = nem kell bejelölni

Ezzel automatikusan elfedi a "taxonomy/term/42" url-t, így a pathauto hozzá rendeli a szótárhoz rendelt álnevet.

Azért aboros hozzászólása segített a megértésben, amit köszönök!

2
0
aboros képe

mert most így minden kategória mindig eszerint a nézet szerint jelenik meg. ha ez így jó neked, akkor pont oké, de gyakran van, hogy mondjuk ha a borvidékre kattintok akkor egy tök másik lista kell mintha arra a kategóriára, hogy "fehérbor" vagy hogy xy pince, stb. (borvidékek szótár, borfajták szótár, pincészetek szótár:)

2
0

-
clear: both;

this.isti képe

Hát még jó hogy szólsz, hogy ez így minden szótárat formáz.
Azt hittem, hogy a "Szótárak = Cikkek", és a "Filter criteria = Tartalom:Kategória" beállításokkal azt érem el, hogy csak rá legyen figyelembe véve.
Ehhez képest csak azt értem el, hogy most csak a Kategória szótár linkjei működnek, a többinél "Az oldal nem található" üzenet fogad.

Szóval mégse sikerült teljesen a dolog...
Úgyhogy tudnál még pár percet rám szánni, hogy hogyan is kell ezt a pathautos hozzárendelős dolgot csinálni?

0
0
aboros képe

mert nem látom, hogy eddig pontosan milyen beállításai vannak a nézetednek és az se teljesen világos, hogy mit akarsz elérni. a pathautot ne keverd bele, semmi köze ehhez a nézetes dologhoz. mikor majd működik amit akarsz, rákevered a pathautot és meglesznek az útvonalálnevek.

szóval azt szeretnéd, hogy:
- minden szótár minden kifejezése ugyan azt a listázást használja
vagy
- szótáranként különböző listázást szeretnél
vagy
- esetleg kifejezésenként különbözőt
vagy
- esetleg tartalomtípusonként szeretnél különbözőt? tehát hogy teszem azt cikkek/xy-kategória csak a cikk tartalomtípusokat listázza amik xy-kategóriába tartoznak?

jó lenne még pontosan látni hogy épül fel most a nézet.
ezt úgy tudod legpraktikusabban megmutatni, hogy exportálod a nézetet és <code></code> tegek közé másolva beküldöd ide hozzászólásként.

0
0

-
clear: both;

this.isti képe

Azt szeretném, hogy:
- Szótáranként különböző legyen a listázás. Pl. A kategóriánként listázásnál más adatokat listázzon, mint ha a településenként listázna.(mindkettő egy-egy különálló szótár)
- A nézetben csak a Cikk típusú tartalmak jelenjenek meg.
- A kifejezésenként különböző eddig nem jutott eszembe, de most hogy felvettetted, felcsigáztad az érdeklődésemet :D

Az exportált View: (volt már jó-pár változata, megpróbáltam a fórumban elhangzottakhoz igazítani)

$view = new view();
$view->name = 'kategorizalt_cikkek';
$view->description = 'A view to emulate Drupal core\'s handling of taxonomy/term.';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Kategorizált cikkek';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$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['exposed_form']['options']['reset_button_label'] = 'Alaphelyzet';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '20';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['quantity'] = '9';
$handler->display->display_options['pager']['options']['tags']['first'] = '« első';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ előző';
$handler->display->display_options['pager']['options']['tags']['next'] = 'következő ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'utolsó »';
$handler->display->display_options['style_plugin'] = 'list';
$handler->display->display_options['style_options']['uses_fields'] = TRUE;
$handler->display->display_options['row_plugin'] = 'fields';
/* Relationship: Tartalom: Kategória (field_kategoria) */
$handler->display->display_options['relationships']['field_kategoria_tid']['id'] = 'field_kategoria_tid';
$handler->display->display_options['relationships']['field_kategoria_tid']['table'] = 'field_data_field_kategoria';
$handler->display->display_options['relationships']['field_kategoria_tid']['field'] = 'field_kategoria_tid';
/* Mező: Tartalom: Borítókép */
$handler->display->display_options['fields']['field_boritokep']['id'] = 'field_boritokep';
$handler->display->display_options['fields']['field_boritokep']['table'] = 'field_data_field_boritokep';
$handler->display->display_options['fields']['field_boritokep']['field'] = 'field_boritokep';
$handler->display->display_options['fields']['field_boritokep']['label'] = '';
$handler->display->display_options['fields']['field_boritokep']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_boritokep']['settings'] = array(
  'image_style' => 'thumbnail',
  'image_link' => 'content',
);
/* Mező: Tartalom: Cím */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
/* Mező: Tartalom: Body */
$handler->display->display_options['fields']['body']['id'] = 'body';
$handler->display->display_options['fields']['body']['table'] = 'field_data_body';
$handler->display->display_options['fields']['body']['field'] = 'body';
$handler->display->display_options['fields']['body']['label'] = '';
$handler->display->display_options['fields']['body']['type'] = 'text_trimmed';
$handler->display->display_options['fields']['body']['settings'] = array(
  'trim_length' => '400',
);
/* Sort criterion: Tartalom: Sticky */
$handler->display->display_options['sorts']['sticky']['id'] = 'sticky';
$handler->display->display_options['sorts']['sticky']['table'] = 'node';
$handler->display->display_options['sorts']['sticky']['field'] = 'sticky';
$handler->display->display_options['sorts']['sticky']['order'] = 'DESC';
/* Sort criterion: Tartalom: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Contextual filter: Tartalom: Has taxonomy term ID (with depth) */
$handler->display->display_options['arguments']['term_node_tid_depth']['id'] = 'term_node_tid_depth';
$handler->display->display_options['arguments']['term_node_tid_depth']['table'] = 'node';
$handler->display->display_options['arguments']['term_node_tid_depth']['field'] = 'term_node_tid_depth';
$handler->display->display_options['arguments']['term_node_tid_depth']['default_action'] = 'default';
$handler->display->display_options['arguments']['term_node_tid_depth']['exception']['title_enable'] = TRUE;
$handler->display->display_options['arguments']['term_node_tid_depth']['exception']['title'] = 'Mind';
$handler->display->display_options['arguments']['term_node_tid_depth']['breadcrumb'] = 'aaa';
$handler->display->display_options['arguments']['term_node_tid_depth']['default_argument_type'] = 'taxonomy_tid';
$handler->display->display_options['arguments']['term_node_tid_depth']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['term_node_tid_depth']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['term_node_tid_depth']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['term_node_tid_depth']['specify_validation'] = TRUE;
$handler->display->display_options['arguments']['term_node_tid_depth']['validate']['type'] = 'taxonomy_term';
$handler->display->display_options['arguments']['term_node_tid_depth']['validate_options']['vocabularies'] = array(
  'kategoria' => 'kategoria',
);
$handler->display->display_options['arguments']['term_node_tid_depth']['validate_options']['type'] = 'tids';
$handler->display->display_options['arguments']['term_node_tid_depth']['depth'] = '2';
$handler->display->display_options['arguments']['term_node_tid_depth']['break_phrase'] = TRUE;
/* Contextual filter: Tartalom: Has taxonomy term ID depth modifier */
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['id'] = 'term_node_tid_depth_modifier';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['table'] = 'node';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['field'] = 'term_node_tid_depth_modifier';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['exception']['title_enable'] = TRUE;
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['exception']['title'] = 'Mind';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['term_node_tid_depth_modifier']['specify_validation'] = TRUE;
/* Filter criterion: Tartalom: Published or admin */
$handler->display->display_options['filters']['status_extra']['id'] = 'status_extra';
$handler->display->display_options['filters']['status_extra']['table'] = 'node';
$handler->display->display_options['filters']['status_extra']['field'] = 'status_extra';
$handler->display->display_options['filters']['status_extra']['group'] = 0;
$handler->display->display_options['filters']['status_extra']['expose']['operator'] = FALSE;
/* Filter criterion: Tartalom: Kategória (field_kategoria) */
$handler->display->display_options['filters']['field_kategoria_tid']['id'] = 'field_kategoria_tid';
$handler->display->display_options['filters']['field_kategoria_tid']['table'] = 'field_data_field_kategoria';
$handler->display->display_options['filters']['field_kategoria_tid']['field'] = 'field_kategoria_tid';
$handler->display->display_options['filters']['field_kategoria_tid']['value'] = '';
$handler->display->display_options['filters']['field_kategoria_tid']['vocabulary'] = 'kategoria';
/* Filter criterion: Tartalom: Típus */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'article' => 'article',
);
 
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'taxonomy/term/%';
$translatables['kategorizalt_cikkek'] = array(
  t('Master'),
  t('more'),
  t('Apply'),
  t('Alaphelyzet'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('Items per page'),
  t('- All -'),
  t('Offset'),
  t('« első'),
  t('‹ előző'),
  t('következő ›'),
  t('utolsó »'),
  t('term from field_kategoria'),
  t('Mind'),
  t('aaa'),
  t('Page'),
);

Ez most a kategóriánként listázásnál jól működik, viszont a településenkénti listázásokat elrontja, "Az oldal nem található" üzenetet ír náluk.
Ha a "Contextual filters >> When the filter val... >> Specify validat..."-nél nincs bejelölve, hogy "Kategória", akkor minden szótárra működik ez a nézet, de jó volna a többi szótárhoz más nézetet létrehozni.

0
0
aboros képe

a filterek közé nem kell a 'field_kategoria' és a contextual filternél a validatorhoz nem kell a szótárra szűkítés sem. ekkor minden szótárban minden kategória listázás ezt a nézetet fogja használni.

arra, hogy szótáranként különböző legyen a listázás több megoldás is létezik, az egyszerűség kedvéért most ezt a modult javasolnám: https://www.drupal.org/project/taxonomy_display
sose használtam, de ezzel minden szótárnak be tudsz állítani egy nézetet, amit listázáshoz használni szeretnél. nem próbáltam ki, de gondolom mivel a mostani nézeted 'page' megjelenítőt használ és egy útvonalon csak egy 'page' lehet (az útvonalad most a taxonomy/term/%) ezért valószínűleg kicsit máshogy kell csinálni, blokk megjelenítő kell minden nézetbe, mert annak nincs útvonala.

szóval elkészíted az egyes listázásokat pont úgy mint a mostani nézeted (mínusz kategória _filter_, mínusz szótárra validálás), de nem page, hanem blokk megjelenítőkkel (akár ugyan abba a nézetbe is lehet több blokk megjelenítő, ahogy neked kényelmes). aztán használod a taxonomy_display modult és minden szótárban beállítod, hogy melyik nézet melyik megjelenítőjét akarod ott használni.

egy másik megoldás lenne, hogy page manager + panels modulokkal alakítod ki mindezt, de az jóval bonyolultabb lesz, ha még sose használtál panelst vagy amúgy nincs rá szükség. a kifejezésenként különbözőt csak költői túlzásnak szántam, persze megoldható és el tudom képzelni, hogy szükség lehet rá, de ha most nem az a feladat, akkor egyelőre hagynám és a feladatra koncentrálnék :)

2
0

-
clear: both;

this.isti képe

Köszönöm a segítséget, sikerült megoldani.

0
0