Importation limitée pour membres PhpBB (galleries "Bridgées") Importation limitée pour membres PhpBB (galleries "Bridgées")
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Importation limitée pour membres PhpBB (galleries "Bridgées")

Started by WebmastAir, July 31, 2008, 09:42:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WebmastAir

Bonjour,

J'ai installé la gallerie Coppermine (super) et l'ajout "Association Coppermine/PhpBB" (add-on "Bridging").

Info:
J'ai modifié 3 instructions pour que les membres ne puissent pas se "déconnecter" via le menu de coppermine quand cette fonction d'asscociation est activée (sinon ils sont déconnectés aussi des forums)...  tout fonctionne parfaitement.

Question:
je voudrai savoir s'il existe qq part une modifications (mod ou add-on) qui permette d'empêcher que les membres sans posts dans les forums (ou très peu) ne puissent télécharger des images dans leur gallerie ?

Remarque:
J'ai pensé le faire via le menu des forums (car depuis les années, je commence à connaître un peu les scripts) mais alors ils ne peuvent pas non plus aller voir les images des autres... ce n'est pas le but.

Il faudrait que dans Coppermine une message indique à l'utilisateur qu'il ne lui est pas possible de télécharger des photos s'il n'a pas posté au moins le nombre de posts minimum requis... et que cette action ne lui soit pas possible (comment et quel script modifier?).

Merci pour vos avis et aide éventuelle.

WebmastAir

J'ai l'idée par exemple de compléter les données (user_name, user_date, ...etc) fournies par l'add-on "Bridge" par une donnée supplémentaire qui donnerait à Coppermine le nombre de posts de l'utilisateur des forums...
... ensuite, ajouter une "instruction/condition" dans le fichier adéquat "template.php" ou ailleurs (je ne sais pas exactement où).

Ainsi en cliquant sur le bouton "Créer / classer mes albums", au lieu d'aller chercher le script "albmgr.php", un "popup" afficherait un message du genre "Pour utiliser votre galerie, il faut avoir posté xx message minimum dans les forums «xxx forums»"... le problèmes c'est que je ne sais pas comment m'y prendre.

Quelqu'un peut-il m'aider svp ?

WebmastAir

Juste une petite remarque sans vouloir choquer: je ne trouve pas pratique de ne pas pouvoir "remanier/corriger" son propre message qu'on vient d'écrire.

Pascal YAP

C'est impossible en effet.
Mais il s'agit d'hygiène ! Il serait trop simple de faire disparaitre des POSTs.
Prendre soin de ses propres messages avant de les poster semble être normal  ;D

PYAP

WebmastAir

Merci PYAP, je comprends.
Je voulais seulement parler de la possibilité de "modifier" le "dernier" post... parfois il arrive de regretter d'avoir "envoyer" trop vite quand on se rends compte qu'une précision supplémentaire aurait été utile.  Juste pour éviter de devoir reposter pour un détail +/- important.

François Keller

Bonjour,

