Witam,

Zabrałem się za lekką przeubkę joomli. A mianowicie logowanie do innej BD ...
i utknołem ...

Najpierw kod.
Mam 2 klasy podstawowe

w pliku A.php

  1. class mosMainFrame {
  2. /** @var database Internal database class pointer */
  3. var $_db = null;
  4. var $_config = null;
  5. var $_path = null;
  6. /** @var mosSession The current session */
  7. var $_session = null;
  8. var $_template = null;
  9. var $_userstate = null;
  10. var $_head = null;
  11. var $_custom_pathway = null;
  12. var $_isAdmin = false;
  13.  
  14.  
  15. /** Class constructor */
  16. function mosMainFrame( &$db, $option, $basePath, $isAdmin=false ) {
  17. $this->_db =& $db;
  18. ......
  19. }
  20.  
  21. function initSession() {
  22. // initailize session variables
  23. $session =& $this->_session;
  24. $session = new mosSession( $this->_db );
  25. ......
  26. }
  27.  
  28. function login( $username=null,$passwd=null, $remember=0, $userid=NULL ) {
  29. global $acl, $_VERSION;
  30. ......
  31. $session->update(); //<-- to działa i uaktualnia BD
  32. ......
  33. }
  34.  
  35. // inne funkcje
  36.  
  37.  
  38. }// koniec klast
  39.  
  40. class mosSession extends mosDBTable {
  41.  
  42. var $session_id = null;
  43. var $time = null;
  44. var $userid = null;
  45. var $usertype = null;
  46. var $username = null;
  47. var $gid = null;
  48. var $guest = null;
  49. var $_session_cookie = null;
  50.  
  51. var $rsession_id = null;
  52. var $rkategoria = null;
  53. var $userpass = null;
  54.  
  55. /**
  56. * @param database A database connector object
  57. */
  58. function mosSession( &$db ) {
  59. $this->mosDBTable( '#__session', 'session_id', $db );
  60. }
  61.  
  62. function update( $updateNulls=false ) {
  63. $ret = $this->_db->updateObject( $this->_tbl, $this, 'session_id', $updateNulls );
  64.  
  65. if( !$ret ) {
  66. $this->_error = strtolower(get_class( $this ))."::store failed
  67. " . $this->_db->stderr();
  68. return false;
  69. } else {
  70. return true;
  71. }
  72. }
  73.  
  74. // inne funkcje
  75.  
  76.  
  77. }// koniec klast


i to działa ....

rozszerzyłem to o jeszcze jedną klasę która jest rozszerzeniem klasy mosMainFrame ...
zrobiłem to dla przejrzystości kodu .... a poza tym inna DB do InterBase

W klasie tej stworzyłem kilka funkcji które obsługują inną bazę
Klas a ta wygląda tak...

w pliku B.php

Kod
             class mosMainFrame_ib extends mosMainFrame{
                
                 var $_idb                 = null; /** @var database Internal database class pointer */
                
            
                 /**
                 * Class constructor
                 */
                 function mosMainFrame_ib( &$idb, $option, $basePath, $isAdmin=false ) {
                     $this->_idb =& $idb;
                 }
            
                 function ib_login( $username=null,$passwd=null, $remember=0, $userid=NULL ) {
                 global $acl, $_VERSION, $dmk, $interbase, $session;
                 ................
                  $session->update(); // <--------------tutaj, nie dział
                 ................
                 }
            
            
                 // inne funkcje
            
             // koniec klasy


oba pliki są wpięte w index.php

Kod
   require_once( 'includes/A.php' );
   require_once( 'includes/B.php' );


Sądziłem że jak rozszerzę podstawową klasę mosMainFrame o klasę mosMainFrame_ib tu odwołanie się nie zmienia a tu nie..... Trzeba jakoś inaczej ale nie przychodzi mi do głowy jak to zrobić....

Prosze o pomoc....

Czekam.... guitar.gif i czekam ... sciana.gif ....

czy nik się na tym nie zna, czy niezbyt jasno to wytłumaczułem....
dajcie mi znać ..... blinksmiley.gif