it-swarm-eu.dev

Přepsání rozvržení tabulky zobrazení v modulu

Snažím se potlačit tabulku pohledu z mého modulu. Nemohu najít, jaké argumenty mají být a v jakém pořadí (pro mou funkci hook_theme func). Soubor motivu jsem zkopíroval z pohledů/témat a neprováděl jsem žádné úpravy. Ví někdo, co se děje špatně a jaké by měly být hodnoty argumentů níže?

Moje motivová konfigurace je v současné době:

'views_view_table__opportunities_mentions' => array(
  'arguments' => array(
    'view' => NULL, 
    'title' => NULL, 
    'header' => NULL, 
    'fields' => null, 
    'class' => null, 
    'row_classes' => null, 
    'rows' => null
  ),
  'template' => 'views-view-table--opportunities-mentions',
  'original hook' => 'views_view_table',
  'path' => drupal_get_path('module', 'smd') . '/theme',
),
4
lordg

Nejjednodušší způsob, jak zobrazit náhledy témat, je upravit konkrétní dotyčné zobrazení a posunutím dolů najít odkaz „informace o motivu“. Tato obrazovka vám přesně řekne, jaké zobrazení tematických šablon, které aktuálně používá, a jaké šablony, které můžete v motivu vytvořit, přepíšíte tento výstup.

To je v podstatě všechny pohledy na téma - potlačení výchozího označení něčím, co vám vyhovuje.

@see http://www.group42.ca/theming_views_2_the_basics za vynikající výukové programy o tématických pohledech

[~ # ~] upravit [~ # ~]

Pokud chcete mít úplnou kontrolu nad vytvořeným značením, a, aby byl přenositelný napříč tématy, jedinou možností, kterou máte, je vytvoření vlastního modulu. Tento vlastní modul by mohl mít také použitelné komponenty a mohl by dokonce použít pohled k provedení jakéhokoli těžkého SQL (nebo byste mohli jen napsat SQL)

Prohlédněte si podobný modul, abyste mohli začít, a přečtěte si hook_theme

3
wiifm

Je mnohem lepší předběžně zpracovat pohled.

Pokud chcete přepsat pouze určitý displej, musíte být konkrétní. Nejprve musíte pro pohled vytvořit soubor tpl.php. Při pohledu na informace o motivu pro konkrétní pohled můžete zjistit, který z nich chcete. Zde je příklad:

enter image description here Pak budete chtít najít návrhy šablon stylu řádků, které jsou aktuálně „Tabulka“:

enter image description here

views-view-table.tpl.php přepíše každý pohled, který má styl tabulky. Pokud chcete být konkrétní právě pro toto zobrazení, budete chtít (v tomto případě) view-view-table - frontpage.tpl.php - nahraďte „frontpage“ jakýmkoli návrhy, které vám dává váš názor.

Tento soubor musíte skutečně vytvořit v adresáři motivu. Ale co do tohoto souboru vložíte? Stačí kliknout na odkaz „Styl výstupu“ a zobrazí se vám kód, který můžete jednoduše zkopírovat a vložit přímo do tohoto souboru.

Po uložení tohoto souboru otevřete template.php a vytvořte pro něj preprocesor. Všimněte si, že preprocesory nefungují bez souboru přítomného v D6. Zde je několik kódů útržků, které se drží našeho příkladu:

function [theme-name]_preprocess_views_view_table__frontpage(&$vars) {
  // manipulate the $vars here
  ...
}

$ vars je předán odkazem, takže musíte pouze manipulovat s příslušnými klávesami, abyste udělali to, co chcete.

0
sirkitree

Vlastně mi to připadá většinou správné, použil jsem stejný kód v mém modulu. Chtěl jsem zabalit svůj soubor šablony se svým pohledem v modulu. Protože web používá pro administrátora běžné téma bartik, nechtěl jsem toto téma upravovat, abych přidal svůj CSS.

Věřím, že je špatné, je následující:

'views_view_table__opportunities_mentions' => array(
  'arguments' => array(
  'view' => NULL, 
  'title' => NULL, 
  'header' => NULL, 
  'fields' => null, 
  'class' => null, 
  'row_classes' => null, 
  'rows' => null
),
'template' => 'views-view-table--opportunities-mentions',
'base hook' => 'views_view_table',
'path' => drupal_get_path('module', 'smd') . '/theme',
),

Všimněte si, že místo original hook, to by mělo být base hook. To vyžaduje, aby pohled měl vlastní předzpracované funkce, které budou správně připojeny k vašemu tpl. Pokud to nenastavíte správně, přesto si vyzvedne váš vlastní tpl, ale dostanete všechny druhy chyb ohledně chybějících nebo nulových proměnných v tpl, protože funkce preprocesu nenastavila žádnou z proměnných, které tpl používá .

0
stockli

Funkce motivu, kterou chcete přepsat, je templátová funkce motivu. To znamená, že je volána funkce předzpracování a proměnné jsou předávány do šablony. Předprocesní funkce jsou trochu odlišné v tom, že je předávána pouze jedna proměnná: pole obsahující všechny proměnné, takže pořadí proměnných není relevantní.

Vidět:

0
googletorp