la modif doit être possible, mais comment, je ne sais pas (je n'utilise pas le bridge). Je pense qu'il faudrait ajouter un appel vers une fonction de test avant l'appel du script d'upload... ça ne doit pas être trop difficile, à condition de pouvoir récupérer les bonnes infos...
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

WebmastAir

Oui, je pense aussi que ça doit être assez simple.
C'est la façon de faire que ne perçois pas car je ne connais pas suffisamment les scripts.

WebmastAir

J'ai un peu essayé diverses méthodes mais je n'arrive pas à trouver comment ajouter cette information pour la transférer à Coppermine à partir de phpBB.

Où sont les champs envoyé par le l'add-on "Bridging"... quelqu'un peut-il me mettre sur la voie svp ?

WebmastAir

Après de bons pataugements, j'y suis enfin arrivé.
Je note donc réglé.

WebmastAir

Au cas où quelqu'un souhaite appliquer cette modification, voici les fichiers à modifier.  A noter que j'utilise la template "Water_drop" mais à mon avis, avec l'une ou l'autre variation, elle peut s'appliquer aux autres.

  • Dans "usermgr.php" (dans la fonction "function list_users") :
Remplacer le code:

function list_users($search = '')
{
    global $CONFIG, $cpg_udb; //, $PHP_SELF;
    global $lang_usermgr_php, $lang_byte_units, $register_date_fmt,$lang_check_uncheck_all;
    global $lim_user,$number_of_columns;
    global $USER_DATA;

    $number_of_columns_minus_one = $number_of_columns - 1;

    $sort_codes = array('name_a' => 'user_name ASC',
        'name_d' => 'user_name DESC',
        'group_a' => 'group_name ASC',

... par le code

function list_users($search = '')
{
    global $CONFIG, $cpg_udb; //, $PHP_SELF;
    global $lang_usermgr_php, $lang_byte_units, $register_date_fmt,$lang_check_uncheck_all;
    global $lim_user,$number_of_columns;
    global $USER_DATA;

    $number_of_columns_minus_one = $number_of_columns - 1;

    $sort_codes = array('name_a' => 'user_name ASC',
        'name_d' => 'user_name DESC',
        'posts_a' => 'user_posts ASC',
        'posts_d' => 'user_posts DESC',
        'group_a' => 'group_name ASC',



... remplacer le code:
                <td class="tableh1" align="center"><input type="checkbox" {$makereadonly}name="checkAll" onClick="selectAll(this,'u');" class="checkbox" title="$lang_check_uncheck_all" /></td>
                <td class="tableh1" colspan="2"><b><span class="statlink">{$lang_usermgr_php['name']}</span></b>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=name_a"><img src="images/ascending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['name_a']}" /></a>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=name_d"><img src="images/descending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['name_d']}" /></a>
                </td>
                <td class="tableh1"><b><a href="groupmgr.php" class="statlink">{$lang_usermgr_php['group']}</a></b>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=group_a"><img src="images/ascending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['group_a']}" /></a>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=group_d"><img src="images/descending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['group_d']}" /></a>
                </td>

... par le code:

                <td class="tableh1" align="center"><input type="checkbox" {$makereadonly}name="checkAll" onClick="selectAll(this,'u');" class="checkbox" title="$lang_check_uncheck_all" /></td>
                <td class="tableh1" colspan="2"><b><span class="statlink">{$lang_usermgr_php['name']}</span></b>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=name_a"><img src="images/ascending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['name_a']}" /></a>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=name_d"><img src="images/descending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['name_d']}" /></a>
                </td>
                <td class="tableh1"><b><span class="statlink">{$lang_usermgr_php['posts']}</span></b>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=posts_a"><img src="images/ascending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['posts_a']}" /></a>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=posts_d"><img src="images/descending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['posts_d']}" /></a>
                </td>
                <td class="tableh1"><b><a href="groupmgr.php" class="statlink">{$lang_usermgr_php['group']}</a></b>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=group_a"><img src="images/ascending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['group_a']}" /></a>
                <a href="{$_SERVER['PHP_SELF']}?page=$page&amp;sort=group_d"><img src="images/descending.gif" width="9" height="9" border="0" alt="" title="{$lang_usermgr_php['group_d']}" /></a>
                </td>



... remplacer le code:

                <td class="tableb" align="center">
                    <button type="button" class="button" {$makereadonly}onclick="window.location.href ='$profile_link';">
                        <img src="images/edit.gif" width="16" height="16" border="0" alt="" title="{$lang_usermgr_php['edit']}" />
                    </button>
                </td>
                <td class="tableb">{$user['group_name']}</td>

... par le code:

                <td class="tableb" align="center">
                    <button type="button" class="button" {$makereadonly}onclick="window.location.href ='$profile_link';">
                        <img src="images/edit.gif" width="16" height="16" border="0" alt="" title="{$lang_usermgr_php['edit']}" />
                    </button>
                </td>
                <td class="tableb" align="center">{$user['user_posts']}</td>
                <td class="tableb">{$user['group_name']}</td>



  • Dans phpbb2018.inc.php :
... remplacer le code:

'user_id' => 'user_id', // name of 'id' field in users table
'password' => 'user_password', // name of 'password' field in users table
'email' => 'user_email', // name of 'email' field in users table
'regdate' => 'user_regdate', // name of 'registered' field in users table

... par le code:

'user_id' => 'user_id', // name of 'id' field in users table
'password' => 'user_password', // name of 'password' field in users table
'userposts' => 'user_posts', // name of the posts number field in the users table  //moi ici
'email' => 'user_email', // name of 'email' field in users table
'regdate' => 'user_regdate', // name of 'registered' field in users table



... remplacer le code:

// Sort codes - global this in usermgr.php in 1.5
        $sort_codes = array('name_a' => 'user_name ASC',
                            'name_d' => 'user_name DESC',
                            'group_a' => 'group_name ASC',

... par le code:

// Sort codes - global this in usermgr.php in 1.5
        $sort_codes = array('name_a' => 'user_name ASC',
                            'name_d' => 'user_name DESC',
                            'posts_a' => 'user_posts ASC',
                            'posts_d' => 'user_posts DESC',
                            'group_a' => 'group_name ASC',



... remplacer le code:

$sql = "SELECT u.{$f['user_id']} as user_id, u.user_level, {$f['username']} as user_name, {$f['email']} as user_email, {$f['regdate']} as user_regdate, {$f['lastvisit']} as user_lastvisit, 0 as pic_count ".
               "FROM {$this->usertable} AS u ".
               "WHERE u.{$f['user_id']} > 0 " . $options['search'].
               "GROUP BY u.{$f['user_id']} " . $sort .
   " LIMIT {$options['lower_limit']}, {$options['users_per_page']}";

... par le code:

$sql = "SELECT u.{$f['user_id']} as user_id, u.user_level, {$f['username']} as user_name, {$f['userposts']} as user_posts, {$f['email']} as user_email, {$f['regdate']} as user_regdate, {$f['lastvisit']} as user_lastvisit, 0 as pic_count ".
               "FROM {$this->usertable} AS u ".
               "WHERE u.{$f['user_id']} > 0 " . $options['search'].
               "GROUP BY u.{$f['user_id']} " . $sort .
   " LIMIT {$options['lower_limit']}, {$options['users_per_page']}";



  • Dans udb_base.inc.php :
... remplacer le code:

                        if (isset($this->usergroupstable)){
                                $sql = "SELECT u.{$f['user_id']} AS id, u.{$f['username']} AS username, u.{$f['password']} AS password, ug.{$f['usertbl_group_id']} AS group_id ".
                                           "FROM {$this->usertable} AS u, {$this->usergroupstable} AS ug ".
                                           "WHERE u.{$f['user_id']}=ug.{$f['user_id']} AND u.{$f['user_id']}='$id'";
                        } else {

... par le code:

                        if (isset($this->usergroupstable)){
                                $sql = "SELECT u.{$f['user_id']} AS id, u.{$f['username']} AS username, u.{$f['userposts']} AS user_posts, u.{$f['password']} AS password, ug.{$f['usertbl_group_id']} AS group_id ".
                                           "FROM {$this->usertable} AS u, {$this->usergroupstable} AS ug ".
                                           "WHERE u.{$f['user_id']}=ug.{$f['user_id']} AND u.{$f['user_id']}='$id'";
                        } else {



... remplacer le code:

        define('USER_NAME', addslashes($USER_DATA['user_name']));
        define('USER_GROUP', $USER_DATA['group_name']);

... par le code:

        define('USER_NAME', addslashes($USER_DATA['user_name']));
        define('USER_POSTS', addslashes($USER_DATA['user_posts']));
        define('USER_GROUP', $USER_DATA['group_name']);



... remplacer le code:

        function load_user_data($row)
        {

                global $USER_DATA;

                $USER_DATA['user_id'] = $row['id'];
        $USER_DATA['user_name'] = $row['username'];

... par le code:

        function load_user_data($row)
        {

                global $USER_DATA;

                $USER_DATA['user_id'] = $row['id'];
        $USER_DATA['user_name'] = $row['username'];
        $USER_DATA['user_posts'] = $row['user_posts'];



  • Dans french.php (... et les autres langues !!!) :
... remplacer le code:

'upload_pic_title' => 'Upload een bestanden in een albums',
'upload_pic_lnk' => 'Upload bestanden',
'register_title' => 'Creëer een account',
'register_lnk' => 'Registreer',

... par le code:

'upload_pic_title' => 'Upload een bestanden in een albums',
'upload_pic_lnk' => 'Upload bestanden',
'no_posts_enought' => 'Hallo %s, spijtig, enkel de actieve leden kunnen in de albums downloaden. Minimum %s berichten zijn gevraagd om de &quot;Galerij&quot; te kunnen gebruiken (jij hebt &quot;%s&quot; bericht[en]).',
'register_title' => 'Creëer een account',
'register_lnk' => 'Registreer',



... remplacer le code:

if (defined('USERMGR_PHP')) $lang_usermgr_php = array(
  'memberlist' => 'Liste des membres', //cpg1.4
  'user_manager' => 'Gestion utilisateurs', //cpg1.4
  'title' => 'Gérer les utilisateurs',
  'name_a' => 'Nom ascendant',
  'name_d' => 'Nom descendant',
  'group_a' => 'Groupe ascendant',

... par le code:

if (defined('USERMGR_PHP')) $lang_usermgr_php = array(
  'memberlist' => 'Liste des membres', //cpg1.4
  'user_manager' => 'Gestion utilisateurs', //cpg1.4
  'title' => 'Gérer les utilisateurs',
  'name_a' => 'Nom ascendant',
  'name_d' => 'Nom descendant',
  'posts_a' => 'Ascendant par messages',
  'posts_d' => 'Descendant par messages',
  'group_a' => 'Groupe ascendant',



... remplacer le code:

  'name' => 'Nom d\'utilisateur',
  'group' => 'Groupe',
  'inactive' => 'Inactif',

... par le code:

  'name' => 'Nom d\'utilisateur',
  'posts' => 'Messages',
  'group' => 'Groupe',
  'inactive' => 'Inactif',



  • Dans theme.php (ici, c'est celui de "Water_drop"):
remplacer le code:

if (!function_exists('theme_main_menu')) {  //{THEMES}
function theme_main_menu($which)
{
    global $AUTHORIZED, $CONFIG, $album, $actual_cat, $cat, $REFERER, $upload_access;
    global $lang_main_menu, $template_sys_menu, $template_sub_menu;

    static $sys_menu = '', $sub_menu = '';
    if ($$which != '') {
        return $$which;
    }

... par le code:

if (!function_exists('theme_main_menu')) {  //{THEMES}
function theme_main_menu($which)
{
    global $AUTHORIZED, $CONFIG, $album, $actual_cat, $cat, $REFERER, $upload_access;
    global $lang_main_menu, $template_sys_menu, $template_sub_menu;

    $minimun_msg = 50;   //Nombre minimu de messages pour pouvoir uploader des images dans la galerie
    define('MESSAGES_ENOUGHT', (USER_POSTS > ($minimun_msg-1) || USER_IS_ADMIN));
    $msg_no_upload = sprintf($lang_main_menu['no_posts_enought'], USER_NAME, $minimun_msg, USER_POSTS);
    $upload_access = (MESSAGES_ENOUGHT ? "upload.php" : "javascript:alert('" .  $msg_no_upload . "');");

    static $sys_menu = '', $sub_menu = '';
    if ($$which != '') {
        return $$which;
    }



remplacer le code:

        '{USR_MODE_TGT}' => "mode.php?admin_mode=0&amp;referer=$REFERER",
        '{USR_MODE_TITLE}' => $lang_main_menu['usr_mode_title'],
        '{USR_MODE_LNK}' => $lang_main_menu['usr_mode_lnk'],
        '{UPL_PIC_TITLE}' => $lang_main_menu['upload_pic_title'],
        '{UPL_PIC_LNK}' => $lang_main_menu['upload_pic_lnk'],

... par le code:

        '{USR_MODE_TGT}' => "mode.php?admin_mode=0&amp;referer=$REFERER",
        '{USR_MODE_TITLE}' => $lang_main_menu['usr_mode_title'],
        '{USR_MODE_LNK}' => $lang_main_menu['usr_mode_lnk'],
        '{UPL_PIC_TGT}' => $upload_access,
        '{UPL_PIC_TITLE}' => $lang_main_menu['upload_pic_title'],
        '{UPL_PIC_LNK}' => $lang_main_menu['upload_pic_lnk'],


----
Il est possible que j'aie fait une erreur ou l'autre mais il est un fait que ça fonctionne ainsi pour moi.

Si un spécialiste peut améliorer, j'en serai heureux.