PDA

Zobacz pełną wersję : Upgrade z joomla 1.5.x do 3.2.x Komunikat "Błąd Kategorii nie znaleziono"



almooy
14-05-2014, 11:29
Dokonałem upgrade'u z joomla 1.5.x do 3.2.x.
Kłopot jest z wyświetlaniem kategorii artykułów.
Joomla kategorii w ogóle nie wyświetla.

Przeszukałem cały internet i żadna wskazówka nie pomaga rozwiązać problemu.
Mam komunikat "Błąd Kategorii nie znaleziono".

Nie pomagają żadne zmiany :

1 zmiana w pliku configuration.php $live_site = ''; wpisuje tu adres domeny.

http://forum.joomla.pl/showthread.php?67851-B%C5%82%C4%85d-404-kategorii-nie-znaleziono

2 Zmieniam w pliku libraries/legacy/application/application.php funkcję dispatch()
Robię to wg porady osoby o nicku Kristobal (http://forum.joomla.org/memberlist.php?mode=viewprofile&u=183017&sid=220505d3d91691c454b2bd812077a482):
http://forum.joomla.org/viewtopic.php?f=429&t=271082

U mnie po zmianach funkcja dispatch() z pliku libraries/legacy/application/application.php wygląda następująco:
public function dispatch($component = null)
{

$document = JFactory::getDocument();
if(!empty($component)) {

$contents = JComponentHelper::renderComponent($component);
$document->setBuffer($contents, 'component');
}
else{
// Trigger the onAfterDispatch event.
JPluginHelper::importPlugin('system');
$this->triggerEvent('onAfterDispatch');
}
}

3 Zmieniam w pliku libraries/legacy/categories/categories.php function _load($id)
Robię to wg porady z strony
http://www.joomlaman.com/forum/jm-video-gallery-lite/339-404-category-not-found.html?start=6
Zakomentowałem kod w funkcji function _load($id)
/* if ($this->_options['access'])
{

$query->where('c.access IN ('.implode(',', $user->getAuthorisedViewLevels()).')');
}
*/

Niestety nic nie pomaga.
Może ktoś miał taki komunikat o błędzie "Błąd Kategorii nie znaleziono" i znalazł rozwiązanie ?

komodore
14-05-2014, 16:43
Jak zrobiłeś "upgrade"?

almooy
14-05-2014, 18:17
Zainstalowałem na serwerze joomla 3.2
wget http://joomlacode.org/gf/download/frsrelease/19239/158104/Joomla_3.2.3-Stable-Full_Package.zip
unzip Joomla_3.2.3-Stable-Full_Package.zip
Migracja za pomocą jUpgradePRO: http://www.trzepizur.pl/blog/item/152-jupgradepro-migracja.html

1. Pobranie: http://matware.com.ar/downloads/jupgradepro.html
(do M:\!PROJEKTY\...\migracja joomla 1.5 do 3.2\jUpgradePRO)
com_jupgradepro-3.2.0.zip
plg_jupgradepro-restful-3.2.0-j1.5.zip

2. Instalacja com_jupgradepro-3.2.0.zip na czystej instalacji joomla 3.2

3. Instalacja plg_jupgradepro-restful-3.2.0-j1.5.zip na obecnym serwisie xxxx
na liście dodatków figuruje jako System - jUpgrade, ustawiam w konfiguracji klucz dostepu i włączam

4. Zrobiłem kopię serwisu

5. Ustawiłem nowe parametry w configuration.php
var $log_path,
var $tmp_path,
var $host,
var $db,
var $user,
var $password

6. Zmieniłem plik .htaccess
Zmieniłem przestarzałe +FollowSymLinks na +SymLinksIfOwnerMatch Zakomentowałem # AddHandler application/x-httpd-php5 .php

7. Wyłączyłem zabezpieczenie .htaccess dla administratora# cd administrator
# mv .htaccess .htaccess.off

8. http://wiki.joomla.pl/Migracja_Joomla_1.5_do_Joomla_2.5 (http://wiki.joomla.pl/Migracja_Joomla_1.5_do_Joomla_2.5)aktualna wersja to 1.5.25 - robimy upgrade do 1.5.26
# wget http://joomlacode.org/gf/download/frsrelease/16891/73386/Joomla_1.5.25_to_1.5.26-Stable-Patch_Package.tar.gz
- nadpisanie wszystkich plików, po zalogowaniu pokazuje się 1.5.26
instalacja plg_jupgradepro-restful-3.2.0-j1.5.zip na obecnym serwisie xxxxxx
na liście dodatków figuruje jako System - jUpgrade, ustawiam w konfiguracji klucz dostepu i włączam...
Nie ma pustej strony jak poprzednio

9. W wersji docelowej xyz konfiguruję jUpgradeProKomponenty > jUpgradePro > Opcje
Migration method: RESTful
Hostname:,
Username:,
Password:,
Security Key:
Zawiesił upgrade, przy korzystaniu bezpłatnego jUpgradePro

10. Korzystam z płatnego pluginu SP Upgrade: http://cyend.com/extensions/sprs/sp-upgrade/sp-upgrade-4-0-1- usuwam zaimportowane wcześniej dane
- instaluję pkg_spupgrade_4.0.1_j3.2.zip
- konfiguracja Komponenty > SP Upgrade > Options
- dane dostępowe do bazy
- dane logowania FTP do rzgw15
Transfer:
- Users -> Users - ok
Content -> Sections - ok

- Content -> Categories - ok
- Content -> Articles - ok (po 100)
- import images
- import templates

11. Instalacja szablonu po migracji. Edycja plików szablonu
- templateDetails.xml
- index.php

12. Instalacja modułu dj menu (http://dj-extensions.com/downloads/cat_view/72-dj-menu) - zgodnie z http://dj-extensions.com/documentation/dj-menu/dj-menu-module kopiuję pliki css
z .../public_html/modules/mod_djmenu/assets/css
do .../public_html/templates/szablon/css

13. Skopiowanie pliku analyticstracking.php ze starego serwisu

14.Przy wejściu na podstronę wyświetla się pusty ekran- w error_log błąd: Fatal error: PHP Fatal error: Call to undefined method JUser::authorize() in /home/rzgw32/public_html/templates/szablon/
/html/com_content/article/default.php on line 4
http://www.joomlahive.com/all-things-joomla/item/33-fatal-error-call-to-undefined-method-juser-authorize.html
Juser::authorize() has been removed. Use JUser::authorise() instead.

15. Dostosowywanie kodu szablonu
Instalacja edytora JCE
https://www.joomlacontenteditor.net/downloads/editor/joomla-3 > M:\!PROJEKTY\...\migracja joomla 1.5 do 3.2\JCE editor
skopiowanie ikonek plików pdf/xls/doc do katalogu /home/rzgw32/public_html/media/jce

16. Dokonuję przeniesienia aktualnej wersji
-1. kopia wersji 1.5 z superhost na mój serwer
-2. przegranie nowych plików z katalogu /images
-3. eksport bazy danych
-4. FTP pliku na moim serwerze
-5. konwersja pliku .sql z latin2 na utf8
-6. usunięcie z pliku .sql CREATE DATABASE
-7. usunięcie z bazy danych wszystkich tabel
-8. import bazy: # mysql -u
-9. sprawdzenie, czy pod phpmyadmin widać polskie znaki w tabelach -10. instalacja świeżej wersji 3.3

komodore
15-05-2014, 01:02
Może ktoś miał taki komunikat o błędzie "Błąd Kategorii nie znaleziono" i znalazł rozwiązanie ?
Do wszystkich witryn używałem jUpgradePro i tylko w tym zakresie odpowiem.
Pojawiał się taki komunikat, który był skutkiem nieprawidłowego adresu, a ten z kolei był skutkiem błędu w bazie danych w tabeli menu. Temat poruszany wielokrotnie na forum.

almooy
04-07-2014, 14:03
Musiałem przeanalizować bazę danych.
Musiałem sprawdzić 3 tabele powiązane ze sobą:
Tabela 'content' - treść artykułów
Tabela 'categories' - zdefiniowane kategorie
Tabela 'assets' - łącząca obie tabele 'content' i 'categories'

3 Tabele content, assets, categories są ze sobą połączone polami:

Tabela content ma pole asset_id Foreign key to assets.id Parent Key

Tabela content ma pole catid odnoszące się do categories.id

Tabela categories ma pole asset_id FK to assets.id

Tabela assets ma pole parent_id, gdzie wartość 8 przypisuje dla określonej kategorii
Tabela assets ma pole parent_id, odnoszące się do categories.id, gdy są przydzielone artykuły do kategorii.

System wyświetlał tylko nowo utworzone kategorie.
Ręczne wprowadzanie tych samych wartości co przypisze system nie powodowało wyświetlania kategorii.

W bazie danych zmieniałem nazwę kategorii, która się nie wyświetlała, tak by jej alias był inny.
W zapleczu tworzyłem nową kategorię o nazwie starej kategorii, system przypisał jej nowy numer id.

Ten numer id wpisywałem do pola catid tabeli content content.catid.
Pole to ma wartość id kategorii, która jest przypisana dla danego artykułu.

Zamieniałem stary numer id kategorii nowym, który nadał system.

Musiała być prawidłowa kolejność numerów pól lft rgt w tabeli categories.
Zauważyłem też, że należało zmienić kolejność kategorii, stawały się widoczne i błąd przestawał się wyświetlać.