本文整理汇总了PHP中Lib::cookie方法的典型用法代码示例。如果您正苦于以下问题:PHP Lib::cookie方法的具体用法?PHP Lib::cookie怎么用?PHP Lib::cookie使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lib
的用法示例。
在下文中一共展示了Lib::cookie方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: main
public function main()
{
$this->meta[] = array('name' => 'google-signin-client_id', 'content' => Config::$googleClientId . '.apps.googleusercontent.com');
$cookie = Lib::cookie();
$identifier = $cookie->get(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
$this->set('user', $user);
$this->set('isLoggedIn', $isLoggedIn);
$this->js[] = $isLoggedIn ? 'inbox' : 'login';
if ($isLoggedIn) {
array_shift($this->js);
$id = Req::get('id');
if (empty($id)) {
Lib::redirect('index');
}
$report = Lib::table('report');
if (!$report->load($id)) {
$this->template = 'no-report';
return;
}
$report->init();
$assignees = Lib::model('user')->getProjectAssignees($report->project_id);
$projectTable = Lib::table('project');
$projectTable->load($report->project_id);
$this->set('report', $report);
$this->set('assignees', $assignees);
$this->set('project', $projectTable);
}
}
示例2: saveAssignees
public function saveAssignees()
{
$keys = array('project', 'setting');
if (!Req::haspost($keys)) {
return $this->fail('Insufficient data.');
}
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn || $user->role != USER_ROLE_ADMIN) {
return $this->fail('You are not authorized.');
}
$project = Req::post('project');
$setting = json_decode(Req::post('setting'));
$projectTable = Lib::table('project');
if ($project !== 'all' && $project !== '-1' && !$projectTable->load(array('name' => $project))) {
return $this->fail('No such project.');
}
if ($project !== 'all') {
$projectAssignee = Lib::table('project_assignee');
$projectAssignee->load(array('user_id' => $setting->id, 'project_id' => $projectTable->id));
if ($setting->value) {
$projectAssignee->store();
} else {
$projectAssignee->delete();
}
}
return $this->success();
}
示例3: populateSlackUsers
public function populateSlackUsers()
{
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn || $user->role != USER_ROLE_ADMIN) {
echo 'You are not authorized';
exit;
}
$helper = Lib::helper('slack');
$users = $helper->getUsers();
if ($users === false) {
echo $helper->error;
exit;
}
foreach ($users as $user) {
$table = Lib::table('slackuser');
$table->load(array('slack_id' => $user->id));
$table->team_id = $user->team_id;
$table->name = $user->name;
$table->email = $user->email;
$table->store();
}
echo 'Imported ' . count($users) . ' users.';
exit;
}
示例4: main
public function main()
{
$filterProject = Req::get('project');
if (empty($filterProject)) {
$this->template = 'empty-project';
return;
}
$projectTable = Lib::table('project');
if (!$projectTable->load(array('name' => $filterProject))) {
$this->set('name', $filterProject);
$this->template = 'new-project';
return;
}
$this->meta[] = array('name' => 'google-signin-client_id', 'content' => Config::$googleClientId . '.apps.googleusercontent.com');
$cookie = Lib::cookie();
$identifier = $cookie->get(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
$this->set('user', $user);
$this->set('filterProject', $filterProject);
$this->set('filterSettingsProject', $filterProject);
$this->set('isLoggedIn', $isLoggedIn);
if (!$isLoggedIn) {
$this->js[] = 'login';
}
if ($isLoggedIn) {
$this->js[] = 'inbox';
$this->js[] = 'settings';
array_shift($this->js);
$userModel = Lib::model('user');
$assignees = $userModel->getProjectAssignees($projectTable->id);
$users = $userModel->getUsers();
$filterState = $cookie->get('filter-state', 'pending');
$filterAssignee = $cookie->get('filter-assignee', empty($assignees[$user->id]) ? 'all' : $user->id);
$filterSort = $cookie->get('filter-sort', 'asc');
$reportModel = Lib::model('report');
$reports = $reportModel->getItems(array('state' => constant('STATE_' . strtoupper($filterState)), 'assignee_id' => $filterAssignee, 'order' => 'date', 'direction' => $filterSort, 'project_id' => $projectTable->id));
$userSettingsTable = Lib::table('user_settings');
if (!$userSettingsTable->load(array('user_id' => $user->id, 'project_id' => $projectTable->id))) {
$userSettingsTable->load(array('user_id' => $user->id, 'project_id' => 0));
}
$userSettings = $userSettingsTable->getData();
if ($userSettings['color'] !== 'cyan' && $userSettings['color'] !== 'custom') {
$this->css[] = 'theme-' . str_replace(' ', '', $userSettings['color']);
}
$categories = Lib::model('category')->getCategories(['projectid' => $projectTable->id]);
$this->set('filterState', $filterState);
$this->set('filterAssignee', $filterAssignee);
$this->set('filterSort', $filterSort);
$this->set('reports', $reports);
$this->set('assignees', $assignees);
$this->set('userSettings', $userSettings);
$this->set('users', $users);
$this->set('projectTable', $projectTable);
$this->set('categories', $categories);
}
}
示例5: env
public static function env()
{
if (Req::hasget('development')) {
Lib::cookie()->set('development', Req::get('development'));
}
if (Lib::cookie()->get('development')) {
return 'development';
}
return self::$env;
}
示例6: logout
public function logout()
{
$cookie = Lib::cookie();
$key = hash('sha256', Config::$adminkey);
$identifier = $cookie->get($key);
if ($this->load(array('identifier' => $identifier))) {
$this->identifier = '';
$this->store();
}
Lib::cookie()->delete($key);
return true;
}
示例7: main
public function main()
{
$key = Lib::hash(Config::$adminkey);
$cookie = Lib::cookie();
$identifier = $cookie->get($key);
$admin = Lib::table('admin');
$logged = !empty($identifier) && $admin->load(array('identifier' => $identifier));
$type = Req::get('type');
$ref = Req::get('ref');
if (!empty($ref)) {
if ($logged) {
$segments = explode('/', base64_decode($ref));
$base = array_shift($segments);
$type = array_shift($segments);
$subtype = array_shift($segments);
$options = array();
if (!empty($type)) {
$options['type'] = $type;
}
if (!empty($subtype)) {
$options['subtype'] = $subtype;
}
Lib::redirect($base, $options);
return;
}
return $this->form();
}
if (!$logged) {
if (empty($type)) {
return $this->form();
}
$options = array('view' => 'admin');
if (!empty($type)) {
$options['type'] = $type;
}
$subtype = Req::get('subtype');
if (!empty($subtype)) {
$options['subtype'] = $subtype;
}
$ref = Lib::url('admin', $options);
return Lib::redirect('admin', array('view' => 'admin', 'ref' => base64_encode($ref)));
}
if (empty($type)) {
$type = 'index';
}
if (!is_callable(array($this, $type))) {
return Lib::redirect('error');
}
return $this->{$type}();
}
示例8: saveSettings
public function saveSettings()
{
$keys = array('project', 'setting');
if (!Req::haspost($keys)) {
return $this->fail('Insufficient data.');
}
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn) {
return $this->fail('You are not authorized.');
}
$project = Req::post('project');
$setting = json_decode(Req::post('setting'));
$projectTable = Lib::table('project');
if ($project !== 'all' && $project !== '-1' && !$projectTable->load(array('name' => $project))) {
return $this->fail('No such project.');
}
if ($project !== 'all') {
$userSettings = Lib::table('user_settings');
if ($project === '-1') {
$projectTable->id = '-1';
}
if (!$userSettings->load(array('user_id' => $user->id, 'project_id' => $projectTable->id))) {
$userSettings->load(array('user_id' => $user->id, 'project_id' => 0));
$userSettings->isNew = true;
$userSettings->id = 0;
$userSettings->project_id = $projectTable->id;
}
$data = $userSettings->getData();
$data[$setting->name] = $setting->value;
$userSettings->data = $data;
$userSettings->store();
} else {
$settings = Lib::model('user_settings')->getSettings(array('user_id' => $user->id));
$userSettings = Lib::table('user_settings');
$userSettings->load(array('user_id' => $user->id, 'project_id' => 0));
$data = $userSettings->getData();
$data[$setting->name] = $setting->value;
$userSettings->data = $data;
$userSettings->store();
foreach ($settings as $row) {
$data = $row->getData();
$data[$setting->name] = $setting->value;
$row->data = $data;
$row->store();
}
}
return $this->success();
}
示例9: update
public function update()
{
if (!Req::haspost(['id', 'name'])) {
return $this->fail('Insufficient data.');
}
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(['identifier' => $identifier]);
if (!$isLoggedIn || $user->role != USER_ROLE_ADMIN) {
return $this->fail('You are not authorized.');
}
$id = Req::post('id');
$name = Req::post('name');
$table = Lib::table('category');
if (!$table->load($id)) {
return $this->false('Invalid data.');
}
$table->name = $name;
$table->store();
return $this->success();
}
示例10: css
public function css()
{
header('Content-Type: text/css');
$script = Req::get('script');
switch ($script) {
case 'theme-custom':
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn) {
echo '';
return;
}
$project = Req::get('name');
$projectTable = Lib::table('project');
if ($project !== 'all' && $project !== '-1' && !$projectTable->load(array('name' => $project))) {
echo '';
return;
}
$userSettingsTable = Lib::table('user_settings');
if ($project === '-1') {
$projectTable->id = '-1';
}
if (!$userSettingsTable->load(array('user_id' => $user->id, 'project_id' => $project === 'all' ? 0 : $projectTable->id)) && $project !== 'all') {
$userSettingsTable->load(array('user_id' => $user->id, 'project_id' => 0));
}
$userSettings = $userSettingsTable->getData();
$basecss = $this->output('css/theme-custom');
$keys = array(50, 100, 200, 300, 400, 500, 600, 700, 800, 900);
$search = array();
$replace = array();
foreach ($keys as $key) {
$search[] = '"@@color' . $key . '"';
$replace[] = '#' . $userSettings['color' . $key];
}
$css = str_replace($search, $replace, $basecss);
echo $css;
break;
}
}
示例11: assign
public function assign()
{
$keys = array('id', 'assigneeid');
if (!Req::haspost($keys)) {
return $this->fail('Insufficient data.');
}
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn) {
return $this->fail('You are not authorized.');
}
$post = Req::post($keys);
$reportTable = Lib::table('report');
if (!$reportTable->load($post['id'])) {
return $this->fail('No such report.');
}
$reportTable->assignee_id = $post['assigneeid'];
$reportTable->store();
if (!empty($post['assigneeid']) && $post['assigneeid'] != $user->id) {
$projectTable = Lib::table('project');
$projectTable->load($reportTable->project_id);
$targetUser = Lib::table('user');
$targetUser->load($post['assigneeid']);
$targetUserSettings = $targetUser->getSettings($projectTable)->getData();
if ($targetUserSettings['assign']) {
$notificationData = ['to' => $targetUser->email, 'text' => $user->nick . ' assigned you a report ticket.', 'username' => 'Project Report Assignment', 'icon_emoji' => ':gift:', 'attachments' => [['fallback' => '<' . $reportTable->getLink() . '|Report ticket ID ' . $reportTable->id . '>.', 'color' => '#00bcd4', 'title' => $projectTable->name, 'title_link' => $reportTable->getLink(), 'text' => $reportTable->content]]];
Lib::load('helper/notification');
NotificationHelper::send($notificationData);
// $slackMessage = Lib::helper('slack')->newMessage();
// $slackMessage->to($post['assigneeid']);
// $slackMessage->message($user->nick . ' assigned you a report ticket.');
// $slackMessage->username = 'Project Report Assignment';
// $slackMessage->icon_emoji = ':gift:';
// $attachment = $slackMessage->newAttachment();
// $attachment->fallback = '<' . $reportTable->getLink() . '|Report ticket ID ' . $reportTable->id . '>.';
// $attachment->color = '#00bcd4';
// $attachment->title = $projectTable->name;
// $attachment->title_link = $reportTable->getLink();
// $attachment->text = $reportTable->content;
// $slackMessage->send();
}
}
return $this->success();
}
示例12: sync
public function sync()
{
if (!Req::haspost('reports', 'ids')) {
return $this->fail('Insufficient data.');
}
$identifier = Lib::cookie(Lib::hash(Config::$userkey));
$user = Lib::table('user');
$isLoggedIn = !empty($identifier) && $user->load(array('identifier' => $identifier));
if (!$isLoggedIn) {
return $this->fail('You are not authorized.');
}
$reports = json_decode(Req::post('reports'));
$ids = Req::post('ids');
$updated = array();
$commentModel = Lib::model('comment');
$comments = $commentModel->getComments(array('report_id' => $ids));
$commentsByReportId = array();
foreach ($comments as $comment) {
$commentsByReportId[$comment->report_id][$comment->id] = $comment;
}
foreach ($reports as $id => $report) {
$newTotalComments = empty($commentsByReportId[$id]) ? 0 : count($commentsByReportId[$id]);
if ($report->totalComments == $newTotalComments) {
continue;
}
$updated[$id] = array('totalComments' => $newTotalComments, 'comments' => array());
if (!$report->commentsLoaded) {
continue;
}
$view = Lib::view('embed');
foreach ($commentsByReportId[$id] as $commentid => $newComment) {
if (in_array($commentid, $report->comments)) {
$updated[$id]['comments'][$commentid] = false;
continue;
}
$updated[$id]['comments'][$commentid] = $view->loadTemplate('comment-item', array('comment' => $comment, 'user' => $user));
}
}
return $this->success($updated);
}