it-swarm-eu.dev

Zobrazují se uzly, ale po kliknutí na „stránka nebyla nalezena“

Nedávno jsem migroval web a některé uzly se neobjevily v seznamu obsahu, ale objevily se v pohledech, které jsem vytvořil. Když na ně však klikne (example.com/node/123), vrací pouze stránku, která nebyla nalezena.

Uzel je v databázi, a to jak v tabulce uzlů, tak v uzlech_revisionů a v příslušných tabulkách CCK.

Co by to mohlo být příčinou?

5
Karl Jóhann

Měl jsem tento problém, ovlivnil to pouze určité uzly. Při zkoumání v db odpovídaly všechny hodnoty mezi revizními tabulkami uzlů a uzlů, takže jsem původně předpokládal, že to nesouvisí s hodnotami v těchto tabulkách. Kontrolována tabulka url_alias a vše tam také vypadalo dobře, web je vícejazyčný, takže v tabulce proměnných byly zkontrolovány rozdíly mezi automatickými hodnotami vícejazyčných cest pro vlastní typy obsahu a vše bylo také v pořádku. Přestavba routeru nabídky nepomohla. Už jsem se pokusil resetovat všechna přístupová oprávnění k uzlu, jak je zde navrženo. Upřímně řečeno, jsem měl téměř nápady, pak jsem naštěstí narazil na tento příspěvek: D Problém přišel z místa, kde jsem importoval nějaký obsah uzlů z vlastního modulu, který jsem napsal, abych přijímal uzly z xml (což fungovalo dobře), ale od importu byl proveden uživatelský účet, který provedl import, byl odstraněn. To znamenalo, že k tomu byly stále připojeny všechny vícejazyčné importované uzly, nyní uid neexistujícího uživatelského účtu. Jednoduchý dotaz sql v phpmyadmin nastavil, aby všechny mé uzly byly vlastněny správcem (uid: 1)

UPDATE sada uzlů uid = 1; UPDATE set nre_revisions set uid = 1;

To vyřešilo můj matoucí problém. Navrhuji opravu tak, aby v případě odstranění uživatelského účtu Drupal volitelně zkontroluje všechny uzly patřící tomuto uživateli a aktualizuje je na uid: 1, takže uzly přidané odstraněným uživatelským účtem nejsou najednou nepřístupné) na zbytek webu včetně uid 1 (admin). Bylo to frustrující, protože rozumné řazení by přirozeně předpokládalo, že uid 1 bude mít vždy přístup k prohlížení/úpravám obsahu libovolného uzlu na webu bez ohledu na to, zda je, zakázán, povolen nebo přidal nějaký hrnek. Přeji vám dobré Drupaling!

2
knowpixels

Ve většině případů se jedná o konflikt s oprávněními, takže přejděte na admin/content/node-settings/rebuild a znovu vytvořte oprávnění.

K tomu dochází, když otestujete některé přístupové moduly a nejsou správně odinstalovány. Také si všimněte, že pohledy ne vždy používají stejná oprávnění, proto můžete svůj uzel vidět v pohledech, ale ne v node/123.

Pokud nemáte nainstalován žádný přístupový modul a přestane fungovat, podívejte se do databáze a proveďte následující dotazy:

TRUNCATE TABLE node_access;
INSERT INTO node_access VALUES (0, 0, 'all', 1, 0, 0);

To by také mělo opravit.

Můžete zkusit nainstalovat Devel a pomocí modulu Devel Node Access modul, který byl dodán s uzlem), analyzovat problém.

1
tostinni

Může to být, že databáze již neobsahuje informace o účtu použitém k vytvoření uzlu.

1
joe

This will be your problem

Co musíte udělat, je přejít na www.yourdomain.tld/admin/structure/pages, abyste zajistili, že jsou všechny deaktivované, a pak by měl být problém vyřešen, pokud jste neodstranili kritické systémové soubory, které Drupal = vyžaduje v tomto případě jít a znovu stáhnout distribuci Drupal a pak nahrát do svého hostitele a extrahovat soubory a přesunout je tak, aby přepsalo ty stávající, které jsou tam).

0