Inhalt von lastcom ändern - Page 2 Inhalt von lastcom ändern - Page 2
 

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

Inhalt von lastcom ändern

Started by Shana_HH, March 14, 2008, 04:37:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Shana_HH

Quote from: Joachim Müller on March 23, 2008, 12:51:11 PM
Keine Änderungen von include/themes.inc.php! Alles, was man dort manipulieren kann findet sich auch in themes/dein_theme/theme.php

Sorry GauGau ... hier das Ganze noch mal in korrigierter Form:

1. theme.php
1.1
Suche: $template_sub_menu = <<<EOT
ergänze mit:<li><a href="{MOSTCOM_TGT}" title="{MOSTCOM_LNK}">{MOSTCOM_LNK}</a></li>

1.2
Suche:
if (!isset($sub_menu_buttons))
Ersetze:
} //{THEMES}
mit:
addbutton($sub_menu_buttons, '{MOSTCOM_LNK}', '{MOSTCOM_TITLE}', '{MOSTCOM_TGT}', 'mostcom', $template_sub_menu_spacer);
} //{THEMES}


1.3
Suche:
if (!$CONFIG['custom_lnk_url']) {
        template_extract_block($template_sub_menu, 'custom_link');
    }

    $param = array(

Ersetze:
  );
    $sub_menu = template_eval($template_sub_menu, $param);
  }

Mit:
'{MOSTCOM_TGT}' => "thumbnails.php?album=mostcom$cat_l2",
'{MOSTCOM_TITLE}' => $lang_main_menu['mostcom_title'],
'{MOSTCOM_LNK}' => $lang_main_menu['mostcom_lnk'],
  );
    $sub_menu = template_eval($template_sub_menu, $param);
  }



2. function.inc.php
Suche:
// Meta albums
        switch($album){

Ersetze
break;

mit:
break;

case 'mostcom': // Most commented pictures
                if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                        $album_name = $album_name = $lang_meta_album_names['mostcom'].' - '. $CURRENT_CAT_NAME;
                } else {
                        $album_name = $lang_meta_album_names['mostcom'];
                }

                // Replacing the AND in ALBUM_SET with AND (
                if($META_ALBUM_SET){
                        $TMP_SET = "AND (" . substr($META_ALBUM_SET, 3);
                }else{
                        $TMP_SET = "AND (1";
                }

               $query = "SELECT COUNT(*) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE approved = 'YES' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid $META_ALBUM_SET";
$result = cpg_db_query($query);

                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);
                $select_columns = '*'; //allows building any data into any thumbnail caption
                if($select_columns == '*'){
                  $select_columns = 'p.*';
                } else {
                  $select_columns = str_replace('pid', 'c.pid', $select_columns).'';
                }

                $TMP_SET = str_replace($CONFIG['TABLE_PICTURES'],'p',$TMP_SET);
                $query = "SELECT $select_columns FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid $META_ALBUM_SET GROUP by p.pid ORDER by msg_id DESC $limit";
                $result = cpg_db_query($query);

                $rowset = cpg_db_fetch_rowset($result);
                mysql_free_result($result);

                if ($set_caption) build_caption($rowset);

                $rowset = CPGPluginAPI::filter('thumb_caption_mostcom',$rowset);

                return $rowset;
                break;



3. german.php / german_sie.php
3.1
Suche:
$lang_meta_album_names = array(
Ergänze vor:
);
mit:
'mostcom' => 'am meisten kommentiert',

3.2
Suche:
$lang_main_menu = array(
ergänze vor ); mit
'mostcom_title' => 'Zeige die am meisten kommentierten Dateien an',
'mostcom_lnk' => 'Am meisten kommentiert',



