phpbb Avatare in externem Script uploaden

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
sowiso
Mitglied
Beiträge: 23
Registriert: 20.10.2007 17:18
Kontaktdaten:

phpbb Avatare in externem Script uploaden

Beitrag von sowiso »

Hallo!

Ich lasse ein script extern laufen, was aber auch auf die userdaten von phpbb3 zugreift und auch der login läuft direkt über phpbb3. Nun würde ich gerne einen Bildupload/Avatarupload auch über die externe PHP-Seite bereitstellen. Wie kann ich das bewerkstelligen. Ich denke, man muss eine funktion aufrufen, die das Bild entgegennimmt und dann verarbeitet.

Aber wo finde ich die Funktion?

Danke für die Hilfe
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: phpbb Avatare in externem Script uploaden

Beitrag von piero »

Hi

Sämtliche Standardfuntionen sind hier zu finden: phpBB Sourcecode Documentation

Die Funktion, die du suchst heisst avatar_upload() und ist in der Datei /includes/functions_user.php
Das wird aber nur für Avatare für User gehen, wenn du mehr als das brauchst musst du dir einen GalleryMod suchen ;)

Gruss
piero
sowiso
Mitglied
Beiträge: 23
Registriert: 20.10.2007 17:18
Kontaktdaten:

Re: phpbb Avatare in externem Script uploaden

Beitrag von sowiso »

Kannst du mir vielleicht sagen, wie ich die Funktion aufrufen muss um ein Bild zu übergeben? Da das so genau dort nicht steht.

Danke
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: phpbb Avatare in externem Script uploaden

Beitrag von piero »

Ich habs mir nochmal genauer angeschaut... Und endlich den Code von dem hier gefunden^^

Versuch mal folgenden Code: (Sollte das AbsendFormular und Verarbeitskript draus geben...)

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');

// Only registered users can go beyond this point
if (!$user->data['is_registered'])
{
    if ($user->data['is_bot'])
    {
        redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
    }
    login_box('', $user->lang['LOGIN_EXPLAIN_UCP']);
}

$i = 'profile';
$mode = 'avatar';

// Setting a variable to let the style designer know where he is...
$template->assign_var('S_IN_UCP', true);


$module = new p_master();

// Instantiate module system and generate list of available modules
$module->list_modules('ucp');

// Select the active module
$module->set_active($id, $mode);

// Load and execute the relevant module
$module->load_active();

// Assign data to the template engine for the list of modules
$module->assign_tpl_vars(append_sid("{$phpbb_root_path}ucp.$phpEx"));

// Generate the page, do not display/query online list
$module->display($module->get_page_title(), false);
 
(Ich habs nicht getestet (c/p aus der ucp.php), sollte aber so funktionieren...)

Das Skript lädt über Umwege den Code+Template aus includes/ucp/ucp_profile.php. Im Weiteren wird da dann avatar_process_user() zum hochladen des Avatars verwendet.


Gruss
Piero
sowiso
Mitglied
Beiträge: 23
Registriert: 20.10.2007 17:18
Kontaktdaten:

Re: phpbb Avatare in externem Script uploaden

Beitrag von sowiso »

Aber an welcher Stelle und wie kann ich das Bildobjekt übergeben?

Weil avatar_process_user() erwartet soweit ich das mitbekommen habe kein Bild-Objekt.
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: phpbb Avatare in externem Script uploaden

Beitrag von piero »

Du musst das Formularfeld "uploadfile" nennen, direkt kannst du das Avatar nicht übergeben. Falls das nicht möglich ist, müsstest du die Funktionen etwas modifizieren ;)
sowiso
Mitglied
Beiträge: 23
Registriert: 20.10.2007 17:18
Kontaktdaten:

Re: phpbb Avatare in externem Script uploaden

Beitrag von sowiso »

Wie muss mein Formular dann genau aussehen?

im form-tag folgendes: <form id="ucp" method="post" action="./ucp.php?i=profile&mode=avatar" enctype="multipart/form-data">
und für die Dateiauswahl: <input type="hidden" name="MAX_FILE_SIZE" value="36000" /><input type="file" name="uploadfile" id="uploadfile" class="inputbox autowidth" />

Allerdings weiß ich dann nicht ob das wichtig wäre:

Code: Alles auswählen

<input type="hidden" name="creation_time" value="1246803473" />
<input type="hidden" name="form_token" value="be325dd8474c665916a97e63fd2deacfecd40916" />
und wenn ja wie erstelle ich die values? Es wäre hilfreich, wenn mir jemand ein Beispielformular posten könnte.

MfG
sowiso
sowiso
Mitglied
Beiträge: 23
Registriert: 20.10.2007 17:18
Kontaktdaten:

Re: phpbb Avatare in externem Script uploaden

Beitrag von sowiso »

Also wenn ich es so probiere kommt nur der Fehler "Module not accessible" Kann man nicht einfach ein eigenes Formular für den Bildupload erstellen und dann die Datei an phpbb übergeben?
piero hat geschrieben:Ich habs mir nochmal genauer angeschaut... Und endlich den Code von dem hier gefunden^^

Versuch mal folgenden Code: (Sollte das AbsendFormular und Verarbeitskript draus geben...)

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');

// Only registered users can go beyond this point
if (!$user->data['is_registered'])
{
    if ($user->data['is_bot'])
    {
        redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
    }
    login_box('', $user->lang['LOGIN_EXPLAIN_UCP']);
}

$i = 'profile';
$mode = 'avatar';

// Setting a variable to let the style designer know where he is...
$template->assign_var('S_IN_UCP', true);


$module = new p_master();

// Instantiate module system and generate list of available modules
$module->list_modules('ucp');

// Select the active module
$module->set_active($id, $mode);

// Load and execute the relevant module
$module->load_active();

// Assign data to the template engine for the list of modules
$module->assign_tpl_vars(append_sid("{$phpbb_root_path}ucp.$phpEx"));

// Generate the page, do not display/query online list
$module->display($module->get_page_title(), false);
 
(Ich habs nicht getestet (c/p aus der ucp.php), sollte aber so funktionieren...)

Das Skript lädt über Umwege den Code+Template aus includes/ucp/ucp_profile.php. Im Weiteren wird da dann avatar_process_user() zum hochladen des Avatars verwendet.


Gruss
Piero
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“