Seite 1 von 1

phpbb Avatare in externem Script uploaden

Verfasst: 24.06.2009 00:26
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

Re: phpbb Avatare in externem Script uploaden

Verfasst: 24.06.2009 23:48
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

Re: phpbb Avatare in externem Script uploaden

Verfasst: 26.06.2009 02:18
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

Re: phpbb Avatare in externem Script uploaden

Verfasst: 27.06.2009 00:21
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

Re: phpbb Avatare in externem Script uploaden

Verfasst: 28.06.2009 19:39
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.

Re: phpbb Avatare in externem Script uploaden

Verfasst: 28.06.2009 20:32
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 ;)

Re: phpbb Avatare in externem Script uploaden

Verfasst: 05.07.2009 16:28
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

Re: phpbb Avatare in externem Script uploaden

Verfasst: 07.07.2009 18:31
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