Mam instalację Joomla 1.6, która działa na dwóch bazach danych: bazie danych joomla i bazie danych specyficznej dla domeny, obie na tym samym serwerze MySQL. Niektóre podmioty w specyficznej dla domeny bazie danych zachowują swoje linki własności, tj. przechowują identyfikator użytkownika Joomla, który je utworzył. Niektóre linki są niespójne i wskazują na nieistniejącego użytkownika Joomla, jest to normalne z punktu widzenia modelu domeny. Problem polega na tym, że próbuję uzyskać nazwę użytkownika, która się wyświetla
JUser::_load:Unable to load user with id 1
Ponieważ takie linki są w porządku, muszę pominąć te wiadomości. Dokładny kod, który pobiera nazwę użytkownika, jest następujący:
$user_id = $ticket->getUserId();
$user =& JFactory::getUser($user_id);
Zawijanie tego kodu w ob_start() ... ob_end_clean()
nie pomaga. Oczywiście mógłbym to zrobić, hakując wnętrze Joomla, ale czy jest jakieś czystsze rozwiązanie? Jestem nowy w Joomla, więc może jest jakaś opcja w panelu administratora, aby ukryć te wiadomości?
AKTUALIZACJA: Ustawienie display_errors=>off, html_errors=>off, display_startup_errors=>off nie pomaga. Używanie tłumienia błędów PHP z @ jako $user =@ JFactory::getUser($user_id)
też nie pomaga.
2 odpowiedzi
Dlaczego po prostu nie sprawdzisz wstępnie, czy użytkownik istnieje, a następnie uruchomisz swój kod:
$table = JUser::getTable();
$user_id = intval( $ticket->getUserId() );
if($table->load( $user_id ))
{
$user =& JFactory::getUser($user_id);
// now you are sure user exists
} else {
// user doesn't exists
}
Możesz wyłączyć wyświetlanie komunikatu o błędzie w konfiguracji:
- Na serwerze kart ustaw Raportowanie błędów na brak.
- (Może także:) W systemie kart ustaw System debugowania na Nie.
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.