[gelöst] Link aus Mitgliederliste auf einzelnes Mitglied

Begonnen von LiLiConsult, 14 Januar 2012, 11:02:59

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

LiLiConsult

Hallo @all,

die Accountdaten habe ich umfangreich erweitert ('mx_userfunctions_options.php') und die Bildschirmanzeigen entsprechend angepasst. Das funktioniert und ist fertig, bis auf das Thema 'Mehrere Bilder im Account', wozu es jedoch ein separates Posting gibt.

Entsprechend der Aufgabenstellung habe ich auch die Mitgliederliste (Modul 'Members_List') angepasst. Einerseits das Aussehen verändert, andererseits aber auch die verwendeten Daten (Datenbankfelder) verändert. So wird z. B. nicht mehr das Feld 'uname' verwendet, sondern ein neu in der Datenbanktabelle dafür angelegtes Feld. Überwiegend klappt das auch, die Anzeige stimmt und auch die (ebenfalls modifizierte) Sortierung funktioniert.

Lediglich der Link aus der Liste zum ausgesuchten Mitglied funktioniert nicht. Hier wird immer noch mit 'uname' gearbeitet, obwohl ich alle entsprechenden Stellen im Skript angepasst habe und nirgendwo noch ein 'uname' vorhanden ist.

Warum wird trotzdem noch 'uname' verwendet ? Wer kann mir den richtigen Tipp geben ?

Ich hänge mal den jetzigen Stand der 'index.php' aus dem Modul an und sage schon mal 'Vielen Dank' für jeden konstruktiven Hinweis.

Gruß
Wolfgang

<?php
/**
 * This file is part of
 * pragmaMx - Web Content Management System.
 * Copyright by pragmaMx Developer Team - http://www.pragmamx.org
 *
 * pragmaMx is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * $Revision: 1.15.6.7 $
 * $Author: tora60 $
 * $Date: 2010/11/21 18:13:27 $
 *
 * this file based on:
 * php-nuke Web Portal System - http://phpnuke.org/
 * Thatware - http://thatware.org/
 *
 * Based on MyPHPortal Modified MembersList
 * Some code taken from MemberList coded by Paul Joseph Thompson
 * of www.slug.okstate.edu
 * In memoriam of Members List War ;)
 */

defined('mxMainFileLoaded') or die('access denied');

$module_name basename(dirname(__FILE__));
mxGetLangfile($module_name);

$index 0// Rechte Bloecke? 0 = nein, 1 = ja
$letter 'all'// Standardauswahl
$sortby 'user_sortieren'// Standardsortierung
$pagesize 25// Anzahl der Zeilen in der Liste

define('MX_ML_IMAGEPATH'PMX_MODULES_PATH $module_name '/images/');
define('IMG_EDIT' mxCreateImage(MX_ML_IMAGEPATH 'edit.gif''edit', array('title' => _EDIT)));
define('IMG_DELE'mxCreateImage(MX_ML_IMAGEPATH 'delete.gif''delete', array('title' => _DELETE)));

$memlistletters = array ('all''A''B''C''D''E''F''G''H''I''J''K''L''M''N''O''P''Q''R''S''T''U''V''W''X''Y''Z''other');
if (isset(
$_GET['letter'])) {
    
$letter = (in_array($_GET['letter'], $memlistletters)) ? $_GET['letter'] : $letter;
}
if (isset(
$_GET['sortby'])) {
    
$memlistsortbys = array('user_sortieren''user_from''user_occ');
    
$sortby = (in_array($_GET['sortby'], $memlistsortbys)) ? $_GET['sortby'] : $sortby;
    unset(
$memlistsortbys);
}
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;

function 
alpha()
{
    
/* Creates the list of letters and makes them a link. */
    
global $sortby$module_name$memlistletters$letter;
    
$num count($memlistletters) - 1;
    echo 
"<center>[ ";
    
$counter 0;
    foreach (
$memlistletters as $ltr) {
        
$ltr_v mltransletter($ltr);
        if (
$ltr == $letter) {
            
$ltr_v '<b class="current">' $ltr_v '</b>';
        }
        echo 
'<a href="modules.php?name=' $module_name '&amp;letter=' $ltr '&amp;sortby=' $sortby '">' $ltr_v '</a>';
        if (
$counter == round($num 2)) {
            echo 
" ]<br />[ ";
        } else if (
$counter != $num) {
            echo 
"&nbsp;|&nbsp;";
        }
        
$counter++;
    }
    echo 
" ]</center><br />";
}

