Edit the info displayed under thumbnails Edit the info displayed under thumbnails
 

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

Edit the info displayed under thumbnails

Started by toptangas, September 06, 2012, 05:50:49 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

toptangas

Hello, I´d like to add some required fields when uploading files. Username, email and country. In the case of country, I´d like to use a drop down list, but I don´t know how to do it. Also when someone registers I want to use the drop down list for the country field (I set up user_profile1 as required). This is because I want to show the country of the uploader next to his name under the thumbnail. So that, when clicking, it displays all the pictures of uploaders from that country. You can call it "sorting by country".
I´d appreciate your help.
My site is www.toptangas.com [NSFW]

Αndré

What's the actual question? You already set user_profile1 as required (which contains the user's country), so all relevant data should be already available. I think you now just need the country dropdown box?

toptangas

Hi André,
I´m stuck in 4 issues:
1- As you said, the country dropdown box in the register page (like the one used in this site).
2- As I will allow unregistered users to upload files, I want to add 3 required fields in the upload page (in both methods: simple and swfupload). These fields are username, email and country (dropdown).
3- I want to show the country of the uploader under the thumbnails.
4- When I click the country, I want to display all the pictures from that country, no mattering the uploader.
I wish now my doubts are clearer.
Thanks a lot.

toptangas


Αndré

Quote from: toptangas on September 06, 2012, 03:29:27 PM
As I will allow unregistered users to upload files, I want to add 3 required fields in the upload page (in both methods: simple and swfupload). These fields are username, email and country (dropdown).
Why do you want to require username and email address? Where should that data be stored and where should it be displayed?

What do you think about an auto-detection of the country via the users' IP addresses?

toptangas

Hello,
Just as when an unregistered user tries to contact through contact.php and has to fill with his name and email, I would like to use this method when unregistered user upload files (if possible).
I think that the best place to store this info is in the "pictures table"
I would like to show the country where "files information" appears and underneath pictures thumbnails.
As seen in the attached file in yellow.

I think that auto-detection of the country via the users' IP addresses should work. But where is it stored and how can I handle to do what I want?

Thanks for your help.

Αndré

Quote from: Αndré on September 11, 2012, 12:38:07 PM
Where should that data (username and email address) be stored and where should it be displayed?

I ask as there's no straightforward solution for the flash uploader. As-is, files will uploaded prior you enter any data. At this point, they already exist in your gallery and you'd have to delete them if the uploader doesn't fill in the required data. So there's currently no way to reject files. Maybe it's possible to add some extra fields to the page where you select the album and just enable the "browse" button if all required data is set. But as such a mod is probably not created in 5 to 10 minutes I want to avoid senseless coding effort.

Instead, appending the users' IP addresses (or country names) to each picture row can be added quite easily. If you want to have valid user data (name and email address) I suggest to disable guest uploads.

toptangas

Ok I agree with you André. The first option is not done quite easily.

I guess I will only allow upload from registered users.

Perhaps the field "user_profile1" can be used to store the country (using a drop list).
This info could be filled during registration. Actually, now is required but not with drop list.

The other way, as you suggest, would be getting the IP address from the uploader (I don´t know
where to find it) and transforming it to a country name.

And then, when displaying the thumbnails, an extra row with the country name can be added under
the uploader name. And also as another field in the picture info.

Both methods are good for me. The results I´m looking for are:
- show the country name of the uploader as another info field for each picture
- add one row with the country name under the user name under each thumbnail (as shown in the attached file of the other post)
- when clicking the country name, sort all the pictures from that country, no mattering the user.

Thanks a lot

toptangas

Hello guys, any answer about this post?

I´ve been seeking the database and found in the pictures table that both columns, pic_raw_ip and pic_hdr_ip, are empty for every picture. Is that normal??

Thanks.

Αndré

