示例#1
0
 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);
                 }
             }
         }
     }
 }
示例#2
0
 public function getLessons()
 {
     $lessons = R::findAll('lesson');
     return array_map(function ($lesson) {
         return $lesson->export();
     }, $lessons);
 }
示例#3
0
 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;
 }
示例#4
0
 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;
 }
示例#5
0
文件: SetLink.php 项目: skema/skema
 public function getOptions()
 {
     $sets = [];
     foreach (R::findAll('skemaset') as $setBean) {
         $sets[$setBean->getID()] = $setBean->name;
     }
     return $sets;
 }
示例#6
0
文件: Perm.php 项目: Koohiisan/Enpowi
 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;
 }
示例#7
0
文件: Authors.php 项目: kiswa/SMPLog
 private function getAuthorsCleaned()
 {
     $users = R::findAll('user', 'is_active = 1');
     $data = [];
     foreach ($users as $key => $user) {
         $this->unsetProperties($user);
         $data[] = $user->export();
     }
     return $data;
 }
示例#8
0
文件: Posts.php 项目: kiswa/SMPLog
 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);
 }
示例#10
0
 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');
 }
示例#12
0
 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;
 }
示例#13
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;
 }
示例#14
0
文件: Post.php 项目: enpowi/enpowi
    /**
     * @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;
    }
示例#15
0
    }
    $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 {
示例#16
0
 /**
  * @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;
 }
示例#17
0
 /**
  * @return array
  */
 public function all()
 {
     return new IteratorResult(R::findAll($this->table), 'redbean');
 }
示例#18
0
 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;
 }
示例#19
0
文件: User.php 项目: enpowi/enpowi
 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;
 }
示例#20
0
 /**
  * @return array
  */
 protected static function getCurrenciesFromDb()
 {
     $data = RedBean::findAll('currency');
     $result = [];
     foreach ($data as $currency) {
         $result[$currency->code] = $currency->name;
     }
     return $result;
 }
示例#21
0
文件: File.php 项目: Koohiisan/Enpowi
 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;
 }
示例#22
0
文件: Page.php 项目: Koohiisan/Enpowi
 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;
 }
示例#23
0
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);
        }
    }
}
示例#24
0
 public function getBranches()
 {
     return array_map(function ($branch) {
         return $branch->export();
     }, R::findAll('branch', 'ORDER BY name ASC'));
 }
示例#25
0
文件: Gallery.php 项目: enpowi/enpowi
 /**
  * @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;
 }
示例#26
0
文件: console.php 项目: php-cpm/cpm
<?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);
}
示例#27
0
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;
}
示例#28
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;
 }
示例#29
0
 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;
 }
示例#30
-1
 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;
 }