Willkommen Gast.
Um die volle Funktionalität des Forums nutzen zu können,
müssen Sie sich einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

 
Erweiterte Suche

31.112 Beiträge in 6.477 Themen- von 6.477 Mitglieder - Neuestes Mitglied: Frideborg

05-07-2020 12:30:46
JOOM::GALLERY::FORUMArchivJoomGallery 1.5 MVCInstallationFehlermeldung Class 'JFactory' nach Installation v1.0.0
Seiten: [1]
Drucken
Autor Thema: Fehlermeldung Class 'JFactory' nach Installation v1.0.0  (Gelesen 8581 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
wolf-o
Newbie
*
Offline Offline

Beiträge: 5



« am: 28-01-2009 08:50:47 »

Hallo zusammen,

nachdem ich mir nun die Nacht um die Ohren geschlagen habe und nicht sehr viel schlauer geworden bin ... habe ich mir scheinbar irgendwo einen Versions-Knoten eingefangen ... Sad

Mein (ungelöstes) Problem:

"JoomGallery 1.0.0" installiert auf -> "Joomla 1.0.15 stable" mit CB 1.2RC4

Das Gallery-backend arbeitet, soweit ich es beurteilen konnte, fehlerfrei .... ABER .... rufe ich die Gallery im Frontend auf, wird die Seite OHNE CSS-style angezeigt und der Seitenaufbau bricht dann mit folgender Fehlermeldung ab:

Code:
Fatal error: Class 'JFactory' not found in /usr/local/etc/httpd/vhtdocs/xxxxxxxx/xxxxxxxx/components/com_joomgallery/joomgallery.html.php on line 555

"Die Recherche der Nacht" brachte mich eigentlich nur soweit, als dass die 'JFactory' Class mit Joomla 1.0 angeblich nichts zu tun hat und nur J1.5 betrifft ... Roll Eyes

Ich check's momentan nicht mehr - wo "der Wurm" sein sollte.... sm_dead

Über sachdienliche Hinweise würde ich mich freuen!! sm_yes

Gruß
Wolf-O
« Letzte Änderung: 28-01-2009 09:09:25 von wolf-o » Gespeichert
mab
Entwickler-Team
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1.279



« Antworten #1 am: 28-01-2009 10:06:43 »

Hi wolf-o,

es handelt sich um diesen Code-Abschnitt in der joomgallery.html.php ab Zeile 554:

Code
  if(!defined('_JEXEC')) return;
 $mainframe = & JFactory::getApplication('site');
 $database = & Jfactory::getDBO();
 $user = & JFactory::getUser();
 $pathway = & $mainframe->getPathway();
 

Dort wird abgefragt, ob die Konstante _JEXEC definiert ist. Nur dann werden die folgenden Aktionen durchgeführt. Auf einem Joomla-1.0.x-System sollte _JEXEC eigentlich nicht definiert sein. Dies ist eine eindeutige Kontroll-Konstante von Joomla 1.5.x. Wenn sie auf Deinem System trotzdem definiert ist, dann durch eine andere, falsch programmierte Erweiterung.
Gespeichert

Gruß mab
wolf-o
Newbie
*
Offline Offline

Beiträge: 5



« Antworten #2 am: 28-01-2009 10:40:10 »

Hallo mab!!

Danke, für die schnelle Rückmeldung!! sm_smilewinkgrin

OK - zum Verständnis - dann läuft JoomGallery 1.0 auf Joomla 1.0 & 1.5 ... ?! Richtig ??

Das JoomGallery-Script prüft, ob _JEXEC definiert ist - erkennt daran die Joomla Version und arbeitet danach [if(!defined...] die folgenden variablen ab ... stößt dabei auf 'JFactory' und "hängt sich auf" (weil es JFactory in Joomla 1.0.x nicht gibt)...?! sm_dead

d.h. Ich müsste nun herausfinden, welcher "Component" oder "Module" das _JEXEC definiert hat ??? Shocked

... oder wie gehe diesen Knoten am besten an???

 Sad
Gespeichert
Hypnotoad
Entwickler-Team
Jr. Member
*****
Offline Offline

Beiträge: 225



WWW
« Antworten #3 am: 28-01-2009 11:02:24 »

d.h. Ich müsste nun herausfinden, welcher "Component" oder "Module" das _JEXEC definiert hat ??? Shocked

... oder wie gehe diesen Knoten am besten an???
Hast du einen SSH-Zugriff auf den Server? Dann kann das sehr einfach sein.

Ansonsten würde ich mit den Komponenten / Modulen anfangen, die parallel zur JG geladen werden könnten. Alle bis auf die JoomGallery deaktivieren, dann schrittweise immer eines zusätzlich aktivieren bis das Problem wieder auftritt.
Gespeichert

Bitte keine Support-Anfragen per PN. Einfach im Forum posten, vielleicht hat jemand anders ein ähnliches Problem, oder es bereits gelöst.

jAwards - Medallien und mehr in Joomla
wolf-o
Newbie
*
Offline Offline

Beiträge: 5



« Antworten #4 am: 28-01-2009 11:48:22 »

Hallo Hypnotoad,

tja - habe leider keinen SSH-Zugriff... sm_no

d.h. ich werde die Fehlersuche mit ein-/ausschalten verbringen?! Roll Eyes

Das kann doch fast nicht sein, dass dieses Problem "neu" ist .... aber auch "googeln" bringt mich nicht weiter...

Ihr habt keine "Black-List" für add-ons, die mit der JG nicht kompatibel sind, oder?? Erfahrungswerte?? sm_no


Melde mich wieder ... brauche etwas "Augenpflege" ...

n8, sm_dead
Gespeichert
mab
Entwickler-Team
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1.279



« Antworten #5 am: 28-01-2009 12:08:09 »

Hi wolf-o,

nein, wir haben keine Blacklist; das Problem stellt sich ja auch nicht nur mit der JoomGallery sondern mit allen Komponenten, die diese Überprüfung ausführen, um auch im Legacy auf Joomla 1.5.x laufen zu können.

Du kannst aber die Überprüfung erweitern, dann sollte das Problem nicht mehr auftauchen.

Anstelle von
Code
  if(!defined('_JEXEC')) return;
 

fügst Du dort diese Zeile ein:
Code
  if(!defined('_JEXEC') && !defined('JPATH_COMPONENT')) return;
 

Dann wird zusätzlich noch eine weitere Konstante abgefragt, die es nur in Joomla 1.5.x gibt.

Allerdings erfahren wir dann nicht, welche Erweiterung bei Dir diese Probleme verursacht und können demnach auch wieder nicht mit dem Aufbau einer solchen Blacklist anfangen...
Gespeichert

Gruß mab
wolf-o
Newbie
*
Offline Offline

Beiträge: 5



« Antworten #6 am: 28-01-2009 18:19:47 »

Hi mab,

aber ist das Problem nicht, dass die <Class 'JFactory'> in Joomla 1.0.x fehlt...??

Folgendes Verhalten hat sich verändert:

Die 'if Abfrage' habe ich, wie vorgeschlagen, um 'JPATH_COMPONENT' erweitert

Code:
function Joom_CompleteBreadcrumbs($catid,$id,$func = '') {
  global $jg_usefavouritesforzip;
  if(!defined('_JEXEC') && !defined('JPATH_COMPONENT')) return;
  $mainframe = & JFactory::getApplication('site');
  $database = & Jfactory::getDBO();
  $user = & JFactory::getUser();
  $pathway = & $mainframe->getPathway();

Veränderung: negativ   Sad

=> danach die Definition der Variablen aus-kommentiert

Code:
function Joom_CompleteBreadcrumbs($catid,$id,$func = '') {
  global $jg_usefavouritesforzip;
  if(!defined('_JEXEC') && !defined('JPATH_COMPONENT')) return;
//  $mainframe = & JFactory::getApplication('site');
//  $database = & Jfactory::getDBO();
//  $user = & JFactory::getUser();
//  $pathway = & $mainframe->getPathway();

Veränderung:
  • Die Kategorie-Übersicht inkl. CSS wird korrekt geladen und dargestellt  sm_yes
  • Alle 'Special Functions' (&func=special) lassen sich aufrufen und werden korrekt dargstellt

Allerdings ist "die nächste Hürde" nun, dass...

  • der Aufruf des 'User Panels' mit folgendem Fehler quittiert wird
Code:
Fatal error: Call to a member function addItem() on a non-object in /usr/local/etc/httpd/vhtdocs/xxxxx/xxxxx/components/com_joomgallery/joomgallery.html.php on line 563

und
  • der Aufruf der 'Favourites' mit folgendem Fehler quittiert wird
Code:
Fatal error: Call to a member function addItem() on a non-object in /usr/local/etc/httpd/vhtdocs/xxxxx/xxxxx/components/com_joomgallery/joomgallery.html.php on line 563

 sm_no sm_cry sm_no

Habe die Pony_Gallery ML (testweise) parallel dazu laufen => ohne Probleme... sm_none

*hhhmmm* bin etwas unschlüssig, welchen weg ich weiter gehe(n soll) .... sm_no

Aber auf alle Fälle, Danke schon mal, für Euren Support!!! sm_smilewinkgrin

Gruß
 Roll Eyes
Gespeichert
mab
Entwickler-Team
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1.279



« Antworten #7 am: 28-01-2009 18:58:30 »

Hi wolf-o,

die neu eingefügte Abfrage mit der zusätzlichen Konstante sollte einfach sicherstellen, dass Du wirklich unter Joomla 1.0.0 unterwegs bist.

Es reicht auch nicht, nur die folgenden drei vier Zeilen auszukommentieren. Wenn, dann musst Du den kompletten Funktionsinhalt auskommentieren.

vorher:
Code
function Joom_CompleteBreadcrumbs($catid,$id,$func = '') {
 global $jg_usefavouritesforzip;
 if(!defined('_JEXEC') && !defined('JPATH_COMPONENT')) return;
 $mainframe = & JFactory::getApplication('site');
 $database = & Jfactory::getDBO();
 $user = & JFactory::getUser();
 $pathway = & $mainframe->getPathway();
 
 // Sonderfaelle zuerst
 switch($func) {
   case 'userpanel':
     $pathway->addItem(_JGS_USER_PANEL);
     break;
   case 'uploadhandler':
   case 'showupload':
     $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
     $pathway->addItem(_JGS_NEW_PICTURE);
     break;
   case 'showusercats':
     $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
     $pathway->addItem(_JGS_CATEGORIES);
     break;
   case 'newusercat':
     $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
     $pathway->addItem(_JGS_NEW_CATEGORY);
     break;
   case 'showfavourites':
     if($user->get('id') && $jg_usefavouritesforzip != 1) {
       $pathway->addItem(_JGS_FAV_MY);
     } else {
       $pathway->addItem(_JGS_ZIP_MY);
     }
     break;
   case 'createzip':
     $pathway->addItem(_JGS_ZIP_DOWNLOAD);
     break;
 }
 if($func != ''
   && $func != 'viewcategory'
   && $func != 'detail') {
   return;
 }
 
 // falls keine catid vorhanden
 if($catid == 0 || $func == 'detail') {
   if($id != 0) {
     $database->setQuery("SELECT a.id,a.imgtitle,a.catid
                          FROM #__joomgallery AS a, #__joomgallery_catg AS cc
                          WHERE a.catid = cc.cid AND a.id = $id AND cc.access <= '"
.$user->get('aid')."'");
     if(!$row = $database->loadObject()) {
       return false;
     }
     $catid = $row->catid;
   } else {
     return false;
   }
 }
 // catid ist hier auf jeden Fall gesetzt
 
 // id's und Namen aller uebergeordneten Kategorien aus der Datenbank holen
 $cat_ids = array($catid);
 $cat_names = array();
 while($catid != 0) {
   $database->setQuery("SELECT name,parent FROM #__joomgallery_catg
                        WHERE cid = '"
.$catid."' AND published = '1' AND access <= '".$user->get('aid')."'");
   if(!$cat_row = $database->loadObject()) {
     $catid = 0;
   } else {
     $catid = $cat_row->parent;
   }
   if($catid != 0) {
     array_unshift($cat_ids,$catid);
   }
   array_unshift($cat_names,$cat_row->name);
 }
 
 // Breadcrumbs mit Kategorien vervollstaendigen
 for($i = 0;$i<count($cat_names);$i++) {
   $pathway->addItem($cat_names[$i],'index.php?option=com_joomgallery&func=viewcategory&catid='.$cat_ids[$i]._JOOM_ITEMID);
 }
 
 // eventuell Bildnamen hinzufuegen
 if(isset($row->id)) {
   $pathway->addItem($row->imgtitle,'index.php?option=com_joomgallery&func=detail&id='.$row->id._JOOM_ITEMID);
 }
}
 

ersetzen durch:
Code
function Joom_CompleteBreadcrumbs($catid,$id,$func = '') {
 global $jg_usefavouritesforzip;
 if(!defined('_JEXEC') && !defined('JPATH_COMPONENT')) return;
//   $mainframe = & JFactory::getApplication('site');
//   $database = & Jfactory::getDBO();
//   $user = & JFactory::getUser();
//   $pathway = & $mainframe->getPathway();
//
//   // Sonderfaelle zuerst
//   switch($func) {
//     case 'userpanel':
//       $pathway->addItem(_JGS_USER_PANEL);
//       break;
//     case 'uploadhandler':
//     case 'showupload':
//       $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
//       $pathway->addItem(_JGS_NEW_PICTURE);
//       break;
//     case 'showusercats':
//       $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
//       $pathway->addItem(_JGS_CATEGORIES);
//       break;
//     case 'newusercat':
//       $pathway->addItem(_JGS_USER_PANEL,'index.php?option=com_joomgallery&func=userpanel'._JOOM_ITEMID);
//       $pathway->addItem(_JGS_NEW_CATEGORY);
//       break;
//     case 'showfavourites':
//       if($user->get('id') && $jg_usefavouritesforzip != 1) {
//         $pathway->addItem(_JGS_FAV_MY);
//       } else {
//         $pathway->addItem(_JGS_ZIP_MY);
//       }
//       break;
//     case 'createzip':
//       $pathway->addItem(_JGS_ZIP_DOWNLOAD);
//       break;
//   }
//   if($func != ''
//     && $func != 'viewcategory'
//     && $func != 'detail') {
//     return;
//   }
//
//   // falls keine catid vorhanden
//   if($catid == 0 || $func == 'detail') {
//     if($id != 0) {
//       $database->setQuery("SELECT a.id,a.imgtitle,a.catid
//                            FROM #__joomgallery AS a, #__joomgallery_catg AS cc
//                            WHERE a.catid = cc.cid AND a.id = $id AND cc.access <= '".$user->get('aid')."'");
//       if(!$row = $database->loadObject()) {
//         return false;
//       }
//       $catid = $row->catid;
//     } else {
//       return false;
//     }
//   }
//   // catid ist hier auf jeden Fall gesetzt
//
//   // id's und Namen aller uebergeordneten Kategorien aus der Datenbank holen
//   $cat_ids = array($catid);
//   $cat_names = array();
//   while($catid != 0) {
//     $database->setQuery("SELECT name,parent FROM #__joomgallery_catg
//                          WHERE cid = '".$catid."' AND published = '1' AND access <= '".$user->get('aid')."'");
//     if(!$cat_row = $database->loadObject()) {
//       $catid = 0;
//     } else {
//       $catid = $cat_row->parent;
//     }
//     if($catid != 0) {
//       array_unshift($cat_ids,$catid);
//     }
//     array_unshift($cat_names,$cat_row->name);
//   }
//
//   // Breadcrumbs mit Kategorien vervollstaendigen
//   for($i = 0;$i<count($cat_names);$i++) {
//     $pathway->addItem($cat_names[$i],'index.php?option=com_joomgallery&func=viewcategory&catid='.$cat_ids[$i]._JOOM_ITEMID);
//   }
//  
//   // eventuell Bildnamen hinzufuegen
//   if(isset($row->id)) {
//     $pathway->addItem($row->imgtitle,'index.php?option=com_joomgallery&func=detail&id='.$row->id._JOOM_ITEMID);
//   }
}
 

Aber schön ist das nicht.
Gespeichert

Gruß mab
wolf-o
Newbie
*
Offline Offline

Beiträge: 5



« Antworten #8 am: 28-01-2009 20:04:18 »

Hi mab!!


Aber schön ist das nicht.


Nein, nein ... schön ist das wirklich nicht ... den Code so zu "beschneiden", möchte ich nicht ... sm_no

Vermutlich muss ich in diesem Projekt einfach (erstmal) mit der PonyGalleryML klarkommen ... (obwohl mir die JG lieber wäre) Roll Eyes

...mal sehen sm_cool


Nochmals - Vielen Dank für Euren Support!! sm_yes

Gruß
 sm_smilewinkgrin

« Letzte Änderung: 28-01-2009 20:07:33 von wolf-o » Gespeichert
Hypnotoad
Entwickler-Team
Jr. Member
*****
Offline Offline

Beiträge: 225



WWW
« Antworten #9 am: 28-01-2009 20:29:24 »

Vor allem ist das ein Symptom, dass du nun beseitigt hast. Da werden sicherlich noch mehr Probleme an anderen Stellen im Galerie-Code, oder mit anderen Komponenten auftreten (z.B. GalleryTab). Die einzige richtige Lösung wäre es, die fehlerhafte Erweiterung zu finden die das verursacht.
Gespeichert

Bitte keine Support-Anfragen per PN. Einfach im Forum posten, vielleicht hat jemand anders ein ähnliches Problem, oder es bereits gelöst.

jAwards - Medallien und mehr in Joomla
Seiten: [1]
Drucken
Gehe zu:  

HOSTED BY SCHWARZKÜNSTLER ®

PROTECTED BY  ZB BLOCK  AND Project Honey Pot
Theme orange-lt created by panic

Bad Behavior has blocked 1408 access attempts in the last 7 days.

mouth