<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
class VCard
{
var $users = array();
+ var $photos;
- function VCard($users, $freetext = null)
+ function VCard($users, $photos = true, $freetext = null)
{
+ $this->photos = $photos;
if (is_array($users)) {
foreach ($users as $user) {
$this->add_user($user, $freetext);
}
}
- // {{{ text formatting stuff
-
function escape($text)
{
return preg_replace('/[,;:]/', '\\\\$0', $text);
function text_encode($text, $escape = true)
{
+ if (is_array($text)) {
+ return implode(',', array_map(array($this, 'text_encode'), $text));
+ }
if ($escape) {
$text = $this->escape($text);
}
return preg_replace("/(\r\n|\n|\r)/", '\n', $text);
}
- // }}}
- // {{{ function add_user()
-
function add_user($x, $freetext)
{
global $globals;
$user['forlife'].'@'.$globals->mail->domain2);
$user['virtualalias'] = $res->fetchOneCell();
-
+ $user['gpxs_vcardjoin'] = join(',', array_map(array($this, 'text_encode'), $user['gpxs_name']));
+ $user['binets_vcardjoin'] = join(',', array_map(array($this, 'text_encode'), $user['binets']));
// get photo
- $res = XDB::query(
- "SELECT attach, attachmime
- FROM photo AS p
- INNER JOIN aliases AS a ON (a.id = p.uid AND a.type = 'a_vie')
- WHERE a.alias = {?}", $login);
- if ($res->numRows()) {
- $user['photo'] = $res->fetchOneAssoc();
+ if ($this->photos) {
+ $res = XDB::query(
+ "SELECT attach, attachmime
+ FROM photo AS p
+ INNER JOIN aliases AS a ON (a.id = p.uid AND a.type = 'a_vie')
+ WHERE a.alias = {?}", $login);
+ if ($res->numRows()) {
+ $user['photo'] = $res->fetchOneAssoc();
+ }
}
$this->users[] = $user;
}
- // }}}
- // {{{ function do_page()
-
function do_page(&$page)
{
- $page->changeTpl('vcard.tpl', NO_SKIN);
+ $page->changeTpl('core/vcard.tpl', NO_SKIN);
$page->register_modifier('vcard_enc', array($this, 'text_encode'));
$page->register_function('format_adr', array($this, 'format_adr'));
$page->assign_by_ref('users', $this->users);
header("Content-type: text/x-vcard; charset=iso-8859-15");
header("Content-Transfer-Encoding: 8bit");
}
-
- // }}}
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: