crautcher Posted October 18, 2011 Report Share Posted October 18, 2011 (edited) в класе фейсбук написал метод:function SetAppLg($local){ global $lg; $ulg = FacebookApp :: getLgByLocale($local); if ($ulg == 'ru' || $ulg='lt') $lg = $ulg ; else $lg = 'lt' ;}класс экстендс этот , вызываю метод function ExecDefault(){ $Fb = facebook::getAuthorized() ; $facebook = new facebook; if ( $Fb['profile']) { $this -> SetAppLg ($Fb['profile']['locale']); //tut $sql = Sql::getInstance('horo'); $Fb ['profile'] ['Token'] = $facebook ->getAccessToken() ; $this -> AutoregFbUser ( $Fb ['profile']); $this -> AutoLogin ($Fb ['profile'] ); $this -> setVar ('logoutLink', $facebook->getLogoutUrl () ); } else { $this -> setVar ( 'loginLink' , $facebook-> getLoginUrl ( array ( 'canvas' => 1, 'scope' => 'email,offline_access,publish_stream,user_birthday', 'redirect_uri' => facebook::getConfig( 'appUrl' ) ) ) ); } $this -> setVar ('redirect','http://'. facebook::getConfig( "domain" ) .'/'); $this -> output ( "fbapp" );}пишет , чет за фак ? другии методы то пашутFatal error: Call to undefined method ActionFbApp::SetAppLg() in /var/www/absolux/astro/action/action.fbapp.php on line 9 Edited October 18, 2011 by crautcher Quote Link to comment Share on other sites More sharing options...
0 Быколай Posted October 18, 2011 Report Share Posted October 18, 2011 глаза сломал, не вижу строчки 9 в приведённом коде. наследование точно указали? дайте полностью под спойлерами код обоих классов на всякий случай, если это возможно. Quote Link to comment Share on other sites More sharing options...
0 crautcher Posted October 18, 2011 Author Report Share Posted October 18, 2011 (edited) глаза сломал, не вижу строчки 9 в приведённом коде. наследование точно указали? дайте полностью под спойлерами код обоих классов на всякий случай, если это возможно.для кого я писал комент "//tut" ?всё работало без метода , значит наследование верноефайл 1:<?phpclass ActionFacebook extends BasicAction {public $loginInfo=''; function add($id) { $date = date('Y-m-d'); $sql = Sql::getInstance('horo'); $sql -> run ("UPDATE `FacebookStat` SET `count` = count + 1 WHERE `id` = '" . addslashes($id) . "' AND `date` = '" . $date ."'"); if ($sql -> get_affected_rows() == 0) { $sql -> run ("INSERT INTO `FacebookStat` (`id`, `date`, `count`) VALUES ('" . addslashes($id) . "', '" . $date . "', '1')"); } }function GetBirthDate($profile){ if (empty($profile['birthday']) || is_null($profile['birthday'])) return false; $tmp = explode("/", $profile['birthday']); $birthdate =array('day' =>$tmp[1],'month' =>$tmp[0],'year' =>$tmp[2]); return $birthdate; }function AutoregFbUser ($user_info){ $sql = Sql::getInstance('horo'); $sql -> query (" SELECT * from Login where Email = '". $user_info['email'] ."' ", $rows); if ( $rows == 0 ){ $this -> RegisterUser ($user_info); $sql -> run ("update Login SET IsEmail = 1 where Email = '". $user_info['email'] ."' "); $bd = $this->GetBirthDate($user_info['profile']); $LoginInfo = $this->GetLoginInfo($user_info['email']); if (!empty($LoginInfo[0]['LoginID']) && ($LoginInfo[0]['LoginID']) && ($bd)) $sql->run("insert into HoroUserInfo (LoginID , BirthDate , TimeZone , UpdateDate) values('". $LoginInfo[0]['LoginID'] ."' , '". $bd['year'] ."-". $bd['month'] ."-". $bd['day'] ." 00:00:00' , 'Europe/Vilnius' , '". date('Y') ."-". date('m') ."-". date('d') ." ". date('H') .":". date('i') .":". date('s') ."' ) "); elseif (!empty($LoginInfo[0]['LoginID']) && ($LoginInfo[0]['LoginID']) ) $sql->run("insert into HoroUserInfo (LoginID , BirthDate , TimeZone , UpdateDate) values('". $LoginInfo[0]['LoginID'] ."' , '". date('Y') ."-". date('m')."-". date('d') ." 00:00:00' , 'Europe/Vilnius' , '". date('Y') ."-". date('m') ."-". date('d') ." ". date('H') .":". date('i') .":". date('s') ."' ) "); } $sql -> query (" SELECT * from FacebookJointing where fbEmail = '".addslashes( $user_info['email'] ) ."' ", $rows); if ( $rows == 0 ) $this->add('5'); }function RegisterUser ($user_info) { global $sid , $cfg, $sql; $post = array ('horoscope' => '', 'redirect' => '', 'Login' => $user_info['id'], 'Password' => $user_info['id'] , 'Email' => $user_info["email"] ); $errors = array(); $args = array(); $basic = Basic::make ($post, $cfg ["main"] ["id"], 0); if ($basic) { $basic -> disableSendMail(true); print($basic -> insert() ); if ($basic -> insert() ) { if (isset ($_COOKIE ['jRef'])) { $joinStat = new JoinStatistic($sql); $joinStat -> insert($basic -> LoginID, substr ($sid, -3), $_COOKIE ['jRef']); setcookie ('jRef', '', time() - 3600 * 24, '/'); } $action = new Action(); $action -> log_joins ($basic -> LoginID, substr ($sid, -3), $basic -> aLogin["PartnerID"]); } }}function GetLoginInfo($email){if (!empty($this->loginInfo)) return $this->loginInfo;$sql = Sql::getInstance ('horo'); $loginInfo = $sql -> getListFromQuery ("SELECT * FROM Login where Email ='". $email ."' limit 1"); return $loginInfo;}function AutoLogin ($fbUserInfo) { global $session,$sid; $sql = Sql::getInstance ('horo'); $LoginInfo = $this->GetLoginInfo($fbUserInfo['email']); if (! FacebookApp::getUserByKey('LoginID', $LoginInfo[0]['LoginID'] )) { $data = array ('LoginID' => $LoginInfo[0]['LoginID'] , 'fbID' => $fbUserInfo['id'], 'fbEmail' => $fbUserInfo['email'] , 'mailingList' => '1'); FacebookApp::accountJointing($data); } FacebookApp::setAccessToken($fbUserInfo['id'], $fbUserInfo['Token']); $sql->run("update FacebookJointing set mailingList= 1 WHERE LoginID = '".addslashes( $LoginInfo[0]['LoginID'] ) ."' "); $sql->run("UPDATE Login SET IsNews = 1 where LoginID='".addslashes ( $LoginInfo[0]['LoginID'] ) ."'"); $LoginInfo = $sql -> getListFromQuery ("SELECT * FROM Auth where LoginID ='". $LoginInfo[0]['LoginID'] ."' limit 1"); if ( isset ($LoginInfo [0] ['Login']) && isset ($LoginInfo [0] ['Password']) ){ $auth = new Auth ($LoginInfo[0]['Login'] , "", $LoginInfo[0]['Password'] , null); if ($auth -> access) { $sid = $session -> create ($auth -> LoginID, $LoginInfo[0]['Login'] , $auth -> CanServices); $action = new Action (); $action -> log_logins ($auth -> LoginID, substr ($sid, -3), $auth -> PartnerID, $auth -> isUniqueDayLogin , $auth -> isUniqueMonthLogin); return $sid; } else return false; }function SetAppLg($local){ global $lg; $ulg = FacebookApp :: getLgByLocale($local); die($ulg); if ($ulg == 'ru' || $ulg='lt') $lg = $ulg ; else $lg = 'lt' ;}}а файл 2 состоит пока ток из того метода Edited October 18, 2011 by crautcher Quote Link to comment Share on other sites More sharing options...
0 Быколай Posted October 18, 2011 Report Share Posted October 18, 2011 а если ActionFbApp наследник, к чему новый создаёте внутри? $facebook = new facebook; Quote Link to comment Share on other sites More sharing options...
0 crautcher Posted October 18, 2011 Author Report Share Posted October 18, 2011 а если ActionFbApp наследник, к чему новый создаёте внутри? $facebook = new facebook; это не экшн а просто фейбук , в нём функционал работи на стороне фейсбука , а этот на стороне моего серва Quote Link to comment Share on other sites More sharing options...
0 Быколай Posted October 18, 2011 Report Share Posted October 18, 2011 а __construct() у второго вашего класса-наследника (ActionFbApp, как я понимаю), есть? Quote Link to comment Share on other sites More sharing options...
0 crautcher Posted October 18, 2011 Author Report Share Posted October 18, 2011 а __construct() у второго вашего класса-наследника (ActionFbApp, как я понимаю), есть?нет , только 1 метод и всё .как всегда ложаюсь на мелочах , фигурную скобки не верно закрыл , выходит метод внутри другого, извеняюсь за потраченое время Quote Link to comment Share on other sites More sharing options...
0 Быколай Posted October 18, 2011 Report Share Posted October 18, 2011 (edited) проверяйте скобки {}. у вас вложенность функций у родительского класса похоже нарушена.ну вот, уже и сами нашли PS: значит IDE хорошая нужна, которая бы следила за этим. я eclipse пользуюсь, но он довольно громоздкий, на java. Edited October 18, 2011 by Быколай Quote Link to comment Share on other sites More sharing options...
Question
crautcher
в класе фейсбук написал метод:
класс экстендс этот , вызываю метод
пишет , чет за фак ? другии методы то пашут
Fatal error: Call to undefined method ActionFbApp::SetAppLg() in /var/www/absolux/astro/action/action.fbapp.php on line 9
Edited by crautcherLink to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.