diff options
Diffstat (limited to 'modules/gallery/controllers/user_profile.php')
| -rw-r--r-- | modules/gallery/controllers/user_profile.php | 80 | 
1 files changed, 80 insertions, 0 deletions
| diff --git a/modules/gallery/controllers/user_profile.php b/modules/gallery/controllers/user_profile.php new file mode 100644 index 00000000..808531da --- /dev/null +++ b/modules/gallery/controllers/user_profile.php @@ -0,0 +1,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)); +    } +  } +} | 
