Bonjour,
Tu peux me faire parvenir un patch en PJ, oui (je préfère les patchs au fichiers complets modifiés, d'autant que j'utilise Git qui rend encore plus simple leur application).
c'est fait: un diff + la classe + le sql de la table j'ai aussi un peu modifié le css pour voir
Heu... Là, il faut envisager directement un plugin à mon humble avis ; ça n'a pas grand chose à voir avec la gestion de groupes cette histoire de voyages (d'ailleurs, on pourrait envisager une association similaire qui aurait besoin des deux dans l'absolu).
Pourquoi les groupes ne sont pas un plugin, ce qui ne sert pas à toutes les associations ... dans mon asso j'ai du mal à voir l'utilité à part les voyages ( un voyage = un groupe, un accompagnateur, gestion (dés)inscription, participation financière, édition liste, trombi, ...)
plus intéressant d'implémenter la notion de familles, car ce sera plus générique. Tu peux y réfléchir si tu le souhaites
Oui, mais avant tout , je dois comprendre et apprendre le fonctionnement des plugins !!! Bonne journée daniel
diff -cr galette1538//ajouter_adherent.php galette07-dev//ajouter_adherent.php
*** galette1538//ajouter_adherent.php 2011-11-06 20:20:34.878171009 +0100
--- galette07-dev//ajouter_adherent.php 2011-11-06 20:32:24.679983142 +0100
***************
*** 292,303 ****
);
}
}
!
if ( isset($_POST['del_photo']) ) {
if ( !$member->picture->delete($member->id) ) {
$error_detected[] = _T("Delete failed");
}
}
// dynamic fields
set_all_dynamic_fields('adh', $member->id, $adherent['dyn']);
--- 292,327 ----
);
}
}
! if ( isset($_FILES['photo_conjoint']) ) {
! if ( $_FILES['photo_conjoint']['error'] === UPLOAD_ERR_OK ) {
! if ( $_FILES['photo_conjoint']['tmp_name'] !='' ) {
! if (
is_uploaded_file($_FILES['photo_conjoint']['tmp_name']) ) {
! $res =
$member->picture_c->store($_FILES['photo_conjoint']);
! if ( $res < 0 ) {
! $error_detected[] =
Picture::getErrorMessage($res);
! }
! }
! }
! } else if ($_FILES['photo_conjoint']['error'] !==
UPLOAD_ERR_NO_FILE) {
! $log->log(
!
$member->picture->getPhpErrorMessage($_FILES['photo_conjoint']['error']),
! PEAR_LOG_WARNING
! );
! $error_detected[] = $member->picture->getPhpErrorMessage(
! $_FILES['photo_conjoint']['error']
! );
! }
! }
if ( isset($_POST['del_photo']) ) {
if ( !$member->picture->delete($member->id) ) {
$error_detected[] = _T("Delete failed");
}
}
+ if ( isset($_POST['del_photo_c']) ) {
+ if ( !$member->picture_c->delete($member->id) ) {
+ $error_detected[] = _T("Delete failed");
+ }
+ }
// dynamic fields
set_all_dynamic_fields('adh', $member->id, $adherent['dyn']);
diff -cr galette1538//classes/adherent.class.php
galette07-dev//classes/adherent.class.php
*** galette1538//classes/adherent.class.php 2011-11-06 20:20:31.366241225
+0100
--- galette07-dev//classes/adherent.class.php 2011-11-06 20:32:24.679983142
+0100
***************
*** 40,46 ****
require_once 'status.class.php';
require_once 'fields_config.class.php';
require_once 'fields_categories.class.php';
! require_once 'picture.class.php';
require_once 'contribution.class.php';
require_once 'galette_password.class.php';
require_once 'groups.class.php';
--- 40,46 ----
require_once 'status.class.php';
require_once 'fields_config.class.php';
require_once 'fields_categories.class.php';
! require_once 'picture_conjoint.class.php';
require_once 'contribution.class.php';
require_once 'galette_password.class.php';
require_once 'groups.class.php';
***************
*** 100,105 ****
--- 100,106 ----
private $_others_infos;
private $_others_infos_admin;
private $_picture;
+ private $_picture_c;
private $_oldness;
private $_days_remaining;
private $_groups;
***************
*** 448,453 ****
--- 449,455 ----
$gp = new GalettePassword();
$this->_password = $gp->makeRandomPassword();
$this->_picture = new Picture();
+ $this->_picture_c = new Picture_conjoint;
if ( is_int($args) && $args > 0 ) {
$this->load($args);
}
***************
*** 585,590 ****
--- 587,593 ----
$this->_others_infos = $r->info_public_adh;
$this->_others_infos_admin = $r->info_adh;
$this->_picture = new Picture($this->_id);
+ $this->_picture_c = new Picture_conjoint($this->_id);
$this->_groups = Groups::loadGroups($this->_id);
$this->_checkDues();
}
***************
*** 707,713 ****
{
return $this->_picture->hasPicture();
}
!
/**
* Get row class related to current fee status
*
--- 710,719 ----
{
return $this->_picture->hasPicture();
}
! public function hasPicture_c()
! {
! return $this->_picture_c->hasPicture();
! }
/**
* Get row class related to current fee status
*
***************
*** 1057,1062 ****
--- 1063,1069 ----
if ( $add > 0) {
$this->_id = $zdb->db->lastInsertId();
$this->_picture = new Picture($this->_id);
+ $this->_picture_c = new Picture_conjoint($this->_id);
// logging
$hist->add(
_T("Member card added"),
diff -cr galette1538//classes/picture.class.php
galette07-dev//classes/picture.class.php
*** galette1538//classes/picture.class.php 2011-11-06 20:20:31.406240427
+0100
--- galette07-dev//classes/picture.class.php 2011-11-06 20:32:24.683983057
+0100
***************
*** 100,107 ****
protected $mime;
protected $has_picture = true;
protected $store_path = GALETTE_PHOTOS_PATH;
! protected $max_width = 200;
! protected $max_height = 200;
/**
* Default constructor.
--- 100,107 ----
protected $mime;
protected $has_picture = true;
protected $store_path = GALETTE_PHOTOS_PATH;
! protected $max_width = 120;
! protected $max_height = 120;
/**
* Default constructor.
Seulement dans galette07-dev//config: config.inc.php
Seulement dans galette07-dev//logs: galette.log
Seulement dans galette07-dev//photos: 2.jpg
Seulement dans galette07-dev//photos: C2.jpg
Seulement dans galette07-dev//photos: C4.jpg
Seulement dans galette07-dev//photos: C5.jpg
Seulement dans galette07-dev//photos: C6.jpg
diff -cr galette1538//picture.php galette07-dev//picture.php
*** galette1538//picture.php 2011-11-06 20:20:34.838171809 +0100
--- galette07-dev//picture.php 2011-11-06 20:32:24.683983057 +0100
***************
*** 56,62 ****
$picture = null;
if ( $login->isAdmin() || $adh->appearsInMembersList() ||
$login->login == $adh->login ) {
! $picture = $adh->picture; //new Picture($id_adh);
} else {
$picture = new Picture();
}
--- 56,66 ----
$picture = null;
if ( $login->isAdmin() || $adh->appearsInMembersList() ||
$login->login == $adh->login ) {
! if ( isset($_GET['conj']) && $_GET['conj'] == 'true' ) {
! $picture = $adh->picture_c; //new
Picture($id_adh);
! } else {
! $picture = $adh->picture;
! }
} else {
$picture = new Picture();
}
diff -cr galette1538//templates/default/member.tpl
galette07-dev//templates/default/member.tpl
*** galette1538//templates/default/member.tpl 2011-11-06 20:20:33.854191480
+0100
--- galette07-dev//templates/default/member.tpl 2011-11-06 20:32:24.687982973
+0100
***************
*** 37,52 ****
<fieldset class="cssform">
<legend class="ui-state-active
ui-corner-top">{_T string="Identity:"}</legend>
<div>
! {if !$self_adh}
<p>
<span class="bline">{_T
string="Picture:"}</span>
! <img
src="{$galette_base_path}picture.php?id_adh={$member->id}&rand={$time}"
class="picture" width="{$member->picture->getOptimalWidth()}"
height="{$member->picture->getOptimalHeight()}" alt="{_T
string="Picture"}"/><br/>
{if $member->hasPicture() eq 1 }
! <span
class="labelalign"><label for="del_photo">{_T string="Delete
image"}</label></span><input type="checkbox" name="del_photo" id="del_photo"
value="1"/><br/>
{/if}
<input class="labelalign"
type="file" name="photo"/>
</p>
! {/if}
<p>
<span class="bline">{_T
string="Title:"}</span>
{if $disabled.titre_adh != ''}
--- 37,58 ----
<fieldset class="cssform">
<legend class="ui-state-active
ui-corner-top">{_T string="Identity:"}</legend>
<div>
! {if !$self_adh}
<p>
<span class="bline">{_T
string="Picture:"}</span>
! <span class="pict"><img
src="{$galette_base_path}picture.php?id_adh={$member->id}&rand={$time}"
class="picture" width="{$member->picture->getOptimalWidth()}"
height="{$member->picture->getOptimalHeight()}" alt="{_T
string="Picture"}"/></span>
! <span class="pict"><img
src="{$galette_base_path}picture.php?conj=true&
id_adh={$member->id}&rand={$time}" class="picture"
width="{$member->picture_c->getOptimalWidth()}"
height="{$member->picture_c->getOptimalHeight()}" alt="{_T
string="Picture"}"/></span><br/>
{if $member->hasPicture() eq 1 }
! <span
class="labelalign"><label for="del_photo">{_T string="Delete
image"}</label></span><input type="checkbox" name="del_photo" id="del_photo"
value="1"/>
{/if}
+ {if $member->hasPicture_c() eq 1 }
+ <span class="pict"><label
for="del_photo">{_T string="Delete image"}</label></span><input
type="checkbox" name="del_photo_c" id="del_photo" value="1"/>
+ {/if}
+ <br/>
<input class="labelalign"
type="file" name="photo"/>
+ <input class="labelalign"
type="file" name="photo_conjoint"/>
</p>
! {/if}
<p>
<span class="bline">{_T
string="Title:"}</span>
{if $disabled.titre_adh != ''}
diff -cr galette1538//templates/default/voir_adherent.tpl
galette07-dev//templates/default/voir_adherent.tpl
*** galette1538//templates/default/voir_adherent.tpl 2011-11-06
20:20:33.862191326 +0100
--- galette07-dev//templates/default/voir_adherent.tpl 2011-11-06
20:32:24.687982973 +0100
***************
*** 56,62 ****
<tr>
<th>{_T string="Name:"}</th>
<td>{$member->spoliteness} {$member->name}
{$member->surname}</td>
! <td rowspan="6" class="photo"><img
src="{$galette_base_path}picture.php?id_adh={$member->id}&rand={$time}"
width="{$member->picture->getOptimalWidth()}"
height="{$member->picture->getOptimalHeight()}" alt="{_T
string="Picture"}"/></td>
</tr>
<tr>
<th>{_T string="Nickname:"}</th>
--- 56,63 ----
<tr>
<th>{_T string="Name:"}</th>
<td>{$member->spoliteness} {$member->name}
{$member->surname}</td>
! <td rowspan="6" class="photo"><img
src="{$galette_base_path}picture.php?id_adh={$member->id}&rand={$time}"
width="{$member->picture->getOptimalWidth()}"
height="{$member->picture->getOptimalHeight()}" alt="{_T string="Picture"}"/>
! <img
src="{$galette_base_path}picture.php?conj=true&
id_adh={$member->id}&rand={$time}"
width="{$member->picture_c->getOptimalWidth()}"
height="{$member->picture_c->getOptimalHeight()}" alt="{_T
string="Picture"}"/></td>
</tr>
<tr>
<th>{_T string="Nickname:"}</th>
Attachment:
picture_conjoint.class.php
Description: application/php
-- Structure de la table `galette_pictures_conjoint` -- CREATE TABLE IF NOT EXISTS `galette_pictures_conjoint` ( `id_adh` int(10) unsigned NOT NULL DEFAULT '0', `picture` mediumblob NOT NULL, `format` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', PRIMARY KEY (`id_adh`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;