hallo,
ich bräuchte noch ein paar profil felder mehr. gibt es da ein plugin für.
oder eine anleitung wie man zusätliche profilfelder einbaut.
brauche felder mit eingabe, textblock, checkbox.
gruss ralf
Ein Plugin für genau diesen Zweck gibt es nicht. Soweit ich weiß, fügt das Plugin "cpgShop" neue Profilfelder hinzu, jedoch lässt der Name schon vermuten, dass der eigentliche Zweck des Plugins ein ganz anderer ist. Evtl. kann man das Plugin entsprechend kastrieren. Ich bin mir gerade auch nicht sicher, ob es hier im Forum schon entsprechende Mods gibt. Im Zweifelsfall musst du bei 0 starten, sollte jedoch nicht all zu schwer sein (Datenbank, Backend und Frontends erweitern).
hi,
schade das es kein plugin dafür gibt.
gibt es den irgend wo eine anleitung, den meine php kentnisse werden dafür nicht ausreichen.
benötiege noch 34 zusäzliche felder.
18 felder, immer 1 feld mit 3 checkboxen zur auswahl (nur 1 makierbar) aber die anzeige im profil soll eine grafik oder nur eine farbe sein grün, rot, gelb (z.b) die als hintergund in einer tabelle oder div container darstellt. oder vor einer zeile eine grafik mit einem grünen haken, gelber punkt und rotes kreuz.
13 felder nur mit einzeiliger text eingabe
1 feld für textblock
2 felder wo man je ein bilder hochladen kann das eine bestimmte größe hat.
den das profi ist sehr wichtig für meine umsetzung.
gruss ralf
Quote from: ralf45_nrw on August 28, 2013, 02:32:17 PM
3 checkboxen zur auswahl (nur 1 makierbar)
Das ist dann ein Radio-Button, keine Checkbox.
Die Anzeige im Profil ist meiner Meinung nach erstmal egal, da wir die Werte überhaupt erstmal eingeben und speichern müssen, bevor wir sie irgendwo anzeigen.
In Coppermine gibt es 2 Arten Benutzer anzulegen. Entweder der Admin erledigt das, oder die Benutzer registrieren sich selbst. Welche Variante(n) ist/sind bei dir vorgesehen? Sollen diese Angaben überhaupt schon beim anlegen/registrieren eingefügt werden, oder reicht es auch, wenn die Nutzer ihr Profil später vervollständigen? Dann können wir uns ggf. sparen alles davon anpassen zu müssen.
Quote from: ralf45_nrw on August 28, 2013, 02:32:17 PM
2 felder wo man je ein bilder hochladen kann das eine bestimmte größe hat.
Sollte möglich sein, ein paar genauere Angaben wären aber hilfreich. Bilder in der falschen Größe (damit meinst du die Abmessungen, nicht die Dateigröße, oder?) werden generell abgelehnt?
hi,
1. richtig radi-button
2.der user soll später nach der anmeldung sein profil ausfüllen können.
3. ich meine die abmessung des bildes soll eine bestimmte grösse haben z.b. 1, bild 800x300, 2. bild 300x400
gruss ralf
Quote from: ralf45_nrw on August 28, 2013, 02:55:46 PM
hi,
1. richtig radio-button
2.der user soll später nach der anmeldung sein profil ausfüllen können.
3. ich meine die abmessung des bildes soll eine bestimmte grösse haben z.b. 1, bild 800x300, 2. bild 300x400
gruss ralf
Schritt 1: Frontend
Öffne die Datei profile.php und suche nach
$edit_profile_form_param[]
Ich denke hier erkennst du schon selbst, wie das Formular zustande kommt. Je nachdem wo du nun deine weiteren Felder haben möchtest, musst du deinen neuen Code entsprechend einfügen. Ich füge die neuen Felder hier exemplarisch einfach mal hinter die benutzerdefinierten Felder ein. D.h. suche nach
$edit_profile_form_param[] = array('text', 'disk_usage', cpg_fetch_icon('disk_usage', 2) . $lang_register_php['disk_usage']);
und davor kommt dann der neue Code.
Ein Feld für einzeilige Texteingabe sieht z.B. so aus:
$edit_profile_form_param[] = array('input', 'custom_input_1', 'Textfeld 1', 255);
für eine mehrzeilige Texteingabe so:
$edit_profile_form_param[] = array('textarea', 'custom_area_1', 'Textblock 1', 255);
Für die Radio-Buttons und die Dateiupload-Felder müssen wir erst noch neue Typen in der Funktion make_form definieren. Machen wir später, wenn der Rest soweit funktioniert.
Schritt 2: Backend
Damit Coppermine etwas mit den Erweiterungen anzufangen weiß, suchen wir
$profile6 = $superCage->post->getEscaped('user_profile6');
und fügen danach für alle oben hinzugefügten Formularfelder eine ähnliche Zeile ein, z.B.
$custom_input_1 = $superCage->post->getEscaped('custom_input_1');
$custom_input_2 = $superCage->post->getEscaped('custom_input_2');
$custom_input_3 = $superCage->post->getEscaped('custom_input_3');
// usw. bis 13
$custom_area_1 = $superCage->post->getEscaped('custom_area_1');
Dann suchen wir die Zeile
$sql = "UPDATE {$CONFIG['TABLE_USERS']} SET user_profile1 = '$profile1', user_profile2 = '$profile2', user_profile3 = '$profile3', user_profile4 = '$profile4', user_profile5 = '$profile5', user_profile6 = '$profile6'" . (($CONFIG['allow_email_change'] || GALLERY_ADMIN_MODE) && !$error ? ", user_email = '$email'" : "") . " WHERE user_id = '" . USER_ID . "'";
und fügen unsere Werte hinzu. Sieht dann in etwa so aus:
$sql = "UPDATE {$CONFIG['TABLE_USERS']} SET user_profile1 = '$profile1', user_profile2 = '$profile2', user_profile3 = '$profile3', user_profile4 = '$profile4', user_profile5 = '$profile5', user_profile6 = '$profile6', custom_input_1 = '$custom_input_1', custom_input_2 = '$custom_input_2', custom_input_3 = '$custom_input_3', custom_area_1 = '$custom_area_1'" . (($CONFIG['allow_email_change'] || GALLERY_ADMIN_MODE) && !$error ? ", user_email = '$email'" : "") . " WHERE user_id = '" . USER_ID . "'";
(ich habe jetzt nicht alle 13 Felder eingefügt, sondern nur die ersten 3).
Schritt 3: Datenbankfelder hinzufügen
Der bisherige Code würde nur eine Fehlermeldung produzieren, da es die benötigten Felder in der Datenbank noch nicht gibt. Öffne dafür ein Tool wie z.B. phpMyAdmin und füge die Felder mit folgender Abfrage hinzu:
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_input_1` VARCHAR(255) NOT NULL default '';
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_input_2` VARCHAR(255) NOT NULL default '';
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_input_3` VARCHAR(255) NOT NULL default '';
-- usw. bis 13
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_area_1` VARCHAR(255) NOT NULL default '';
Schritt 4: Daten im Profilbearbeitungsmodus anzeigen
Suche
$sql = "SELECT user_name, user_email, user_group, user_active, UNIX_TIMESTAMP(user_regdate) AS user_regdate, group_name, " . "user_profile1, user_profile2, user_profile3, user_profile4, user_profile5, user_profile6, user_group_list, " . "COUNT(pid) AS pic_count, SUM(total_filesize) AS disk_usage, group_quota " . "FROM {$CONFIG['TABLE_USERS']} AS u " . "INNER JOIN {$CONFIG['TABLE_USERGROUPS']} AS g ON user_group = group_id " . "LEFT JOIN {$CONFIG['TABLE_PICTURES']} AS p ON p.owner_id = u.user_id " . "WHERE user_id ='" . USER_ID . "' " . "GROUP BY user_id ";
und ersetze es durch
$sql = "SELECT u.*, user_name, user_email, user_group, user_active, UNIX_TIMESTAMP(user_regdate) AS user_regdate, group_name, " . "user_profile1, user_profile2, user_profile3, user_profile4, user_profile5, user_profile6, user_group_list, " . "COUNT(pid) AS pic_count, SUM(total_filesize) AS disk_usage, group_quota " . "FROM {$CONFIG['TABLE_USERS']} AS u " . "INNER JOIN {$CONFIG['TABLE_USERGROUPS']} AS g ON user_group = group_id " . "LEFT JOIN {$CONFIG['TABLE_PICTURES']} AS p ON p.owner_id = u.user_id " . "WHERE user_id ='" . USER_ID . "' " . "GROUP BY user_id ";
(durch den Stern (*) wählen wir alle Felder aus, das müssen wir also nicht weiter beachten).
Suche
'user_profile6' => $user_data['user_profile6'],
und füge darunter folgendes ein:
'custom_input_1' => $user_data['custom_input_1'],
'custom_input_2' => $user_data['custom_input_2'],
'custom_input_3' => $user_data['custom_input_3'],
// usw. bis 13
'custom_area_1' => $user_data['custom_area_1'],
Schritt 5: Daten im öffentlichen Profil anzeigen
Suche
if ($CONFIG['user_profile6_name'] != '') {
$display_profile_form_param[] = array('text', 'user_profile6', $CONFIG['user_profile6_name']);
}
unter füge darunter folgendes ein:
$display_profile_form_param[] = array('text', 'custom_input_1', 'Textfeld 1');
$display_profile_form_param[] = array('text', 'custom_input_2', 'Textfeld 2');
$display_profile_form_param[] = array('text', 'custom_input_3', 'Textfeld 3');
// usw.
$display_profile_form_param[] = array('text', 'custom_area_1', 'Textblock 1');
Suche
'user_profile6' => bb_decode($user_data['user_profile6']),
und füge darunter folgendes ein:
'custom_input_1' => $user_data['custom_input_1'],
'custom_input_2' => $user_data['custom_input_2'],
'custom_input_3' => $user_data['custom_input_3'],
// usw. bis 13
'custom_area_1' => bb_decode($user_data['custom_area_1']),
Das kannst du erstmal abarbeiten und bescheid geben, falls irgendwas nicht wie erwartet funktioniert.
hallo,
werde es heute mal probieren und die sachen einfügen.
danke erst mal ist super.
gruss ralf
hallo,
hat mir keine ruhe gelassen, habe die eintragungen gemacht.
und siehe da 13 felder und ein text feld sind da.
super.
gruss ralf
Und es funktioniert auch alles soweit (Daten eintragen, ändern, anzeigen, etc.)?
hi andre,
ja er zeigt die felder an beim profil ändern, wen die felder leer sind werden die nicht angezeigt und wen ich die ausfülle alle 13 oder nur ein paar dann werden die ausgefüllten felder angezeigt. also werden die auch in der db gespeichert.
so weit alles ok.
gruss ralf
Ich habe jetzt leider keine Zeit mehr für die Radio-Buttons und die Upload-Felder. Nach dem Wochenende können wir fortfahren.
Die Radiobuttons.
Schritt 0: make_form erweitern
Suche
default:
cpg_die(CRITICAL_ERROR, 'Invalid action for form creation ' . $element[0], __FILE__, __LINE__);
}
und füge darüber folgendes ein
case 'radio':
$value = $form_data[$element[1]];
if ($element[2]) {
echo <<< EOT
<tr>
<td width="40%" class="{$cellStyle}" height="25" valign="top">
{$element[2]}
</td>
<td width="60%" class="{$cellStyle}" valign="top">
EOT;
for ($i=1; $i <= $element[3]; $i++) {
$checked = $value == $i ? 'checked="checked" ' : '';
echo <<< EOT
<input type="radio" name="{$element[1]}" value="$i" class="radio" $checked/>
EOT;
}
echo <<< EOT
</td>
</tr>
EOT;
}
break;
Schritt 1: Frontend
Füge wie bereits beschrieben in der Nähe der anderen Zeilen mit
$edit_profile_form_param[]
etwas in folgender Art hinzu
$edit_profile_form_param[] = array('radio', 'custom_radio_1', 'Radiobutton 1', 3);
$edit_profile_form_param[] = array('radio', 'custom_radio_2', 'Radiobutton 2', 3);
$edit_profile_form_param[] = array('radio', 'custom_radio_3', 'Radiobutton 3', 3);
// usw. bis 18
Schritt 2: Backend
Damit Coppermine etwas mit den Erweiterungen anzufangen weiß, suchen wir
$profile6 = $superCage->post->getEscaped('user_profile6');
und fügen danach für alle oben hinzugefügten Formularfelder eine ähnliche Zeile ein, z.B.
$custom_radio_1 = $superCage->post->getEscaped('custom_radio_1');
$custom_radio_2 = $superCage->post->getEscaped('custom_radio_2');
$custom_radio_3 = $superCage->post->getEscaped('custom_radio_3');
// usw. bis 18
Dann erweiterst du die SQL-Abfrage
$sql = "UPDATE {$CONFIG['TABLE_USERS']} SET user_profile1 = '$profile1', .......
wie oben beschrieben um die weiteren Werte.
Kombiniert mit meinem obigen Beispiel sieht die Zeile bei mir jetzt so aus:
$sql = "UPDATE {$CONFIG['TABLE_USERS']} SET user_profile1 = '$profile1', user_profile2 = '$profile2', user_profile3 = '$profile3', user_profile4 = '$profile4', user_profile5 = '$profile5', user_profile6 = '$profile6', custom_input_1 = '$custom_input_1', custom_input_2 = '$custom_input_2', custom_input_3 = '$custom_input_3', custom_area_1 = '$custom_area_1', custom_radio_1 = '$custom_radio_1', custom_radio_2 = '$custom_radio_2', custom_radio_3 = '$custom_radio_3' " . (($CONFIG['allow_email_change'] || GALLERY_ADMIN_MODE) && !$error ? ", user_email = '$email'" : "") . " WHERE user_id = '" . USER_ID . "'";
Schritt 3: Datenbankfelder hinzufügen
Der bisherige Code würde nur eine Fehlermeldung produzieren, da es die benötigten Felder in der Datenbank noch nicht gibt. Öffne dafür ein Tool wie z.B. phpMyAdmin und füge die Felder mit folgender Abfrage hinzu:
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_radio_1` VARCHAR(1) NOT NULL default '';
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_radio_2` VARCHAR(1) NOT NULL default '';
ALTER TABLE `cpg15x_users` ADD COLUMN `custom_radio_3` VARCHAR(1) NOT NULL default '';
-- usw. bis 18
Schritt 4: Daten im Profilbearbeitungsmodus anzeigen
Suche
'user_profile6' => $user_data['user_profile6'],
und füge darunter folgendes ein:
'custom_radio_1' => $user_data['custom_radio_1'],
'custom_radio_2' => $user_data['custom_radio_2'],
'custom_radio_3' => $user_data['custom_radio_3'],
// usw. bis 18
Die Datenbankabfrage müssen wir dank des verwendeten Stern (*) nicht weiter anpassen.
Schritt 5: Daten im öffentlichen Profil anzeigen
Suche
if ($CONFIG['user_profile6_name'] != '') {
$display_profile_form_param[] = array('text', 'user_profile6', $CONFIG['user_profile6_name']);
}
unter füge darunter folgendes ein:
$display_profile_form_param[] = array('text', 'custom_radio_1', 'Radiobutton 1');
$display_profile_form_param[] = array('text', 'custom_radio_2', 'Radiobutton 2');
$display_profile_form_param[] = array('text', 'custom_radio_3', 'Radiobutton 3');
// usw. bis 18
Suche
'user_profile6' => bb_decode($user_data['user_profile6']),
und füge darunter folgendes ein:
'custom_radio_1' => radio_button_color($user_data['custom_radio_1']),
'custom_radio_2' => radio_button_color($user_data['custom_radio_2']),
'custom_radio_3' => radio_button_color($user_data['custom_radio_3']),
// usw. bis 18
Jetzt fügst du vor dem darüberstehenden
$form_data = array(
noch folgende Funktion hinzu:
function radio_button_color($value) {
switch($value) {
case '1': $color = 'red'; break;
case '2': $color = 'yellow'; break;
case '3': $color = 'green'; break;
default: $color = false; break;
}
if ($color) {
return '<div style="width: 16px; height: 16px; background: '.$color.'"></div>';
} else {
return $value;
}
}
Die Funktion sorgt dafür, anstatt dem Wert eine farbige Box darzustellen.
hallo Andre,,
Super habe es eben eingebunden und es funktioniert.
habe dazu noch eine frage die anzeige für die fab felder ist:
function radio_button_color($value) {
switch($value) {
case '1': $color = 'red'; break;
case '2': $color = 'yellow'; break;
case '3': $color = 'green'; break;
default: $color = false; break;
}
if ($color) {
return '<div style="width: 16px; height: 16px; background: '.$color.'"></div>';
} else {
return $value;
}
}
Die Funktion sorgt dafür, a
wen ich keine farbe möchte sonder kleine icons wie mache ich das ?
habe es versucht mit
case '1': $color = 'img src="themes/neu/images/neina.png"; break;
case '1': $color = 'img src="themes/neu/images/vie.png"; break;
case '1': $color = 'img src="themes/neu/images/ja.png"; break;
meine denkweise ist bestimmt falsch.
gruss ralf
Der Ansatz ist prinzipiell richtig. Probier es mal mit
switch($value) {
case '1': $img = 'neina.png'; break;
case '2': $img = 'vie.png'; break;
case '3': $img = 'ja.png'; break;
default: $img = false; break;
}
if ($img) {
return '<img src="themes/neu/images/'.$img.'" />';
} else {
return $value;
}
hallo andre,
super so geht es so nimmt er die icons.
mir ist aufgefallen das im profil wen ich es ausfülle er mir die 3 radiobubuttons anzeigt (neben einander) nur weiß man nicht für was die stehen.
es müsste vor dem 1. Nein stehen vor dem 2. vieleicht und vor dem 3. Ja.
da ich ja den Text für die zusätzlichen felder manuell eingeben muss für "Textfeld 1" "Radiobutton 1" bekomme ich für umlaute nur diese schwarze raute angezeigt.
könnte man den text so ersetzen das er die texte aus der german.php nimmt dann könnte man das auch nehmen wen ich deutsch und englisch nutzen möchte. könnte dann die lang bearbeiten.
habe mir die vorhandenen felder angesehen und wen ich bei den neuen den text durch z.b. $CONFIG['custom_input_1'] ersetze wäre ja zu einfach da muss doch bestimmt noch mehr gemacht werden.
gruss ralf
Quote from: ralf45_nrw on September 06, 2013, 09:08:04 PM
mir ist aufgefallen das im profil wen ich es ausfülle er mir die 3 radiobubuttons anzeigt (neben einander) nur weiß man nicht für was die stehen.
es müsste vor dem 1. Nein stehen vor dem 2. vieleicht und vor dem 3. Ja.
Suche
for ($i=1; $i <= $element[3]; $i++) {
$checked = $value == $i ? 'checked="checked" ' : '';
echo <<< EOT
<input type="radio" name="{$element[1]}" value="$i" class="radio" $checked/>
EOT;
}
und ersetze es durch
for ($i=1; $i <= $element[3]; $i++) {
$checked = $value == $i ? 'checked="checked" ' : '';
switch($i) {
case 1: $label = "Nein"; break;
case 2: $label = "Vielleicht"; break;
case 3: $label = "Ja"; break;
default: $label = ""; break;
}
echo <<< EOT
<label for="{$element[1]}{$i}">{$label}:</label>
<input type="radio" name="{$element[1]}" value="{$i}" id="{$element[1]}{$i}" class="radio" {$checked}/>
EOT;
}
Quote from: ralf45_nrw on September 06, 2013, 09:08:04 PM
da ich ja den Text für die zusätzlichen felder manuell eingeben muss für "Textfeld 1" "Radiobutton 1" bekomme ich für umlaute nur diese schwarze raute angezeigt.
Das liegt an der fehlenden UTF-8-Codierung. Entweder codierst du die Datei
profile.php in UTF-8 um oder du benutzt die entsprechenden Entitäten (ä = ä / ö = ö / usw.).
Quote from: ralf45_nrw on September 06, 2013, 09:08:04 PM
könnte man den text so ersetzen das er die texte aus der german.php nimmt dann könnte man das auch nehmen wen ich deutsch und englisch nutzen möchte. könnte dann die lang bearbeiten.
Sicher. Füge einfach in die entsprechenden Sprachdateien neue Werte hinzu, die du dann entsprechend an beiden Stellen in
profile.php ersetzt. Z.B. fügst du in den Sprachdateien direkt vor
?>
folgendes ein
$lang_profile_custom['radio1'] = 'Radiobutton 1';
Wichtig ist, dass du einen Eintrag in die Englische Sprachdatei hinzufügst, da diese immer als Fallback für alle Sprachdateien fungiert, in denen der String nicht vorhanden ist.
Dann suchst du in
profile.php nach
'Radiobutton 1'
(kommt 2 mal vor) und ersetzt beides durch
$lang_profile_custom['radio1']
Entsprechend verfährst du mit den anderen Strings.
hi andre,
super, werde es direkt ausprobieren.
DANKE.
gruss ralf
hi andre,
habe es so gemacht aber irgend wo ist ein fehler wen ich das profil aufrufe läd er es nicht nur weiße seite.
habe in der lang de und en habe ich das gemacht (vor ?>)
$lang_profile_custom['radio1'] = 'Portrait';
in der profil an beiden stellen
$edit_profile_form_param[] = array('radio', 'custom_radio_1', '$lang_profile_custom['radio1']', 3);
$display_profile_form_param[] = array('text', 'custom_radio_1', '$lang_profile_custom['radio1']');
gruss ralf
Ersetze
$edit_profile_form_param[] = array('radio', 'custom_radio_1', '$lang_profile_custom['radio1']', 3);
durch
$edit_profile_form_param[] = array('radio', 'custom_radio_1', $lang_profile_custom['radio1'], 3);
und bei allen anderen geänderten Zeilen entsprechend auch. Hätte ich vielleicht deutlicher kennzeichnen sollen in meiner Beschreibung, aber wenn du genau hinsiehst, wird der String samt Hochkommata durch die Variable ersetzt.
hi an
super funktioniert.
lerne immer mehr dazu.
gruss ralf
Quote from: ralf45_nrw on August 28, 2013, 02:55:46 PM
die abmessung des bildes soll eine bestimmte grösse haben z.b. 1, bild 800x300, 2. bild 300x400
Sind das jetzt schon die korrekten Größen? Breite x Höhe nehmen ich an?
hi andre,
ja bilder sind breite x höhe
1. bild 800x300
2. bild 350x600
gruss ralf
Die Upload-Felder.
Schritt 0: make_form erweitern und Formularkodierung anpassen
Suche
default:
cpg_die(CRITICAL_ERROR, 'Invalid action for form creation ' . $element[0], __FILE__, __LINE__);
}
und füge darüber folgendes ein
case 'upload':
$value = $form_data[$element[1]];
if ($element[2]) {
echo <<< EOT
<tr>
<td width="40%" class="{$cellStyle}" height="25" valign="top">
{$element[2]}
</td>
<td width="60%" class="{$cellStyle}" valign="top">
<input type="file" style="width: 100%" name="{$element[1]}" class="listbox" />
</td>
</tr>
EOT;
}
break;
Suche
<form name="cpgform" id="cpgform" method="post" action="{$CPG_PHP_SELF}">
und ersetze es durch
<form name="cpgform" id="cpgform" method="post" action="{$CPG_PHP_SELF}" enctype="multipart/form-data">
Schritt 1: Frontend
Füge wie bereits beschrieben in der Nähe der anderen Zeilen mit
$edit_profile_form_param[]
etwas in folgender Art hinzu
$edit_profile_form_param[] = array('upload', 'custom_upload_1', 'Upload 1');
$edit_profile_form_param[] = array('upload', 'custom_upload_2', 'Upload 2');
Schritt 2: Backend
Jetzt beginnt der Teil, der evtl. nicht deinen Vorstellungen entspricht. Wenn das Formular abgesendet wird, werden entweder neue Bilder mitgesendet oder "nichts". Wenn nichts mitgesendet wird, wird das ggf. bereits hochgeladene Bild weiter verwendet. Wenn etwas mitgesendet wird und es ein Bild mit den korrekten Abmessungen ist, wird ab sofort dieses Bild verwendet. Wenn es kein Bild ist oder die falschen Abmessungen hat, wird das ggf. bereits hochgeladene Bild weiter verwendet. Ein Bild löschen ist erstmal nicht möglich, können wir später ggf. noch einbauen.
Damit Coppermine etwas mit den Erweiterungen anzufangen weiß, suchen wir
$profile6 = $superCage->post->getEscaped('user_profile6');
und fügen danach folgenden Code ein:
function custom_upload($custom_upload_x, $width, $height) {
global $CONFIG;
$superCage = Inspekt::makeSuperCage();
if ($superCage->files->getRaw("/{$custom_upload_x}/tmp_name") && is_image($superCage->files->getRaw("/{$custom_upload_x}/name"))) {
$uploaded_file = $CONFIG['fullpath'].$CONFIG['userpics'].'user_'.USER_ID.'_'.$custom_upload_x.'.png';
if (move_uploaded_file($superCage->files->getRaw("/{$custom_upload_x}/tmp_name"), $uploaded_file.'_tmp')) {
$imagesize = cpg_getimagesize($uploaded_file.'_tmp');
if ($imagesize[0] == $width && $imagesize[1] == $height) {
rename($uploaded_file.'_tmp', $uploaded_file);
} else {
unlink($uploaded_file.'_tmp');
}
}
}
}
custom_upload('custom_upload_1', 800, 300);
custom_upload('custom_upload_2', 350, 600);
Schritt 3: Daten im öffentlichen Profil anzeigen
Suche
if ($CONFIG['user_profile6_name'] != '') {
$display_profile_form_param[] = array('text', 'user_profile6', $CONFIG['user_profile6_name']);
}
unter füge darunter folgendes ein:
$display_profile_form_param[] = array('text', 'custom_upload_1', 'Upload 1');
$display_profile_form_param[] = array('text', 'custom_upload_2', 'Upload 2');
Suche
'user_profile6' => bb_decode($user_data['user_profile6']),
und füge darunter folgendes ein:
'custom_upload_1' => custom_image('custom_upload_1'),
'custom_upload_2' => custom_image('custom_upload_2'),
Jetzt fügst du vor dem darüberstehenden
$form_data = array(
noch folgende Funktion hinzu:
function custom_image($img) {
global $CONFIG;
$superCage = Inspekt::makeSuperCage();
$user_id = $superCage->get->getInt('uid');
$img = $CONFIG['fullpath'].$CONFIG['userpics'].'user_'.$user_id.'_'.$img.'.png';
if (file_exists($img)) {
return "<img class=\"image\" src=\"{$img}\" />";
} else {
return false;
}
}
hi andre,
super es funktioniert.
wie ich die größe ändern kann weiß ich die muss ich später so anpassen dami es ins profil passt.
nur ist es dumm das man nur .png hochladen kann wäre gut wen man auch noch .jpg hochladen könnte.
und wen man später die auch löschen könnte.
DANKE erst mal super leistung.
gruss ralf
Du kannst auch andere Bilddateien hochladen. Der Einfachheit halber werden aber alle als .png abgespeichert. Ist unsauber, sollte aber trotzdem ohne Probleme funktionieren.
hi andre,
dann muss ich das script noch mal kontrolieren.
wollte .jpg hochladen hat er nicht genommen, habe das bild dann in .png gespeichet und dann hochgeladen das ging ohne probleme.
gruss ralf
Quote from: ralf45_nrw on September 22, 2013, 02:01:18 PM
wollte .jpg hochladen hat er nicht genommen
Bitte genauer erläutern. Kam eine Fehlermeldung oder wird das Bild einfach nicht angezeigt?
hallo andre,
lag an mir hatte versucht eine falche größe hochzuladen.
wer lesen kann ist klar im vorteil.
gruss ralf
Sind wir hiermit eigentlich durch, oder ist noch irgendwas offen?
hi,
mit den feldern soweit alles ok.
gruss ralf