Quote from: toptangas on September 19, 2012, 03:46:33 PM
I´ve been seeking the database and found in the pictures table that both columns, pic_raw_ip and pic_hdr_ip, are empty for every picture.
Without checking the code nor the docs, those fields will only be set for guest uploads if I remember correctly.


Quote from: toptangas on September 15, 2012, 02:16:30 AM
when clicking the country name, sort all the pictures from that country, no mattering the user.
For performance and code simplicity reasons I think we should drop the idea of determining the country automatically via the IP address.


As this is a very individual and time consuming request (if it's a support request at all), I have to enqueue it at the bottom of my to-do list.

toptangas

Ok, no problem Andre.
But don´t forget please. LOL

Thanks for your patience and your time.

toptangas

#11
Hello again!

I´d like to ask if it´s possible to add the user_profile1 column content from TABLE_USERS underneath thumbnails just under the username.


Thanks in advance.

link: www.toptangas.com [NSFW]

toptangas

Quote from: toptangas on October 15, 2012, 09:51:05 PM
I´d like to ask if it´s possible to add the user_profile1 column content from TABLE_USERS underneath thumbnails just under the username.

André, Jeff... any help for this question????

Thanx

Jeff Bailey

#13
Try adding this to your custom theme.php

/******************************************************************************
** Section <<<theme_display_thumbnails>>> - START
******************************************************************************/
function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode = 'thumb', $date='')
{
    global $CONFIG, $CURRENT_ALBUM_DATA;
    global $template_thumb_view_title_row,$template_fav_thumb_view_title_row, $lang_thumb_view, $lang_common, $template_tab_display, $template_thumbnail_view, $lang_album_list, $lang_errors;

    $superCage = Inspekt::makeSuperCage();

    static $header = '';
    static $thumb_cell = '';
    static $empty_cell = '';
    static $row_separator = '';
    static $footer = '';
    static $tabs = '';
    static $spacer = '';

    if ($header == '') {
        $thumb_cell = template_extract_block($template_thumbnail_view, 'thumb_cell');
        $tabs = template_extract_block($template_thumbnail_view, 'tabs');
        $header = template_extract_block($template_thumbnail_view, 'header');
        $empty_cell = template_extract_block($template_thumbnail_view, 'empty_cell');
        $row_separator = template_extract_block($template_thumbnail_view, 'row_separator');
        $footer = template_extract_block($template_thumbnail_view, 'footer');
        $spacer = template_extract_block($template_thumbnail_view, 'spacer');
    }

    $cat_link = is_numeric($aid) ? '' : '&amp;cat=' . $cat;
    $date_link = $date=='' ? '' : '&amp;date=' . $date;
    if ($superCage->get->getInt('uid')) {
      $uid_link = '&amp;uid=' . $superCage->get->getInt('uid');
    } else {
      $uid_link = '';
    }

    $album_types = array(
        'albums' => array('lastalb')
    );
    $album_types = CPGPluginAPI::filter('theme_thumbnails_album_types', $album_types);

    $theme_thumb_tab_tmpl = $template_tab_display;

    if ($mode == 'thumb') {
        $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => in_array($aid, $album_types['albums']) ? $lang_album_list['album_on_page'] : $lang_thumb_view['pic_on_page']));
        $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $date_link . $uid_link . '&amp;page=%d'));
    } else {
        $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_thumb_view['user_on_page']));
        $theme_thumb_tab_tmpl['page_link'] = strtr($theme_thumb_tab_tmpl['page_link'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
    }

    $thumbcols = $CONFIG['thumbcols'];
    $cell_width = ceil(100 / $CONFIG['thumbcols']) . '%';

    $tabs_html = $display_tabs ? create_tabs($nbThumb, $page, $total_pages, $theme_thumb_tab_tmpl) : '';

    if (!GALLERY_ADMIN_MODE && stripos($template_thumb_view_title_row, 'admin_buttons') !== false) {
        template_extract_block($template_thumb_view_title_row, 'admin_buttons');
    }
    // The sort order options are not available for meta albums
    if ($sort_options) {
        if (GALLERY_ADMIN_MODE) {
            $param = array(
                '{ALBUM_ID}'   => $aid,
                '{CAT_ID}'     => ($cat > 0 ? $cat : $CURRENT_ALBUM_DATA['category']),
                '{MODIFY_LNK}'     => $lang_common['album_properties'],
                '{MODIFY_ICO}'     => cpg_fetch_icon('modifyalb', 1),
                '{PARENT_CAT_LNK}' => $lang_common['parent_category'],
                '{PARENT_CAT_ICO}' => cpg_fetch_icon('category', 1),
                '{EDIT_PICS_LNK}'  => $lang_common['edit_files'],
                '{EDIT_PICS_ICO}'  => cpg_fetch_icon('edit', 1),
                '{ALBUM_MGR_LNK}'  => $lang_common['album_manager'],
                '{ALBUM_MGR_ICO}'  => cpg_fetch_icon('alb_mgr', 1),
            );
        } else {
            $param = array();
        }
        $param['{ALBUM_NAME}'] = $album_name;
        // Plugin Filter: allow plugin to modify or add tags to process
        $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);
        $title = template_eval($template_thumb_view_title_row, $param);
    } elseif ($aid == 'favpics' && $CONFIG['enable_zipdownload'] > 0) { //Lots of stuff can be added here later
        $param = array(
            '{ALBUM_ID}'   => $aid,
            '{ALBUM_NAME}' => $album_name,
            '{DOWNLOAD_ZIP}' => cpg_fetch_icon ('zip', 2) . $lang_thumb_view['download_zip'],
        );
        // Plugin Filter: allow plugin to modify or add tags to process
        $param = CPGPluginAPI::filter('theme_thumbnails_title', $param);       
        $title = template_eval($template_fav_thumb_view_title_row, $param);
    } else {
        $title = $album_name;
    }

    CPGPluginAPI::action('theme_thumbnails_wrapper_start', null);

    if ($mode == 'thumb') {
        starttable('100%', $title, $thumbcols);
    } else {
        starttable('100%');
    }

    echo $header;

    $i = 0;
    global $thumb;  // make $thumb accessible to plugins
    foreach($thumb_list as $thumb) {
        $i++;
$query_ownerid = "SELECT owner_id FROM {$CONFIG['TABLE_PICTURES']} WHERE pid={$thumb['pid']}";
$result_ownerid = cpg_db_query($query_ownerid);
$assoc_ownerid = mysql_fetch_assoc($result_ownerid);
$ownerid_data = $assoc_ownerid['owner_id'];
$query_profile1 = "SELECT user_profile1 FROM {$CONFIG['TABLE_USERS']} WHERE user_id={$ownerid_data}";
$result_profile1 = cpg_db_query($query_profile1);
$assoc_profile1 = mysql_fetch_assoc($result_profile1);
$user_profile1_data = $assoc_profile1['user_profile1'];
        if ($mode == 'thumb') {
            if (in_array($aid, $album_types['albums'])) {
                $params = array(
                    '{CELL_WIDTH}' => $cell_width,
                    '{LINK_TGT}'   => "thumbnails.php?album={$thumb['aid']}",
                    '{THUMB}'      => $thumb['image'],
                    '{CAPTION}'    => $thumb['caption'] . $user_profile1_data,
                    '{ADMIN_MENU}' => $thumb['admin_menu'],
                );
            } else {
                // determine if thumbnail link targets should open in a pop-up
                if ($CONFIG['thumbnail_to_fullsize'] == 1) { // code for full-size pop-up
                    if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
                       $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['login_needed'],'','','','').'\');';
                    } elseif (USER_ID && USER_ACCESS_LEVEL <= 2) {
                        $target = 'javascript:;" onclick="alert(\''.sprintf($lang_errors['access_intermediate_only'],'','','','').'\');';
                    } else {
                       $target = 'javascript:;" onclick="MM_openBrWindow(\'displayimage.php?pid=' . $thumb['pid'] . '&fullsize=1\',\'' . uniqid(rand()) . '\',\'scrollbars=yes,toolbar=no,status=no,resizable=yes,width=' . ((int)$thumb['pwidth']+(int)$CONFIG['fullsize_padding_x']) .  ',height=' .   ((int)$thumb['pheight']+(int)$CONFIG['fullsize_padding_y']). '\');';
                    }
                } elseif ($aid == 'random') {
                    $target = "displayimage.php?pid={$thumb['pid']}$uid_link#top_display_media";
                } elseif ($aid == 'lastcom' || $aid == 'lastcomby') {
                    $page = cpg_get_comment_page_number($thumb['msg_id']);
                    $page = (is_numeric($page)) ? "&amp;page=$page" : '';
                    $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link&amp;msg_id={$thumb['msg_id']}$page#comment{$thumb['msg_id']}";
                } else {
                    $target = "displayimage.php?album=$aid$cat_link$date_link&amp;pid={$thumb['pid']}$uid_link#top_display_media";
                }
                $params = array(
                    '{CELL_WIDTH}' => $cell_width,
                    '{LINK_TGT}'   => $target,
                    '{THUMB}'      => $thumb['image'],
                    '{CAPTION}'    => $thumb['caption'] . $user_profile1_data,
                    '{ADMIN_MENU}' => $thumb['admin_menu'],
                );
            }

        } else {  // mode != 'thumb'

            // Used for mode = 'user' from list_users() in index.php
            $params = array(
                '{CELL_WIDTH}' => $cell_width,
                '{LINK_TGT}'   => "index.php?cat={$thumb['cat']}",
                '{THUMB}'      => $thumb['image'],
                '{CAPTION}'    => $thumb['caption'] . $user_profile1_data,
                '{ADMIN_MENU}' => '',
            );

        }

        // Plugin Filter: allow plugin to modify or add tags to process
        $params = CPGPluginAPI::filter('theme_display_thumbnails_params', $params);
        echo template_eval($thumb_cell, $params);

        if ((($i % $thumbcols) == 0) && ($i < count($thumb_list))) {
            echo $row_separator;
        }
    } // foreach $thumb

    unset($thumb);  // unset $thumb to avoid conflicting with global

    for (;($i % $thumbcols); $i++) {
        echo $empty_cell;
    }
    $footer = CPGPluginAPI::filter('theme_thumbnails_footer', $footer);
    echo $footer;

    if ($display_tabs) {
        $params = array(
            '{THUMB_COLS}' => $thumbcols,
            '{TABS}'       => $tabs_html,
        );
        echo template_eval($tabs, $params);
    }

    endtable();
    CPGPluginAPI::action('theme_thumbnails_wrapper_end', null);
    echo $spacer;
}
/******************************************************************************
** Section <<<theme_display_thumbnails>>> - END
******************************************************************************/

Untested
Thinking is the hardest work there is, which is probably the reason why so few engage in it. - Henry Ford

toptangas

It works great!!

I really admire you guys!!!  Solving problems selflessly...

One last thing if possible. Is there a way to sort pictures by "user_profile1" when clicking it??

Thank you very much.


Jeff Bailey

Not possible using the theme or without making some edits to thumbnails.php AFAIK

Maybe you can make meta albums and change the code to be a link to those meta albums.
http://forum.coppermine-gallery.net/index.php/topic,63706.0.html

I don't have the time to look through that right now but maybe when Αndré comes on he can give details for how to do that.
Thinking is the hardest work there is, which is probably the reason why so few engage in it. - Henry Ford

toptangas

No problem Jeff.  :)
I´m not in a hurry. This can wait. You have already done so much for me....

Thanx again.