JSession w osobnym skrypcie
Strona 1 z 2 12 OstatniOstatni
Wyniki 1 do 10 z 14

Temat: JSession w osobnym skrypcie

  1. #1
    Przeglądacz
    Dołączył
    20-03-2018
    Wpisy
    95
    Punkty
    7

    Joomla! 3.x JSession w osobnym skrypcie

    Cześć.
    Posiadam skrypt, który ma współpracować z sesją Joomli, ale niestety nie za bardzo mi się to udaje.
    Error jaki się pojawia to: Error: Failed to start application: Failed to start application. Wykorzystuje cześć kody podanego na głównej stronie Joomli: https://docs.joomla.org/How_to_acces...xternal_script. Skopiowałem jedynie pierwszą cześć i zaczeły się schody:
    Kod PHP:
    define'_JEXEC');
    define'JPATH_BASE'realpath(dirname(__FILE__).'/../..' ));

    var_dump(JFactory::getApplication());

    require_once ( 
    JPATH_BASE'/includes/defines.php' );
    require_once ( 
    JPATH_BASE'/includes/framework.php' );
    $mainframe JFactory::getApplication('site');
    $mainframe->initialise(); 

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    921
    Punkty
    87

    Domyślny

    Trudno oceniać fragment kodu, ale to nie jest częścią przykładu
    Kod:
    var_dump(JFactory::getApplication());
    próbujesz wywołać JFactory chociaż nie wiadomo skąd. Linię framework.php , która potencjalnie dostarczy JFactory masz niżej, ewentualnie jako pierwszy wiersz powinieneś mieć
    Kod:
    use Joomla\CMS\Factory;
    spróbuj też zmienić realpath na
    Kod:
    JPath::find($this->_path['nazwa_katalogu'], $nazwa_pliku);

  4. #3
    Przeglądacz
    Dołączył
    20-03-2018
    Wpisy
    95
    Punkty
    7

    Domyślny

    Kod:
    JPath::find($this->_path['nazwa_katalogu'], $nazwa_pliku);
    Gdzie lub na co ma wskazywać ta ścieżka?

  5. #4

  6. #5
    Przeglądacz
    Dołączył
    20-03-2018
    Wpisy
    95
    Punkty
    7

    Domyślny

    Tyle to wiem, raczej chodzi mi czy to ma wskazywać jakiś plik który jest w joomli od początku czy jakiś który sam stworzyłem?

  7. #6
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    921
    Punkty
    87

    Domyślny

    plik, który stworzyłeś "nazwa_katalogu" nazwa katalogu w którym jest plik o nazwie $nazwa_pliku

  8. #7
    Przeglądacz
    Dołączył
    20-03-2018
    Wpisy
    95
    Punkty
    7

    Domyślny

    Dodałem, lecz w lekko zmienionej wersji i strona się normalnie uruchamia, lecz kiedy próbuje wejść na administratora to wywala, że nie może znaleźć szablonu. Kiedy nic nie podam w getApplication() to wówczas wszędzie dostaję Failed to start application.
    Kod PHP:
    define'_JEXEC');
    //define( 'JPATH_BASE', realpath((__FILE__).'/../..' ));
    define(JPath::find(JUri::base().'includes''errorHandler.php') ,'');

    require_once ( 
    JPATH_BASE'/includes/defines.php' );
    require_once ( 
    JPATH_BASE'/includes/framework.php' );
    $mainframe JFactory::getApplication('site');
    $mainframe->initialise(); 

  9. #8
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    921
    Punkty
    87

    Domyślny

    a próbowałeś użyć
    Kod:
    use Joomla\CMS\Factory;
    defined('_JEXEC') or die;
    tak naprawdę to jest trochę jak leczenie przez telefon. Trzeba widzieć całą konstrukcje komponentu.

  10. #9
    Przeglądacz
    Dołączył
    20-03-2018
    Wpisy
    95
    Punkty
    7

    Domyślny

    To nie jest komponent, tylko plik wrzucony do katalogu includes, którego zadaniem jest wykorzystać errorHanlder do znajdowania błędów w joomli i zapisania ich do bazy. Ja ze swojego komponentu, tego gdzie jest kalendarz, mam przycisk, który po sesji ma aktywować ten errorHandler. Wówczas podczas przemieszczania się po joomli zbiera in błędy. Tym samym przyciskiem ma być możliwość wyłączenia tej funkcjonalności.
    Niestety zadeklarowanie Joomlowskiej sesji uniemożliwia później wejście do modułu (Rozszerzenia->moduły->jakikolwiek moduł), klikam taki moduł i dostaje, że nie mam uprawnień, nawet jako admin.
    Po usunięciu Joomlowskiej sesji wszystko wraca do normy.

    Tu jest cały kod, ale nie wiem czy on ci coś da:
    Kod PHP:
    <?php
    /**
     * Error handle and save to database
     */
     
    use Joomla\CMS\Factory;
    defined('_JEXEC') or die;
    //define( 'JPATH_BASE', realpath((__FILE__).'/../..' ));
    define(JPath::find(JUri::base().'includes''errorHandler.php') ,'');

    require_once ( 
    JPATH_BASE'/includes/defines.php' );
    require_once ( 
    JPATH_BASE'/includes/framework.php' );
    $mainframe JFactory::getApplication('site');
    $mainframe->initialise();
    class 
    errorHandler {

        private 
    $phpErrorInfo = [
            
    1       => 'E_ERROR',
            
    2       => 'E_WARNING',
            
    4       => 'E_PARSE',
            
    8       => 'E_NOTICE',
            
    16      => 'E_CORE_ERROR',
            
    32      => 'E_CORE_WARNING',
            
    64      => 'E_COMPILE_ERROR',
            
    128     => 'E_COMPILE_WARNING',
            
    256     => 'E_USER_ERROR',
            
    512     => 'E_USER_WARNING',
            
    1024    => 'E_USER_NOTICE',
            
    2048    => 'E_STRICT',
            
    4096    => 'E_RECOVERABLE_ERROR',
            
    8192    => 'E_DEPRECATED',
            
    16384   => 'E_USER_DEPRECATED',
            
    32767   => 'E_ALL'
        
    ];

        public function 
    __construct($table)
        {
            
    session_start();
            
    $this->table $table;
        }

        
    /**
         * Find error name
         */
        
    private function getErrorName($name) {
            return isset(
    $this->phpErrorInfo[$name]) ? $this->phpErrorInfo[$name] : 'none';
        }
        
    /**
         * create class for joomla object db
         */
        
    private function createClass($logRow) {
            
    $error = new stdClass();
            foreach (
    $logRow as $i => $log) {
                if (
    $i === 'err_str') {
                    
    $error->$i $this->getErrorName($log);
                } else {
                    
    $error->$i $log
                }
            }
            return 
    $error;
        }
        
    /**
         * Add new log to db
         */
        
    public function add($logRow) {
            
    $errorClass $this->createClass($logRow);
            
    JFactory::getDbo()->insertObject($this->table$errorClass);
        }
    }

    function 
    errorHandlerPhp($errno$content$errfile$errline) {
        
    $errHandler = new errorHandler('log_php');
        
    $errHandler->add([
            
    'err_num'     => $errno,
            
    'err_str'     => $errno,
            
    'content'     => $content,
            
    'file'         => $errfile,
            
    'line'         => $errline,
            
    'date_time' => date('Y-m-d H:i:s'),
            
    'published' => 1,
        ]);
    }

    /**
     * INIT
     */

     /*TA CZEŚĆ POWODUJE BŁĄD Z LINKAMI DO MODUŁÓW*/

    $session JFactory::getSession();
    if (
    $session->get('handler') === true) {
        
    set_error_handler("errorHandlerPhp");
    }

  11. #10
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    921
    Punkty
    87

    Domyślny

    Który to jest Twój komponent Joomla ? Proponowałbym zacząć od czegoś prostszego, aby dobrze zrozumieć MVC i programowanie z Joomla https://docs.joomla.org/Portalevelopers
    Nie napiszę za Ciebie kodu, mogę tylko podpowiedzieć, ale musimy rozumieć się na pewnym wspólnym poziomie https://docs.joomla.org/Portal:Devel...ing_Started.21

Strona 1 z 2 12 OstatniOstatni

Podobne tematy

  1. Wyświetlanie nazwy użytkownika w skrypcie.
    przez Kyosti_Paavali na forum Różne
    Odpowiedzi: 0
    Ostatni post/autor: 12-07-2011, 12:12
  2. Konflikt w skrypcie pomiędzy Yoo toppanel i Huru Helpdesk? - Proszę o pomoc!
    przez amoooc na forum Rozszerzenia - problemy z obsługą, zarządzaniem
    Odpowiedzi: 0
    Ostatni post/autor: 09-09-2010, 22:20
  3. Nazwa usera we własnym skrypcie php (wpinacz)
    przez Looker na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 0
    Ostatni post/autor: 14-04-2009, 19:55
  4. Czy to strona oparta na skrypcie Joomla
    przez bartekk na forum Różne
    Odpowiedzi: 8
    Ostatni post/autor: 13-03-2009, 12:56
  5. Letterman błąd w skrypcie.
    przez xartekx na forum Administracja składnikami
    Odpowiedzi: 2
    Ostatni post/autor: 28-06-2007, 14:44

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •