summaryrefslogtreecommitdiff
path: root/app/Module/UserMessagesModule.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2018-07-16 08:20:33 +0100
committerGreg Roach <fisharebest@webtrees.net>2018-07-16 08:20:33 +0100
commitc1010eda29c0909ed4d5d463f32d32bfefdd4dfe (patch)
treefbb656ebc014aa1295ac8e6176f41e89f94b91e7 /app/Module/UserMessagesModule.php
parent782f08d9bd2bfa06635da947ee34f8e1afd65088 (diff)
downloadwebtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.tar.gz
webtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.tar.bz2
webtrees-c1010eda29c0909ed4d5d463f32d32bfefdd4dfe.zip
Use PSR2 code style
Diffstat (limited to 'app/Module/UserMessagesModule.php')
-rw-r--r--app/Module/UserMessagesModule.php307
1 files changed, 164 insertions, 143 deletions
diff --git a/app/Module/UserMessagesModule.php b/app/Module/UserMessagesModule.php
index b0eb85d52d..845e01b14c 100644
--- a/app/Module/UserMessagesModule.php
+++ b/app/Module/UserMessagesModule.php
@@ -29,165 +29,186 @@ use Symfony\Component\HttpFoundation\Response;
/**
* Class UserMessagesModule
*/
-class UserMessagesModule extends AbstractModule implements ModuleBlockInterface {
- /** {@inheritdoc} */
- public function getTitle() {
- return /* I18N: Name of a module */ I18N::translate('Messages');
- }
+class UserMessagesModule extends AbstractModule implements ModuleBlockInterface
+{
+ /** {@inheritdoc} */
+ public function getTitle()
+ {
+ return /* I18N: Name of a module */
+ I18N::translate('Messages');
+ }
- /** {@inheritdoc} */
- public function getDescription() {
- return /* I18N: Description of the “Messages” module */ I18N::translate('Communicate directly with other users, using private messages.');
- }
+ /** {@inheritdoc} */
+ public function getDescription()
+ {
+ return /* I18N: Description of the “Messages” module */
+ I18N::translate('Communicate directly with other users, using private messages.');
+ }
- /**
- * Delete one or messages belonging to a user.
- *
- * @param Request $request
- *
- * @return Response
- */
- public function postDeleteMessageAction(Request $request): Response {
- /** @var Tree $tree */
- $tree = $request->attributes->get('tree');
+ /**
+ * Delete one or messages belonging to a user.
+ *
+ * @param Request $request
+ *
+ * @return Response
+ */
+ public function postDeleteMessageAction(Request $request): Response
+ {
+ /** @var Tree $tree */
+ $tree = $request->attributes->get('tree');
- $message_ids = (array) $request->get('message_id', []);
+ $message_ids = (array)$request->get('message_id', []);
- $stmt = Database::prepare("DELETE FROM `##message` WHERE user_id = :user_id AND message_id = :message_id");
+ $stmt = Database::prepare("DELETE FROM `##message` WHERE user_id = :user_id AND message_id = :message_id");
- foreach ($message_ids as $message_id) {
- $stmt->execute([
- 'message_id' => $message_id,
- 'user_id' => Auth::id(),
- ]);
- }
+ foreach ($message_ids as $message_id) {
+ $stmt->execute([
+ 'message_id' => $message_id,
+ 'user_id' => Auth::id(),
+ ]);
+ }
- if ($request->get('ctype') === 'user') {
- $url = route('user-page', ['ged' => $tree->getName()]);
- } else {
- $url = route('tree-page', ['ged' => $tree->getName()]);
- }
+ if ($request->get('ctype') === 'user') {
+ $url = route('user-page', ['ged' => $tree->getName()]);
+ } else {
+ $url = route('tree-page', ['ged' => $tree->getName()]);
+ }
- return new RedirectResponse($url);
- }
+ return new RedirectResponse($url);
+ }
- /**
- * Generate the HTML content of this block.
- *
- * @param Tree $tree
- * @param int $block_id
- * @param bool $template
- * @param string[] $cfg
- *
- * @return string
- */
- public function getBlock(Tree $tree, int $block_id, bool $template = true, array $cfg = []): string {
- global $ctype;
+ /**
+ * Generate the HTML content of this block.
+ *
+ * @param Tree $tree
+ * @param int $block_id
+ * @param bool $template
+ * @param string[] $cfg
+ *
+ * @return string
+ */
+ public function getBlock(Tree $tree, int $block_id, bool $template = true, array $cfg = []): string
+ {
+ global $ctype;
- $messages = Database::prepare("SELECT message_id, sender, subject, body, UNIX_TIMESTAMP(created) AS created FROM `##message` WHERE user_id=? ORDER BY message_id DESC")
- ->execute([Auth::id()])
- ->fetchAll();
+ $messages = Database::prepare("SELECT message_id, sender, subject, body, UNIX_TIMESTAMP(created) AS created FROM `##message` WHERE user_id=? ORDER BY message_id DESC")
+ ->execute([Auth::id()])
+ ->fetchAll();
- $count = count($messages);
- $users = array_filter(User::all(), function (User $user) {
- return $user->getUserId() !== Auth::id() && $user->getPreference('verified_by_admin') && $user->getPreference('contactmethod') !== 'none';
- });
+ $count = count($messages);
+ $users = array_filter(User::all(), function (User $user) {
+ return $user->getUserId() !== Auth::id() && $user->getPreference('verified_by_admin') && $user->getPreference('contactmethod') !== 'none';
+ });
- $content = '';
- if (!empty($users)) {
- $url = route('user-page', ['ged' => $tree->getName()]);
- $content .= '<form onsubmit="return $(&quot;#to&quot;).val() !== &quot;&quot;">';
- $content .= '<input type="hidden" name="route" value="message">';
- $content .= '<input type="hidden" name="ged" value="' . e($tree->getName()) . '">';
- $content .= '<input type="hidden" name="url" value="' . e($url) . '">';
- $content .= '<label for="to">' . I18N::translate('Send a message') . '</label>';
- $content .= '<select id="to" name="to">';
- $content .= '<option value="">' . I18N::translate('&lt;select&gt;') . '</option>';
- foreach ($users as $user) {
- $content .= sprintf('<option value="%1$s">%2$s - %1$s</option>', e($user->getUserName()), e($user->getRealName()));
- }
- $content .= '</select>';
- $content .= '<button type="submit">' . I18N::translate('Send') . '</button><br><br>';
- $content .= '</form>';
- }
- $content .= '<form id="messageform" name="messageform" method="post" action="' . e(route('module', ['action' => 'DeleteMessage', 'module' => $this->getName(), 'ctype' => $ctype, 'ged' => $tree->getName()])) . '" data-confirm="' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '" onsubmit="return confirm(this.dataset.confirm);">';
- $content .= csrf_field();
+ $content = '';
+ if (!empty($users)) {
+ $url = route('user-page', ['ged' => $tree->getName()]);
+ $content .= '<form onsubmit="return $(&quot;#to&quot;).val() !== &quot;&quot;">';
+ $content .= '<input type="hidden" name="route" value="message">';
+ $content .= '<input type="hidden" name="ged" value="' . e($tree->getName()) . '">';
+ $content .= '<input type="hidden" name="url" value="' . e($url) . '">';
+ $content .= '<label for="to">' . I18N::translate('Send a message') . '</label>';
+ $content .= '<select id="to" name="to">';
+ $content .= '<option value="">' . I18N::translate('&lt;select&gt;') . '</option>';
+ foreach ($users as $user) {
+ $content .= sprintf('<option value="%1$s">%2$s - %1$s</option>', e($user->getUserName()), e($user->getRealName()));
+ }
+ $content .= '</select>';
+ $content .= '<button type="submit">' . I18N::translate('Send') . '</button><br><br>';
+ $content .= '</form>';
+ }
+ $content .= '<form id="messageform" name="messageform" method="post" action="' . e(route('module', [
+ 'action' => 'DeleteMessage',
+ 'module' => $this->getName(),
+ 'ctype' => $ctype,
+ 'ged' => $tree->getName(),
+ ])) . '" data-confirm="' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '" onsubmit="return confirm(this.dataset.confirm);">';
+ $content .= csrf_field();
- if (!empty($messages)) {
- $content .= '<table class="list_table w-100"><tr>';
- $content .= '<th class="list_label">' . I18N::translate('Delete') . '<br><a href="#" onclick="$(\'#block-' . $block_id . ' :checkbox\').prop(\'checked\', true); return false;">' . I18N::translate('All') . '</a></th>';
- $content .= '<th class="list_label">' . I18N::translate('Subject') . '</th>';
- $content .= '<th class="list_label">' . I18N::translate('Date sent') . '</th>';
- $content .= '<th class="list_label">' . I18N::translate('Email address') . '</th>';
- $content .= '</tr>';
- foreach ($messages as $message) {
- $content .= '<tr>';
- $content .= '<td class="list_value_wrap center"><input type="checkbox" name="message_id[]" value="' . $message->message_id . '" id="cb_message' . $message->message_id . '"></td>';
- $content .= '<td class="list_value_wrap"><a href="#" onclick="return expand_layer(\'message' . $message->message_id . '\');"><i id="message' . $message->message_id . '_img" class="icon-plus"></i> <b dir="auto">' . e($message->subject) . '</b></a></td>';
- $content .= '<td class="list_value_wrap">' . FunctionsDate::formatTimestamp($message->created + WT_TIMESTAMP_OFFSET) . '</td>';
- $content .= '<td class="list_value_wrap">';
- $user = User::findByIdentifier($message->sender);
- if ($user) {
- $content .= '<span dir="auto">' . e($user->getRealName()) . '</span> - <span dir="auto">' . $user->getEmail() . '</span>';
- } else {
- $content .= '<a href="mailto:' . e($message->sender) . '">' . e($message->sender) . '</a>';
- }
- $content .= '</td>';
- $content .= '</tr>';
- $content .= '<tr><td class="list_value_wrap" colspan="4"><div id="message' . $message->message_id . '" style="display:none;">';
- $content .= '<div dir="auto" style="white-space: pre-wrap;">' . Filter::expandUrls($message->body, $tree) . '</div><br>';
- if (strpos($message->subject, /* I18N: When replying to an email, the subject becomes “RE: <subject>” */ I18N::translate('RE: ')) !== 0) {
- $message->subject = I18N::translate('RE: ') . $message->subject;
- }
+ if (!empty($messages)) {
+ $content .= '<table class="list_table w-100"><tr>';
+ $content .= '<th class="list_label">' . I18N::translate('Delete') . '<br><a href="#" onclick="$(\'#block-' . $block_id . ' :checkbox\').prop(\'checked\', true); return false;">' . I18N::translate('All') . '</a></th>';
+ $content .= '<th class="list_label">' . I18N::translate('Subject') . '</th>';
+ $content .= '<th class="list_label">' . I18N::translate('Date sent') . '</th>';
+ $content .= '<th class="list_label">' . I18N::translate('Email address') . '</th>';
+ $content .= '</tr>';
+ foreach ($messages as $message) {
+ $content .= '<tr>';
+ $content .= '<td class="list_value_wrap center"><input type="checkbox" name="message_id[]" value="' . $message->message_id . '" id="cb_message' . $message->message_id . '"></td>';
+ $content .= '<td class="list_value_wrap"><a href="#" onclick="return expand_layer(\'message' . $message->message_id . '\');"><i id="message' . $message->message_id . '_img" class="icon-plus"></i> <b dir="auto">' . e($message->subject) . '</b></a></td>';
+ $content .= '<td class="list_value_wrap">' . FunctionsDate::formatTimestamp($message->created + WT_TIMESTAMP_OFFSET) . '</td>';
+ $content .= '<td class="list_value_wrap">';
+ $user = User::findByIdentifier($message->sender);
+ if ($user) {
+ $content .= '<span dir="auto">' . e($user->getRealName()) . '</span> - <span dir="auto">' . $user->getEmail() . '</span>';
+ } else {
+ $content .= '<a href="mailto:' . e($message->sender) . '">' . e($message->sender) . '</a>';
+ }
+ $content .= '</td>';
+ $content .= '</tr>';
+ $content .= '<tr><td class="list_value_wrap" colspan="4"><div id="message' . $message->message_id . '" style="display:none;">';
+ $content .= '<div dir="auto" style="white-space: pre-wrap;">' . Filter::expandUrls($message->body, $tree) . '</div><br>';
+ if (strpos($message->subject, /* I18N: When replying to an email, the subject becomes “RE: <subject>” */
+ I18N::translate('RE: ')) !== 0) {
+ $message->subject = I18N::translate('RE: ') . $message->subject;
+ }
- // If this user still exists, show a reply link.
- if ($user) {
- $reply_url = route('message', ['to' => $user->getUserName(), 'subject' => $message->subject, 'ged' => $tree->getName()]);
- $content .= '<a class="btn btn-primary" href="' . e($reply_url) . '" title="' . I18N::translate('Reply') . '">' . I18N::translate('Reply') . '</a> ';
- }
- $content .= '<button type="button" class="btn btn-danger" data-confirm="' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '" onclick="if (confirm(this.dataset.confirm)) {$(\'#messageform :checkbox\').prop(\'checked\', false); $(\'#cb_message' . $message->message_id . '\').prop(\'checked\', true); document.messageform.submit();}">' . I18N::translate('Delete') . '</button></div></td></tr>';
- }
- $content .= '</table>';
- $content .= '<p><button type="submit">' . I18N::translate('Delete selected messages') . '</button></p>';
- }
- $content .= '</form>';
+ // If this user still exists, show a reply link.
+ if ($user) {
+ $reply_url = route('message', [
+ 'to' => $user->getUserName(),
+ 'subject' => $message->subject,
+ 'ged' => $tree->getName(),
+ ]);
+ $content .= '<a class="btn btn-primary" href="' . e($reply_url) . '" title="' . I18N::translate('Reply') . '">' . I18N::translate('Reply') . '</a> ';
+ }
+ $content .= '<button type="button" class="btn btn-danger" data-confirm="' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '" onclick="if (confirm(this.dataset.confirm)) {$(\'#messageform :checkbox\').prop(\'checked\', false); $(\'#cb_message' . $message->message_id . '\').prop(\'checked\', true); document.messageform.submit();}">' . I18N::translate('Delete') . '</button></div></td></tr>';
+ }
+ $content .= '</table>';
+ $content .= '<p><button type="submit">' . I18N::translate('Delete selected messages') . '</button></p>';
+ }
+ $content .= '</form>';
- if ($template) {
- return view('modules/block-template', [
- 'block' => str_replace('_', '-', $this->getName()),
- 'id' => $block_id,
- 'config_url' => '',
- 'title' => I18N::plural('%s message', '%s messages', $count, I18N::number($count)),
- 'content' => $content,
- ]);
- } else {
- return $content;
- }
- }
+ if ($template) {
+ return view('modules/block-template', [
+ 'block' => str_replace('_', '-', $this->getName()),
+ 'id' => $block_id,
+ 'config_url' => '',
+ 'title' => I18N::plural('%s message', '%s messages', $count, I18N::number($count)),
+ 'content' => $content,
+ ]);
+ } else {
+ return $content;
+ }
+ }
- /** {@inheritdoc} */
- public function loadAjax(): bool {
- return false;
- }
+ /** {@inheritdoc} */
+ public function loadAjax(): bool
+ {
+ return false;
+ }
- /** {@inheritdoc} */
- public function isUserBlock(): bool {
- return true;
- }
+ /** {@inheritdoc} */
+ public function isUserBlock(): bool
+ {
+ return true;
+ }
- /** {@inheritdoc} */
- public function isGedcomBlock(): bool {
- return false;
- }
+ /** {@inheritdoc} */
+ public function isGedcomBlock(): bool
+ {
+ return false;
+ }
- /**
- * An HTML form to edit block settings
- *
- * @param Tree $tree
- * @param int $block_id
- *
- * @return void
- */
- public function configureBlock(Tree $tree, int $block_id) {
- }
+ /**
+ * An HTML form to edit block settings
+ *
+ * @param Tree $tree
+ * @param int $block_id
+ *
+ * @return void
+ */
+ public function configureBlock(Tree $tree, int $block_id)
+ {
+ }
}