/** * Lite Publisher * Copyright (C) 2010 - 2015 Vladimir Yushko http://litepublisher.ru/ http://litepublisher.com/ * Dual licensed under the MIT (mit.txt) * and GPL (gpl.txt) licenses. **/ function tregservicesInstall($self) { $dir = litepublisher::$paths->data . 'regservices'; @mkdir($dir, 0777); @chmod($dir, 0777); $name = basename(dirname(__FILE__)); $about = tplugins::getabout($name); $self->lock(); $css = tcssmerger::i(); $css->addstyle("/plugins/{$name}/regservices.min.css"); $self->dirname = $name; $self->widget_title = sprintf('<h4>%s</h4>', $about['widget_title']); litepublisher::$classes->add('tregservice', 'service.class.php', $name); litepublisher::$classes->add('tregserviceuser', 'service.class.php', $name); litepublisher::$classes->add('tgoogleregservice', 'google.service.php', $name); litepublisher::$classes->add('tfacebookregservice', 'facebook.service.php', $name); litepublisher::$classes->add('ttwitterregservice', 'twitter.service.php', $name); litepublisher::$classes->add('tmailruregservice', 'mailru.service.php', $name); litepublisher::$classes->add('tyandexregservice', 'yandex.service.php', $name); litepublisher::$classes->add('tvkontakteregservice', 'vkontakte.service.php', $name); litepublisher::$classes->add('todnoklassnikiservice', 'odnoklassniki.service.php', $name); litepublisher::$classes->add('toauth', 'oauth.class.php', $name); $self->add(tgoogleregservice::i()); $self->add(tfacebookregservice::i()); $self->add(ttwitterregservice::i()); $self->add(tmailruregservice::i()); $self->add(tyandexregservice::i()); $self->add(tvkontakteregservice::i()); $self->add(todnoklassnikiservice::i()); $self->unlock(); tusers::i()->deleted = tregserviceuser::i()->delete; if (dbversion) { $names = implode("', '", array_keys($self->items)); tdbmanager::i()->createtable('regservices', "id int unsigned NOT NULL default 0,\n service enum('{$names}') default 'google',\n uid varchar(22) NOT NULL default '',\n \n key `id` (`id`),\n KEY (`service`, `uid`)\n "); } litepublisher::$urlmap->addget($self->url, get_class($self)); tcommentform::i()->oncomuser = $self->oncomuser; litepublisher::$urlmap->clearcache(); }
public function adduser(array $item, $rawdata) { $users = tusers::i(); $reguser = tregserviceuser::i(); if (!empty($item['email'])) { if ($id = $users->emailexists($item['email'])) { $user = $users->getitem($id); if ($user['status'] == 'comuser') { $users->approve($id); } } elseif (litepublisher::$options->reguser) { $id = $users->add(array('email' => $item['email'], 'name' => $item['name'], 'website' => isset($item['website']) ? tcontentfilter::clean_website($item['website']) : '')); if (isset($item['uid'])) { $uid = $item['uid']; if (strlen($uid) >= 22) { $uid = basemd5($uid); } $reguser->add($id, $this->name, $uid); } } else { //registration disabled return 403; } } else { $uid = !empty($item['uid']) ? $item['uid'] : (!empty($item['website']) ? $item['website'] : ''); if ($uid) { if (strlen($uid) >= 22) { $uid = basemd5($uid); } if ($id = $reguser->find($this->name, $uid)) { //nothing } elseif (litepublisher::$options->reguser) { $id = $users->add(array('email' => '', 'name' => $item['name'], 'website' => isset($item['website']) ? tcontentfilter::clean_website($item['website']) : '')); $users->approve($id); $reguser->add($id, $this->name, $uid); } else { //registration disabled return 403; } } else { //nothing found and hasnt email or uid return 403; } } $expired = time() + 31536000; $cookie = md5uniq(); litepublisher::$options->user = $id; litepublisher::$options->updategroup(); litepublisher::$options->setcookies($cookie, $expired); if (litepublisher::$options->ingroup('admin')) { setcookie('litepubl_user_flag', 'true', $expired, litepublisher::$site->subdir . '/', false); } setcookie('litepubl_regservice', $this->name, $expired, litepublisher::$site->subdir . '/', false); $this->onadd($id, $rawdata); if (isset($this->sessdata['comuser'])) { return tcommentform::i()->processform($this->sessdata['comuser'], true); } if (!empty($_COOKIE['backurl'])) { $backurl = $_COOKIE['backurl']; } else { $user = $users->getitem($id); $backurl = tusergroups::i()->gethome($user['idgroups'][0]); } return litepublisher::$urlmap->redir($backurl); }