Merge commit 'origin/fusionax' into account
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 6 Mar 2009 21:52:14 +0000 (22:52 +0100)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 6 Mar 2009 21:52:14 +0000 (22:52 +0100)
1  2 
modules/profile/page.inc.php

@@@ -119,11 -119,17 +119,11 @@@ class ProfilePhones implements ProfileS
  {
      private $tel;
      private $pub;
 -    protected $id;
      protected $link_type;
      protected $link_id;
  
 -    public function __construct($type, $link_id, $id = 0)
 +    public function __construct($type, $link_id)
      {
 -        if ($id != 0) {
 -            $this->id = $id;
 -        } else {
 -            $this->id = S::i('uid');
 -        }
          $this->tel = new ProfileTel();
          $this->pub = new ProfilePub();
          $this->link_type = $type;
                                      FROM  profile_phones AS t
                                     WHERE  t.uid = {?} AND t.link_type = {?}
                                  ORDER BY  t.tel_id",
 -                                 $this->id, $this->link_type);
 +                                 $page->pid(), $this->link_type);
              $value = $res->fetchAllAssoc();
          }
          foreach ($value as $key=>&$phone) {
          return $value;
      }
  
 -    private function saveTel($telid, array &$phone)
 +    private function saveTel($pid, $telid, array &$phone)
      {
          if ($phone['tel'] != '') {
              XDB::execute("INSERT INTO  profile_phones (uid, link_type, link_id, tel_id, tel_type,
                                         search_tel, display_tel, pub, comment)
                                 VALUES  ({?}, {?}, {?}, {?}, {?},
                                         {?}, {?}, {?}, {?})",
 -                         $this->id, $this->link_type, $this->link_id, $telid, $phone['type'],
 +                         $pid, $this->link_type, $this->link_id, $telid, $phone['type'],
                           format_phone_number($phone['tel']), $phone['tel'], $phone['pub'], $phone['comment']);
          }
      }
      {
          XDB::execute("DELETE FROM  profile_phones
                              WHERE  uid = {?} AND link_type = {?} AND link_id = {?}",
 -                            $this->id, $this->link_type, $this->link_id);
 -        $this->saveTels($field, $value);
 +                     $page->pid(), $this->link_type, $this->link_id);
 +        $this->saveTels($page->pid(), $field, $value);
      }
  
      //Only saves phones without a delete operation
 -    public function saveTels($field, $value)
 +    public function saveTels($pid, $field, $value)
      {
          foreach ($value as $telid=>&$phone) {
 -            $this->saveTel($telid, $phone);
 +            $this->saveTel($pid, $telid, $phone);
          }
      }
  }
@@@ -261,13 -267,11 +261,11 @@@ abstract class ProfileGeocoding impleme
                  $success = false;
              }
          }
-         if (isset($address['geoloc_choice'])) {
-             if ($address['geoloc_choice'] == 0) {
-                 $mailer = new PlMailer('geoloc/geoloc.mail.tpl');
-                 $mailer->assign('text', $address['text']);
-                 $mailer->assign('geoloc', $address['geoloc']);
-                 $mailer->send();
-             }
+         if (isset($address['geoloc_choice']) && ($address['geoloc_choice'] == 0)) {
+             $mailer = new PlMailer('geoloc/geoloc.mail.tpl');
+             $mailer->assign('text', $address['text']);
+             $mailer->assign('geoloc', $address['geoloc']);
+             $mailer->send();
              $gmapsGeocoder = new GMapsGeocoder();
              $address = $gmapsGeocoder->stripGeocodingFromAddress($address);
          }
@@@ -286,14 -290,10 +284,14 @@@ abstract class ProfilePage implements P
  
      public $orig     = array();
      public $values   = array();
 +    public $profile  = null;
 +    public $owner    = null;
  
      public function __construct(PlWizard &$wiz)
      {
          $this->wizard =& $wiz;
 +        $this->profile = $this->wizard->getUserData('profile');
 +        $this->owner   = $this->wizard->getUserData('owner');
      }
  
      protected function _fetchData()
                  $setting->save($this, $field, $this->values[$field]);
              }
              if ($this->changed[$field] && @$this->watched[$field]) {
 -                register_profile_update(S::i('uid'), $field);
 +                WatchProfileUpdate::register($this->profile, $field);
              }
          }
          $this->_saveData();
  
          // Update the last modification date
 -        XDB::execute('REPLACE INTO  user_changes
 -                               SET  user_id = {?}', S::v('uid'));
 -        if (!S::has('suid')) {
 -            register_watch_op(S::i('uid'), WATCH_FICHE);
 -        }
 +        XDB::execute('UPDATE  profiles
 +                         SET  last_change = NOW()
 +                       WHERE  pid = {?}', $this->pid());
          global $platal;
 -        S::logger()->log('profil', $platal->pl_self(1));
 +        S::logger()->log('profil', $platal->pl_self(2));
      }
  
      protected function checkChanges()
          return 'profile/base.tpl';
      }
  
 +    public function pid()
 +    {
 +        return $this->profile->id();
 +    }
 +
 +    public function hrpid()
 +    {
 +        return $this->profile->hrpid();
 +    }
 +
      protected function _prepare(PlPage &$page, $id)
      {
      }
              $page->assign($field, $value);
          }
          $this->_prepare($page, $id);
 +        $page->assign('profile', $this->profile);
 +        $page->assign('owner', $this->owner);
          $page->assign('profile_page', $this->pg_template);
          $page->assign('errors', $this->errors);
      }