1 <?php
2
3 4 5 6 7 8 9 10
11
12 namespace Icybee;
13
14 use Brickrouge\Element;
15
16 17 18 19
20 class InterlockBlock extends Element
21 {
22 23 24 25 26
27 protected $module;
28
29 30 31 32 33
34 protected $attributes;
35
36 protected $lock;
37
38 public function __construct(Module $module, array $attributes, array $params)
39 {
40 $this->module = $module;
41 $this->attributes = $attributes;
42
43 $this->parse_params($params);
44
45 parent::__construct('div', array('class' => 'block-alert block--interlock'));
46 }
47
48 protected function parse_params(array $params)
49 {
50 $this->lock = $params['lock'];
51 }
52
53 public function render_inner_html()
54 {
55 global $core;
56
57 $lock = $this->lock;
58 $luser = $core->models['users'][$lock['uid']];
59 $luser_url = \ICanBoogie\Routing\contextualize("/admin/users/{$luser->uid}/edit");
60 $url = $core->request->path;
61
62 $time = round((strtotime($lock['until']) - time()) / 60);
63 $message = $time ? "Le verrou devrait disparaitre dans $time minutes." : "Le verrou devrait disparaitre dans moins d'une minutes.";
64
65 return <<<EOT
66 <h1 class="block-title">Édition impossible</h1>
67
68 <form method="get" action="">
69 <input type="hidden" name="retry" value="1" />
70
71 <p>Impossible d'éditer l'enregistrement parce qu'il est en cours d'édition par
72 <a title="Username: $luser->username" href="$luser_url">$luser->name</a>.</p>
73
74 <div class="form-actions">
75 <button class="btn btn-success">Réessayer</button> <span class="small light">$message</span>
76 </div>
77 </form>
78 EOT;
79 }
80 }