summaryrefslogtreecommitdiff
path: root/modules/gallery/controllers/user_profile.php
blob: 808531dac327757e291b90a6098ca374cab1643c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php defined("SYSPATH") or die("No direct script access.");
/**
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2009 Bharat Mediratta
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.
 */
class User_Profile_Controller extends Controller {
  public function show($id) {
    // If we get here, then we should have a user id other than guest.
    $user = identity::lookup_user($id);
    $active_user = identity::active_user();
    $is_current_active = $active_user->id == $id;
    $display_all =  $active_user->admin || ($is_current_active && !$active_user->guest);

    $v = new Theme_View("page.html", "other", "profile");
    $v->page_title = t("%name Profile", array("name" => $user->display_name()));
    $v->content = new View("user_profile.html");

    // @todo modify user_home to supply a link to their album,
    // @todo add list of watches
    // @todo add all comments
    // @todo add rest api key
    $v->content->user = $user;
    $v->content->height = 250;
    $v->content->not_current = !$is_current_active;
    $v->content->editable = identity::is_writable() && $display_all;
    $v->content->return = SafeString::of(Input::instance()->get("return"));

    $fields = array("name" => t("Name"), "locale" => t("Locale"), "email" => t("Email"),
                    "full_name" => t("Full name"), "url" => "Web site");
    if (!$display_all) {
      $fields = array("name" => t("Name"), "full_name" => t("Full name"), "url" => "Web site");
    }
    $v->content->fields = array();
    foreach ($fields as $field => $label) {
      if (!empty($user->$field)) {
        $v->content->fields[(string)$label->for_html()] = $user->$field;
      }
    }

    print $v;
  }

  public function contact($id) {
    $user = identity::lookup_user($id);
    print user_profile::get_contact_form($user);
  }

  public function send($id) {
    $user = identity::lookup_user($id);
    $form = user_profile::get_contact_form($user);
    if ($form->validate()) {
      Sendmail::factory()
        ->to($user->email)
        ->subject($form->message->subject->value)
        ->header("Mime-Version", "1.0")
        ->header("Content-type", "text/html; charset=iso-8859-1")
        ->reply_to($form->message->reply_to->value)
        ->message($form->message->message->value)
        ->send();
      message::success(t("Sent message to %user_name", array("user_name" => $user->display_name())));
      print json_encode(array("result" => "success"));
    } else {
      print json_encode(array("result" => "error", "form" => (string)$form));
    }
  }
}