4. index.php
Suche:
foreach ($elements as $element) {:
Ersetze break; mit
break;
case 'mostcom':
display_thumbnails('mostcom', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false);
flush();
break;


Viele Grüße
Ulrike

Joachim Müller

Gute Arbeit - Danke für die Berichtigung. Werde Deinen Mod bei Gelegenheit mal testen.

Shana_HH


Joachim Müller

Habe Deine Änderungen mal genauer unter die Lupe genommen und in meiner Testgalerie implementiert (mit dem Ziel, das neue Meta-Album eventuell in cpg1.5.x einfliessen zu lassen). Leider funktioniert der Mod nicht so wie erwartet: die query$query = "SELECT $select_columns FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid $META_ALBUM_SET GROUP by p.pid ORDER by msg_id DESC $limit";erzeugt eine Sortierung nach id, was wenig sinnvoll ist - ein Meta-Album namens "am meisten kommentiert" sollte das am meisten kommentierte Bild als erstes zeigen, anschließend sollte das Bild mit den zweitmeisten Kommentaren kommen und so weiter. Außerdem stimmt mit der Paginierung etwas nicht: es wird mir die Paginierung angezeigt, obwohl es keine zweite Seite gibt.
Sorry, dass ich hier den Spielverderber geben muss, aber da steckt wohl noch etwas Arbeit drin.

Gruß Joachim

Shana_HH

Hi Joachim,

danke für den Tipp und mit dem Hinweis bist Du doch kein Spielverderber! Mir war das noch gar nicht aufgefallen ... ich werd' mal schauen ob und wie ich das ohne wirkliche  PHP- bzw. MySQL-Kenntnisse besser hinbekomme :). Das kann ein bisserl dauern, aber wenn ich es schaffen sollte, poste ich hier natürlich noch mal ne Korrektur ...

Viele Grüße und ein schönes Wochenende
Ulrike

Αndré

Quote from: Joachim Müller on March 28, 2008, 08:00:00 AM
Habe Deine Änderungen mal genauer unter die Lupe genommen und in meiner Testgalerie implementiert (mit dem Ziel, das neue Meta-Album eventuell in cpg1.5.x einfliessen zu lassen). Leider funktioniert der Mod nicht so wie erwartet: die query$query = "SELECT $select_columns FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid $META_ALBUM_SET GROUP by p.pid ORDER by msg_id DESC $limit";erzeugt eine Sortierung nach id, was wenig sinnvoll ist - ein Meta-Album namens "am meisten kommentiert" sollte das am meisten kommentierte Bild als erstes zeigen, anschließend sollte das Bild mit den zweitmeisten Kommentaren kommen und so weiter. Außerdem stimmt mit der Paginierung etwas nicht: es wird mir die Paginierung angezeigt, obwohl es keine zweite Seite gibt.
Sorry, dass ich hier den Spielverderber geben muss, aber da steckt wohl noch etwas Arbeit drin.

Gruß Joachim

fuer die richtige sortierung sollte folgendes helfen..
SELECT $select_columns, COUNT(*) AS anzahl
FROM {$CONFIG['TABLE_COMMENTS']} c
INNER JOIN {$CONFIG['TABLE_PICTURES']} p
ON p.pid = c.pid
WHERE approved = 'YES' $META_ALBUM_SET
GROUP by p.pid
ORDER by anzahl DESC $limit";



@Shana_HH: ich hab dir neulich das hier gezeigt: http://forum.coppermine-gallery.net/index.php/topic,23945.msg111544.html#msg111544

dort steht unter anderem auch code fuer "mostcom"
        case 'mostcom': //Most Commented Images

$album_name = "Most Commented Images";

$query = "SELECT pid FROM {$CONFIG['TABLE_COMMENTS']}";
$result = cpg_db_query($query);
$rowset = cpg_db_fetch_rowset($result);
mysql_free_result($result);

foreach($rowset as $row)
{
$index = $row[0];
$mostCommented[$index] = @$mostCommented[$index] + 1;
}

$count = count($mostCommented);

arsort($mostCommented, SORT_NUMERIC);
foreach(array_slice(array_keys($mostCommented),$limit1,$limit2) as $image)
{
$query = "SELECT * FROM {$CONFIG['TABLE_PICTURES']} as p WHERE p.pid = '$image' ";
$result = cpg_db_query($query);
$rowsets[] = cpg_db_fetch_rowset($result);
mysql_free_result($result);
}

$rowset = array();
foreach($rowsets as $row)
{
$rowset[] = $row[0];
}

$preVal = $CONFIG['display_comment_count'];
$CONFIG['display_comment_count'] = 1;
                if ($set_caption) build_caption($rowset,array('ctime'));
$CONFIG['display_comment_count'] = $preVal;

                return $rowset;
                break;

das ist zwar meiner meinung nach umstaendlicher geloest, aber es funktioniert auf jedenfall .. siehe hier: http://photoalbum.ph.funpic.de/cpg/thumbnails.php?album=mostcom


-
muu

boomsai

Hallo Zusammen

Ist es auch möglich die "Benutzeralben auf der Startseite der Galerie anzeigen zu lassen?

lg, Marcel

Αndré

Hat nichts mit diesem Thema zu tun. Erstell dein eigenes Thema und erläutere dort genauer, was du überhaupt vor hast.

Thema gesperrt.