public function notifyAction() { $id = 1; $settings = R::load('settings', $id); $time_before = c::now()->modify('+' . $settings->time_before)->toDateString(); $transport = \Swift_SmtpTransport::newInstance($settings->mail_host, $settings->mail_port)->setUsername($settings->mail_username)->setPassword($settings->mail_password); $mailer = \Swift_Mailer::newInstance($transport); $client = new \Services_Twilio($settings->twilio_sid, $settings->twilio_token); $recepients = R::findAll('recepients'); $events = R::find("events", "is_enabled = 1 AND date = '{$time_before}'"); foreach ($events as $event) { foreach ($recepients as $recepient) { $subject = preg_replace(array('/{title}/', '/{date}/'), array($event->title, $event->date), $settings->subject); $end_date = c::parse($event->date)->modify('+' . $event->days . ' days')->toDateString(); $body_patterns = array('/{name}/', '/{title}/', '/{start_date}/', '/<!(\\w+) ({\\w+})>/'); $body_replacements = array($settings->name, $event->title, $event->date, "\$1 {$end_date}"); if ($event->days == 1) { $body_replacements[3] = ''; } $body = preg_replace($body_patterns, $body_replacements, $settings->msg_template); if ($recepient->email && $settings->mail_username && $settings->mail_password) { $message = \Swift_Message::newInstance()->setSubject($subject)->setBody($body)->setFrom(array($settings->email => $settings->name))->setTo(array($recepient->email => $recepient->name)); try { $response = $mailer->send($message); } catch (\Exception $e) { //todo: log error } } else { if ($recepient->phone_number && $settings->twilio_sid && $settings->twilio_token && $settings->twilio_phonenumber) { $message = $client->account->messages->sendMessage($settings->twilio_phonenumber, $recepient->phone_number, $body); } } } } }
public function getLessons() { $lessons = R::findAll('lesson'); return array_map(function ($lesson) { return $lesson->export(); }, $lessons); }
public function admin(Request $request, Response $response, array $args) { $this->logger->info("Admin Strategies page action dispatched"); $strategies = R::findAll('strategies'); $this->view->render($response, 'strategies.twig', ['strategies' => $strategies]); return $response; }
public function dispatch(Request $request, Response $response, array $args) { $this->logger->info("Users page action dispatched"); $data = []; $users = R::findAll('users'); $this->view->render($response, 'users.twig', ['users' => $users]); return $response; }
public function getOptions() { $sets = []; foreach (R::findAll('skemaset') as $setBean) { $sets[$setBean->getID()] = $setBean->name; } return $sets; }
public static function getGroupsFromPerm($module, $component) { $groups = []; $result = R::findAll('perm', ' module = ? AND component = ?', [$module, $component]); foreach ($result as $permBean) { $groups[] = new Group($permBean->groupName); } return $groups; }
private function getAuthorsCleaned() { $users = R::findAll('user', 'is_active = 1'); $data = []; foreach ($users as $key => $user) { $this->unsetProperties($user); $data[] = $user->export(); } return $data; }
public function getPosts($request, $response, $args) { $posts = R::findAll('post', 'is_published = 1'); $data = []; foreach ($posts as $post) { $data[] = $post->export(); } $this->apiJson->setSuccess(); $this->apiJson->addData($data); return $this->jsonResponse($response); }
/** * @param string $tableName * @param callable $nameClosure function ($bean) {} * @param string $valueField The field name that used to be value. The default field is "id". */ public function __construct($tableName, callable $nameClosure = null, $valueField = "id") { $beans = R::findAll($tableName); $options = []; foreach ($beans as $bean) { if ($nameClosure != null) { $options[$bean->{$valueField}] = $nameClosure($bean); } else { $options[$bean->{$valueField}] = $bean->name; } } parent::__construct($tableName, $options); }
public function getAssetsForSchool($school_id, array $filters = []) { $sql = [' school_id = ? ']; $bindings = [(int) $school_id]; if (isset($filters['itemcategory_id'])) { $sql[] = ' itemcategory_id = ? '; $bindings[] = (int) $filters['itemcategory_id']; } if (isset($filters['lab_id'])) { $sql[] = ' lab_id = ? '; $bindings[] = (int) $filters['lab_id']; } $assets = R::findAll('schoolasset', implode(' AND ', $sql), $bindings); return array_values(array_map([$this, 'exportSchoolAsset'], $assets)); }
/** * This is the main function of the class * @return void */ function indexAction() { $this->checkUser(); $includer = new Includer(); $components = $includer->getComponents(); $components_list = array($components['jquery'], $components['trumbowyg'], $components['components-font-awesome'], $components['fonts'], $components['livereload'], $components['dashboard']); //posts $posts = R::findAll('post'); $this->set('posts', $posts); $this->set('components', $components_list); $user = $this->getSession()->get('user'); // $this->pp($user, true); $this->set('msg', '<h3>Hi ' . $user->nick . '!</h3>'); $this->set('logo', array('src' => '//static.pixeledchimp.me/img/mush.png', 'alt' => 'Mush')); $this->render('admin/dashboard.html.twig'); }
public function handle(Args $args, IO $io, Command $command) { $table = new Table(); $table->setHeaderRow(array('Name', 'Description')); $output = new ConsoleOutput(); $style = new OutputFormatterStyle('white', 'black', array('bold')); if ($args->getArgument('package') == '') { $output->writeln(Cpm\message::USAGE); exit; } $limit = $args->getOption('limit'); $limit_str = $limit ? 'limit ' . $limit : ''; $q = $args->getArgument('package'); $datas = R::findAll('repo', ' name LIKE ? order by download_monthly desc,favers desc,download_total desc' . $limit_str, ['%' . $q . '%']); foreach ($datas as $data) { $output->getFormatter()->setStyle('bold', $style); // $output->writeln('<bold>'.$data->name.'</>'.' '.$data->description); // $output->writeln($data->keywords); $table->addRow(array("(" . $data->favers . ")" . $data->name, $data->description)); } $table->render($io); return 0; }
public static function all() { $beans = R::findAll('publisher', ' order by name '); $publishers = []; foreach ($beans as $bean) { $publishers[] = new Publisher($bean->name, $bean); } return $publishers; }
/** * @param User $user * @param int $pageNumber * @param bool|false $showAll * @return Post[] */ public static function userPosts(User $user, $pageNumber = 1, $showAll = false) { $beans = R::findAll('blog', ' where user_id = :user_id and ( true = :show_all or date(published_on) >= now() ) order by created limit :offset, :count', ['user_id' => $user->bean()->getID(), 'offset' => App::pageOffset($pageNumber), 'count' => App::$pagingSize, 'show_all' => $showAll]); $posts = []; foreach ($beans as $bean) { $posts[] = new Post($bean->name, $bean); } return $posts; }
} $app->response->setBody($jsonResponse->asJson()); }); $app->get('/autoactions', function () use($app, $jsonResponse) { if (validateToken()) { $actions = R::findAll('autoaction'); $jsonResponse->addBeans($actions); } $app->response->setBody($jsonResponse->asJson()); }); $app->post('/autoactions/remove', function () use($app, $jsonResponse) { $data = json_decode($app->environment['slim.input']); if (validateToken(true)) { $autoAction = R::load('autoaction', $data->actionId); R::trash($autoAction); $actions = R::findAll('autoaction'); $jsonResponse->addBeans($actions); $jsonResponse->addAlert('success', 'Automatic action removed.'); } $app->response->setBody($jsonResponse->asJson()); }); // Toggle the expand/collapse state of a lane for the current user. $app->post('/lanes/:laneId/toggle', function ($laneId) use($app, $jsonResponse) { if (validateToken()) { $user = getUser(); $lane = R::load('lane', $laneId); $collapsed = R::findOne('collapsed', ' user_id = ? AND lane_id = ? ', [$user->id, $laneId]); if (null != $collapsed) { R::trash($collapsed); $jsonResponse->message = 'Expanded lane ' . $lane->name; } else {
/** * @param string $sql * @param array $binding * * @return BaseModel[]|Collection */ public static function findAll($sql = null, $binding = []) { $model = new static(); $result = R::findAll($model->_table, $sql, $binding); $collection = new Collection(); foreach ($result as $key => $bean) { $innerModel = new static(); $innerModel->_bean = $bean; $collection->set($key, $innerModel); } return $collection; }
/** * @return array */ public function all() { return new IteratorResult(R::findAll($this->table), 'redbean'); }
public function recommendations(Request $request, Response $response, array $args) { $data = []; //TODO: get the most recent recommendations. this could show the results too. // Limit to 20. // Recommendation: [trade, instrument, side, entry, stopLoss, stopLossPips, rr, gran, expiry] $recommendations = R::findAll('recommendations', ' ORDER BY expiry DESC LIMIT 20'); foreach ($recommendations as $recommendation) { $strategy = $recommendation->fetchAs('strategies')->strategy; $recommendation->signal = $strategy->signal; } $data['recommendations'] = $recommendations; $this->view->render($response, 'recommendations.twig', $data); return $response; }
public static function users($pageNumber = 1) { $beans = R::findAll('user', ' order by email limit :offset, :count', ['offset' => App::pageOffset($pageNumber), 'count' => App::$pagingSize]); $users = []; foreach ($beans as $bean) { $users[] = new User($bean->email, $bean); } return $users; }
/** * @return array */ protected static function getCurrenciesFromDb() { $data = RedBean::findAll('currency'); $result = []; foreach ($data as $currency) { $result[$currency->code] = $currency->name; } return $result; }
public static function getUserFiles() { $id = App::user()->id; $beans = R::findAll('file', ' user_id = :userId ', ['userId' => $id]); $files = []; foreach ($beans as $bean) { $files[] = !empty($bean->classType) ? new $bean->classType($bean) : new File($bean); } return $files; }
public function history() { //TODO: paging $beans = R::findAll('page', ' order by created '); $pages = []; foreach ($beans as $bean) { $pages[] = new Page($bean->name, $bean); } return $pages; }
function addUserToBoard($boardId, $user) { if ($user->isAdmin) { $boards = R::findAll('board'); // DO NOT use getBoards here - it sanitizes the users which causes problems. foreach ($boards as $board) { $board->sharedUser[] = $user; R::store($board); } } else { $board = R::load('board', $boardId); if ($board->id) { $board->sharedUser[] = $user; R::store($board); } } }
public function getBranches() { return array_map(function ($branch) { return $branch->export(); }, R::findAll('branch', 'ORDER BY name ASC')); }
/** * @param $userId * @param int $pageNumber * * @return Gallery[] */ public static function galleries($userId, $pageNumber = 1) { $beans = R::findAll('gallery', ' user_id = :userId order by name limit :offset, :count', ['userId' => $userId, 'offset' => App::pageOffset($pageNumber), 'count' => App::$pagingSize]); $galleries = []; foreach ($beans as $bean) { $galleries[] = new Gallery($bean->id, $bean); } return $galleries; }
<?php include 'vendor/autoload.php'; use RedBeanPHP\R; use Symfony\Component\Console\Formatter\OutputFormatterStyle; use Symfony\Component\Console\Output\ConsoleOutput; R::setup('sqlite:db/ppm.db'); $output = new ConsoleOutput(); $style = new OutputFormatterStyle('white', 'black', array('bold')); if (!isset($argv[1])) { $output->writeln(Cpm\message::USAGE); exit; } $q = $argv[1]; $datas = R::findAll('repo', ' name LIKE ? order by download_total desc', ['%' . $q . '%']); $a = array(); foreach ($datas as $data) { $output->getFormatter()->setStyle('bold', $style); $output->writeln('<bold>' . $data->name . '</bold>' . ' ' . $data->description); $output->writeln($data->keywords); }
use Enpowi\App; use Enpowi\Users\User; use Enpowi\Modules\Module; use RedBeanPHP\R; Module::is(); switch (App::param('action')) { case 'delete': foreach (App::param('emails') as $email) { (new User($email))->remove(); } echo 1; break; case 'impersonate': $user = new User(App::param('impersonateUser')); echo App::get()->authentication->impersonate($user) ? 1 : -1; break; case 'impersonateAnonymous': App::get()->authentication->impersonateAnonymous(); echo 1; break; case 'find': $beans = R::findAll('user', 'email like :like limit 5', ['like' => '%' . App::param('query') . '%']); $users = []; foreach ($beans as $bean) { $users[] = $bean->email; } echo json_encode($users); break; default: echo 0; }
public static function historyComplete() { $recordBeans = R::findAll('record', ' order by `out` '); $records = []; foreach ($recordBeans as $bean) { $records[] = (new Record($bean->number, $bean))->bindPublisher(); } return $records; }
public function replace() { $user = App::user(); $existingBeans = R::findAll('territory', ' number = :number ', ['number' => $this->number]); foreach ($existingBeans as $bean) { $copy = R::dispense('territoryedit'); $copy->geoJson = $bean->geoJson; $copy->name = $bean->name; $copy->number = $bean->number; $copy->locality = $bean->locality; $copy->congregation = $bean->congregation; $copy->created = $bean->created; $copy->createdBy = $bean->createdBy; $copy->archived = time(); $copy->archivedBy = $user->id; R::store($copy); R::trash($bean); } $bean = R::dispense('territory'); $bean->geoJson = $this->geoJson; $bean->name = $this->name; $bean->number = $this->number; $bean->locality = $this->locality; $bean->congregation = $this->congregation; $bean->created = time(); $bean->createdBy = $user->id; R::store($bean); $this->_bean = $bean; return $this; }
public function editRota(Request $request, Response $response, array $args) { $id = $this->authenticator->getIdentity(); if (strtolower($id['name']) != 'admin') { $this->flash->addMessage('flash', 'Access Denied'); return $response->withRedirect($this->router->pathFor('homepage')); } $name = $args['name']; if (empty($name)) { $this->flash->addMessage('flash', 'No rota specified'); return $response->withRedirect($this->router->pathFor('rotas')); } if ($name != 'new') { $rota = R::findOrCreate('rotas', ['name' => $name]); } else { $rota = R::dispense('rotas'); } if ($request->isPost()) { $data = $request->getParams(); //$username = $request->getParam('username'); $rota->import($data, 'name,fullname,title,comment'); $rota->sharedUsersList = []; foreach ($data['users'] as $checkUserID) { $rotaUser = R::load('users', $checkUserID); $rota->sharedUsersList[] = $rotaUser; } $id = R::store($rota); try { $fieldtest = R::inspect($rota->name); } catch (\Exception $e) { //thaw for creation R::freeze(['users']); $rotaUser = R::load('users', 1); $rotaDay = R::findOrCreate($rota->name, ['day' => 29, 'month' => 2, 'year' => 2015]); $rotaUser = R::load('users', 1); $rotaDay->name = $rotaUser; $rotaDay->who = $rotaUser; $rotaDay->stamp = date("Y-m-d H:i:s"); R::store($rotaDay); R::freeze(true); } $this->flash->addMessage('flash', "{$rota->name} updated"); return $response->withRedirect($this->router->pathFor('rotas')); } $userList = R::findAll('users'); $data = $rota->export(); $data['userList'] = $userList; $users = []; $userRota = $rota->sharedUsersList; foreach ($userRota as $userCheck) { $users[$userCheck->id] = 'checked'; } $data['userCheck'] = $users; $this->view->render($response, 'rota.twig', $data); return $response; }