function 
SortLinks($letter// Makes order by links..
{
    global 
$sortby$module_name;
    echo 
"<center>"// Start of HTML
    
echo _SORTBY " [ ";
    if (
$sortby == "user_sortieren" OR !$sortby) {
        echo 
_Lp_FIRMA "&nbsp;|&nbsp;";
    } else {
        echo 
"<a href=\"modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=user_sortieren\">" _Lp_FIRMA "</a>&nbsp;|&nbsp;";
    }
    if (
$sortby == "user_occ") {
        echo 
_Lp_BRANCHE "&nbsp;|&nbsp;";
    } else {
        echo 
"<a href=\"modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=user_occ\">" _Lp_BRANCHE "</a>&nbsp;|&nbsp;";
    }
    if (
$sortby == "user_from") {
        echo 
_Lp_ORT "&nbsp;|&nbsp;";
    } else {
        echo 
"<a href=\"modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=user_from\">" _Lp_ORT "</a>";
    }
    echo 
" ]</center>"// end of HTML
}

function 
mltransletter($ltr)
{
    if (
$ltr == 'all') {
        return 
_MEMALL;
    }
    if (
$ltr == 'other') {
        return 
_MEMOTHER;
    }
    return 
$ltr;
}


$pagetitle _MEMBERSLIST;
include(
"header.php");
title(_MEMBERSLIST);
/* This is the header section that displays the last registered and who's logged in and whatnot */
$result sql_query("select user_sortieren from {$user_prefix}_users WHERE user_stat=1 order by uid DESC limit 0,1");
list(
$lastuser) = sql_fetch_row($result);
list(
$numrows) = sql_fetch_row(sql_query("select count(uid) from {$user_prefix}_users WHERE user_stat=1"));

OpenTable();
echo 
'<center>' _Lp_GREETINGS ' ' mxCreateUserprofileLink($lastuser) . '</center><br />';

if (
MX_IS_USER || MX_IS_ADMIN) {
    
$member_online_num 0;
    
$past time() - MX_SETINACTIVE_MINS ;
    
$result2 sql_query("SELECT user_sortieren FROM {$user_prefix}_users
WHERE ((user_lastvisit >= " 
$past ") AND (user_stat=1) AND (user_lastmod<>'logout'))
ORDER BY user_sortieren"
); 

    while (list(
$username) = sql_fetch_row($result2)) {
        
$list[] = mxCreateUserprofileLink($username);
        
$member_online_num++;
    }
    
$who_online = (isset($list)) ? implode(" - "$list) : "";
    echo 
"<center>" _WEHAVE " <b>" $numrows "</b> " _Lp_MREGISTERED " <b>" $member_online_num "</b> " _Lp_MREGONLINE "</center><br />";
    if (
$member_online_num) {
        
OpenTable2();
        echo 
"<center><b>" _Lp_ONLINEREG " </b><br /><br />" $who_online "</center>";
        
CloseTable2();
        echo 
'<br />';
    }
} else {
    echo 
"<center>" _WEHAVE " <b>$numrows</b> " _Lp_REGSOFAR "</center><br /><br />";
}

alpha();
SortLinks($letter);

$min $pagesize * ($page 1); // This is where we start our record set from
$max $pagesize// This is how many rows to select

/* All my SQL stuff. DO NOT ALTER ANYTHING UNLESS YOU KNOW WHAT YOU ARE DOING */

/* This is a totaly crap code, any help to re-code this functions will be very appreciated */
/* Need to be database independent */

$count "SELECT COUNT(uid) AS total FROM {$user_prefix}_users "// Count all the users in the db..
$select "SELECT uid, user_sortieren, user_gewerbe, user_occ, user_from FROM {$user_prefix}_users "//select our data
$where "where user_sortieren <> 'Anonymous' AND user_stat=1 ";
if ((
$letter != 'other') && ($letter != 'all')) { // are we listing all or "other" ?
    
$where .= "AND user_sortieren LIKE '" $letter "%' ";
} else if (
$letter == 'other') { // But other is numbers ?
    
$where .= "AND user_sortieren REGEXP '^\[1-9]' "
}

$sort "order by $sortby"//sorty by .....
$limit " ASC LIMIT " $min ", " $max// we only want rows $min  to $max
/* due to how this works, i need the total number of users per
letter group, then we can hack of the ones we want to view */
$count_result sql_query($count $where);
list(
$num_rows_per_order) = sql_fetch_row($count_result);

/* This is where we get our limit'd result set. */
$result sql_query($select $where $sort $limit); # or die(); // Now lets do it !!

/* Crap code ends here */

echo '<br />';

echo 
"<table width=\"100%\" border=\"0\" cellspacing=\"1\" class=\"full list\"><tr>";
echo 
"<th>" _Lp_FIRMA "</th>";
echo 
"<th>" _Lp_GEWERBE "</th>";
echo 
"<th>" _Lp_BRANCHE "</th>";
echo 
"<th>" _Lp_ORT "</th>";
$cols 4;

if (
MX_IS_ADMIN) {
$cols++;
echo "<th>" _FUNCTIONS "</th>";
}
echo 
"</tr>";

$num_users sql_num_rows($result); //number of users per sorted and limit query
if ($num_rows_per_order 0) {
    
$dclass '';
    while (
$theuser sql_fetch_array($result)) {
        
$dclass = ($dclass != 'alternate-a') ? 'alternate-a' 'alternate-b';
        echo 
'<tr class="' $dclass '"><td>' mxCreateUserprofileLink($theuser['user_sortieren']) . '&nbsp;</td>';
        echo 
"<td>" $theuser['user_gewerbe'] . "&nbsp;</td>";
        echo 
"<td>" $theuser['user_occ'] . "&nbsp;</td>";
        echo 
"<td>" $theuser['user_from'] . "&nbsp;</td>";


        if (
MX_IS_ADMIN) {
            echo 
"
<td align=\"center\">
<a href=\"admin.php?chng_uid=
$theuser[uid]&amp;op=modifyUser\">" IMG_EDIT "</a>&nbsp;
<a href=\"admin.php?op=delUser&amp;chng_uid=
$theuser[uid]\">" IMG_DELE "</a>
</td>"
;
        }

        echo 
"</tr>";
    }
} else { 
// you have no members on this letter, hahaha
    
echo "<tr><td class=\"alternate\" colspan=\"$cols\" align=\"center\"><br />";
    echo 
"<b>" _Lp_NOMEMBERS " &quot;" mltransletter($letter) . "&quot;</b>";
    echo 
"<br /><br /></td></tr>";
}

echo 
"</table>";

if (
$num_rows_per_order 0) {
    echo 
"<table class=\"full\" cellspacing=\"0\" cellpadding=\"6\" border=\"0\"><tr>";

    if (
$num_rows_per_order $pagesize) {
        
$total_pages ceil($num_rows_per_order $pagesize); // How many pages are we dealing with here ??
        
$prev_page $page 1;

        if (
$prev_page 0) {
            echo 
"<td align='left' width='15%'><a href='modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=$sortby&amp;page=$prev_page'>";
            echo 
mxCreateImage(PMX_IMAGE_PATH 'previous.png'_PREVIOUS, array('title' => _PREVIOUS ' (' $prev_page ')'));
            echo 
"</a></td>";
        } else {
            echo 
"<td width='15%'>&nbsp;</td>";
        }

        echo 
"<td align='center' width='70%' class='tiny'>";
        echo 
"$num_rows_per_order " _Lp_USERSFOUND " <b>&quot;" mltransletter($letter) . "&quot;</b> ($total_pages " _PAGES ", $num_users " _Lp_USERSSHOWN ")";
        echo 
"</td>";

        
$next_page $page 1;
        if (
$next_page <= $total_pages) {
            echo 
"<td align='right' width='15%'><a href='modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=$sortby&amp;page=$next_page'>";
            echo 
mxCreateImage(PMX_IMAGE_PATH 'next.png'_NEXTPAGE, array('title' => _NEXTPAGE ' (' $next_page ')'));
            echo 
"</a></td>";
        } else {
            echo 
"<td width='15%'>&nbsp;</td></tr>";
        }
        
/* Added a numbered page list, only shows up to 50 pages. */

        
echo "<tr><td colspan=\"3\" align=\"center\" class=\"tiny\">";
        echo 
" [ ";

        for(
$n 1$n $total_pages$n++) {
            if (
$n == $page) {
                echo 
"<b>$n</b>";
            } else {
                echo 
"<a href=\"modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=$sortby&amp;page=$n\">$n</a>";
            }
            if (
$n >= 50) { // if more than 50 pages are required, break it at 50.
                
$break true;
                break;
            } else { 
// guess not.
                
echo " | ";
            }
        }

        if (!isset(
$break)) { // are we sopposed to break ?
            
if ($n == $page) {
                echo 
"<b>$n</b>";
            } else {
                echo 
"<a href=\"modules.php?name=" $module_name "&amp;letter=$letter&amp;sortby=$sortby&amp;page=$total_pages\">$n</a>";
            }
        }
        echo 
" ] ";
        echo 
"</td></tr>";

        
/* This is where it ends */
    
} else { // or we dont have any users..
        
echo "<td align='center' class=\"tiny\">";
        echo 
"$num_rows_per_order " _Lp_USERSFOUND " &quot;" mltransletter($letter) . "&quot;";
        echo 
"</td></tr>";
    }

    echo 
"</table>";
}

CloseTable();

include(
"footer.php");

?>
Sage mir nicht, warum es nicht geht ... sage mir, wie es geht !


CMS-Version pragmaMx 1.12.3.1.33.4.14 (2012-06-21)
PHP-Version: 5.3.10
MySQL-Version: 5.1.61-0+squeeze1
Server-Version: Apache

anmShinichi

Ich habe in der index.php die Funktion mxCreateUserprofileLink, die wird bei mir in der mx_api.php (include/) ab Zeile 2099 erstellt. Dort wird dann auch der Link generiert mit der uname!

Zeile 2129:  return '<a href="modules.php?name=Userinfo&amp;uname=' . urlencode($uname) . '"' . $title . ' rel="nofollow"' . $option . '>' . $text . $linktagclose;
MonsterWorks - www.monsterworks.de

LiLiConsult

Hallo anmShinichi,

das ist genau die richtige Stelle. Jetzt klappt es.

Vielen Dank

Gruß
Wolfgang
Sage mir nicht, warum es nicht geht ... sage mir, wie es geht !


CMS-Version pragmaMx 1.12.3.1.33.4.14 (2012-06-21)
PHP-Version: 5.3.10
MySQL-Version: 5.1.61-0+squeeze1
Server-Version: Apache