MOD - Osobisty obrazekoryginalny tytuł
[MOD] Member personal photo v1.1.1 by V@no Instalacja: Średnia
Czas: 25 minutDemo Witam, poniżej znajduje się tłumaczenie modu autorstwa V@no
Opis Mod ten pozwala użytkownikowi dodać swoje zdjęcie do profilu. Zdjęcie to będzie wyświetlane w profilu oraz komentarzach..
Zmienione plikimember.php includes/db_field_definitions.php lang/polish/main.php lang/polish/admin.php admin/settings.php templates/<twoj_szablon>/member_editprofile.html templates/<twoj_szablon>/member_profile.html Nowe pliki userpic_install.php Nowy folder data/userpic/Zaczynamy instalację Krok 1 Otwórz
member.php Znajdź:
"user_homepage_button" => $user_homepage_button,
Wstaw
nad nim:
//User Pic
"userpic_img" => ($config['userpic'] && $user_row['userpic']) ? ROOT_PATH."data/userpic/".$user_row['userpic'] : "",
//End User Pic
Krok 1.1 Znajdź:
if (!$error && $user_email != $user_info['user_email'] && $user_info['user_level'] != ADMIN && $config['account_activation'] != 0) {
Wstaw
nad nim:
// Upload User Pic
$userpic = $userpic_new = "";
if (!$error && $config['userpic'])
{
$userpics_dir = ROOT_PATH."data/userpic/";
if (!empty($HTTP_POST_FILES['userpic_file']['tmp_name']) && $HTTP_POST_FILES['userpic_file']['tmp_name'] != "none")
{
if (isset($HTTP_COOKIE_VARS['userpic_file']) || isset($HTTP_POST_VARS['userpic_file']) || isset($HTTP_GET_VARS['userpic_file'])) {
die("Security violation");
}
if (!function_exists("is_uploaded_file")) {
function is_uploaded_file($file_name) {
if (!$tmp_file = @get_cfg_var('upload_tmp_dir')) {
$tmp_file = tempnam('','');
$deleted = @unlink($tmp_file);
$tmp_file = dirname($tmp_file);
}
$tmp_file .= '/'.basename($file_name);
return (ereg_replace('/+', '/', $tmp_file) == $file_name) ? 1 : 0;
}
function move_uploaded_file($file_name, $destination) {
return (is_uploaded_file($file_name)) ? ((copy($file_name, $destination)) ? 1 : 0) : 0;
}
}
$error = array();
$mime_types = array(
"image/jpeg",
"image/pjpeg",
"image/gif",
"image/x-png"
);
$extensions = array(
"jpg",
"jpeg",
"gif",
"png"
);
$userpic_ext = strtolower(substr(strrchr($HTTP_POST_FILES['userpic_file']['name'],"."), 1));
$userpic_mime = $HTTP_POST_FILES['userpic_file']['type'];
if (!in_array($userpic_mime, $mime_types) || !in_array($userpic_ext, $extensions))
{
$error[] = $lang['invalid_file_type']. " (".$userpic_ext.", ".$HTTP_POST_FILES['userpic_file']['type'].")";
}
if ($HTTP_POST_FILES['userpic_file']['size'] > $config['userpic_size'] * 1024)
{
$error[] = $lang['invalid_file_size'];
}
if (empty($error))
{
$userpic_name = $user_info['user_id'].".".$userpic_ext;
$userpic_file = $userpics_dir.$userpic_name;
if (file_exists($userpic_file))
{
unlink($userpic_file);
}
if (!move_uploaded_file($HTTP_POST_FILES['userpic_file']['tmp_name'], $userpic_file))
{
$error[] = $lang['file_copy_error'];
}
else
{
@chmod($userpic_file, CHMOD_FILES);
}
}
if (empty($error))
{
$userpic = $HTTP_POST_VARS['userpic'] = $userpic_new = $userpic_name;
if ($user_info['userpic'] != $userpic_name && file_exists($userpics_dir.$user_info['userpic']))
{
@unlink($userpics_dir.$user_info['userpic']);
}
if (!function_exists(init_convert_options))
{
require(ROOT_PATH.'includes/image_utils.php');
}
$image_info = getimagesize($userpic_file);
$convert_options = init_convert_options();
if (($image_info[0] > $config['userpic_width'] || $image_info[1] > $config['userpic_height']))
{
if ($convert_options['convert_error'] || (!$convert_options['convert_error'] && !resize_image($userpic_file, 85, $config['userpic_width'], 1)))
{
if ($image_info[0] > $config['userpic_width'])
{
$error[] = $lang['invalid_image_width'];
}
if ($image_info[1] > $config['userpic_height'])
{
$error[] = $lang['invalid_image_height'];
}
}
}
}
if (!empty($error))
{
$msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$HTTP_POST_FILES['userpic_file']['name']."</b><br />";
foreach ($error as $val) {
$msg .= "<b>".$HTTP_POST_FILES['userpic_file']['name'].":</b> ".$val."<br />";
}
$HTTP_POST_VARS['userpic'] = $user_info['userpic'];
}
}
else
{
if (isset($HTTP_POST_VARS['userpic_del']) && $HTTP_POST_VARS['userpic_del'])
{
@unlink($userpics_dir.$user_info['userpic']);
$HTTP_POST_VARS['userpic'] = $userpic = "";
$userpic_new = 1;
}
}
}
// End Upload User Pic
Krok 1.2 Znajdź:
"user_showemail_yes" => $user_showemail_yes,
Wstaw
nad nim:
//User Pic
"userpic_allowed" => $config['userpic'],
"userpic_img" => ($user_info['userpic']) ? ROOT_PATH."data/userpic/".$user_info['userpic'] : "",
"lang_userpic_del" => $lang['userpic_del'],
"lang_userpic_upload" => preg_replace("/".$site_template->start."userpic_max_size".$site_template->end."/siU", $config['userpic_size']." ".$lang['kb'], preg_replace("/".$site_template->start."userpic_max_width".$site_template->end."/siU", $config['userpic_width'], preg_replace("/".$site_template->start."userpic_max_height".$site_template->end."/siU", $config['userpic_height'], $lang['userpic_upload']))),
"userpic_max_width" => $config['userpic_width'],
"userpic_max_height" => $config['userpic_height'],
"userpic_max_size" => $config['userpic_size']." ".$lang['kb'],
//End User Pic
Krok 2 Otwórz
includes/db_field_definitions.php Na końcu,
przed znakiem ?> wstaw poniższy kod:
$additional_user_fields['userpic'] = array($lang['userpic'], "text", 0);
Krok 3Otwórz
lang/polish/main.php Na końcu ,
przed znakiem ?> wstaw poniższy kod:
//-----------------------------------------------------
//--- User Pic ----------------------------------------
//-----------------------------------------------------
$lang['userpic'] = "Osobisty obrazek";
$lang['userpic_del'] = "Usuń";
$lang['userpic_upload'] = "Maksymalna wielkość obrazka: {userpic_max_size}.<br />Rozmiar obrazka {userpic_max_width}x{userpic_max_height} - większe obrazki będą konwertowane";
$lang['file_copy_error'] = "Błąd w kopiowaniu. Proszę sprawdź plik, który chcesz załadować.";
//--- End User Pic ------------------------------------
Krok 4Otwórz
admin/settings.phpW pliku settings.php, musimy ustalić najpierw ostatnio zainstalowaną grupę opcji.
Jeżeli nie instalowaliśmy do tej pory żadnej modyfikacji, której opcje ustawiane są w administracyjnym panelu kontrolnym, to w standartowej instalacji 4images ostatnią grupą opcji jest grupa 7, odszukaj tą grupę używając fragmentu kodu
show_table_separator($setting_group
Bardzo ważną sprawą jest to, abyśmy byli pewni numeru, ostaniej zainstalowanej grupy.
Np.: jeżeli ostatnią zainstalowaną grupą , jest grupa 7, to nasza nowa grupa będzie miała numer 8
odszukaj
show_form_footer($lang['save_changes'], "", 2);
i przed tym kodem dodaj
//User Pic
show_table_separator($setting_group[xx], 2, "#setting_group_xx");
show_setting_row("userpic", "radio");
show_setting_row("userpic_width");
show_setting_row("userpic_height");
show_setting_row("userpic_size");
//End User Pic
w miejsce
XX wstaw numer nowej grupy wynikający z jej kolejności.
Krok 5 Otwórz plik
lang/polish/admin.php i na samym końcu, przed znakiem
?>
dodaj
//User Pic
/*-- Setting-Group XX --*/
$setting_group[XX]="Osobisty obrazek";
$setting['userpic'] = "Aktywne";
$setting['userpic_size'] = "Maksymalna wielkość pliku w KB";
$setting['userpic_width'] = "Maksymalna szerokość zdjęcia w pixel";
$setting['userpic_height'] = "Maksymalna wysokość zdjęcia w pixel";
//End User Pic
w miejsce
XX wstaw numer nowej grupy wynikający z kroku 4
Krok 6Otwórz
templates/<twoj_szablon>/member_editprofile.htmlZnajdź:
<form method="post" action="{url_member}">
Zmień na:
<form method="post" action="{url_member}" enctype="multipart/form-data">
upewnij si? ?e
enctype="multipart/form-data" jest w tagu <form> .
Krok 6.1Znajdź:
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2"><input type="text" name="user_icq" size="30" value="{user_icq}" class="input" /></td>
</tr>
Wstaw
poniżej:
{if userpic_allowed}
<tr>
<td class="row1" valign="top"><b>{lang_userpic}</b>
<SPAN class="smalltext">
<br />
<B>{lang_userpic_upload}</B>
</SPAN>
</td>
<td class="row1">
<INPUT type="file" name="userpic_file" size="30" class="input" /><br />
{if userpic_img}<img src="{userpic_img}"><br /><input type="checkbox" name="userpic_del" value="1"> {lang_userpic_del}{endif userpic_img}
</TD>
</TR>
{endif userpic_allowed}
(oczywiście możesz dodać ten kod w dowolnym miejscu tej strony)
Krok 7Otórz
templates/<twoj_szablon>/member_profile.html Znajdź:
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2">{if user_icq}<a href="http://wwp.icq.com/scripts/search.dll?to={user_icq}">{user_icq}</a> (<b>{user_icq_status}</b>){endif user_icq}</td>
</tr>
Zmień na:
<tr>
<td class="row2"><b>{lang_icq}</b></td>
<td class="row2">{if user_icq}<a href="http://www.icq.com/people/about_me.php?uin={user_icq}">{user_icq}</a> (<b>{user_icq_status}</b>){endif user_icq}</td>
</tr>
{if userpic_img}
<tr>
<td class="row1" valign="top"><b>{lang_userpic}</b></td>
<td class="row1"><img src="{userpic_img}"></td>
</tr>
{endif userpic_img}
Krok 8 Utwórz nowy folder:
data/userpic/ Ustaw uprawnienia do katalogu na CHMOD 777.
Krok 9 Pobierz plik instalacyjny (na końcu postu) , wypakuj go i wgraj do głównego katalogu galerii, a następnie wpisz w przeglądarkę adres:
http://<adres_twojej_galerii>/userpic_install.php Postępuj zgodnie z instrukcjami.
Możesz oczywiście zaktualizować tabele w Twojej bazie ręcznie:
ALTER TABLE `4images_users` ADD `userpic` varchar(255) NOT NULL default '';
INSERT INTO `4images_settings` ( `setting_name` , `setting_value` ) VALUES ('userpic', '1');
INSERT INTO `4images_settings` ( `setting_name` , `setting_value` ) VALUES ('userpic_size', '500');
INSERT INTO `4images_settings` ( `setting_name` , `setting_value` ) VALUES ('userpic_width', '200');
INSERT INTO `4images_settings` ( `setting_name` , `setting_value` ) VALUES ('userpic_height', '200');
Krok 10Krok 10 i 11 jest wymagany jeżeli chcesz aby prywatny obrazek wyświetlany był na stronie z detalami foto (details.php)
Otwórz
details.phpZnajdź:
$additional_sql = "";
Wstaw
poniżej:
if (!empty($additional_user_fields)) {
foreach ($additional_user_fields as $key => $val) {
$additional_sql .= ", u.".$key;
}
}
(Jeżeli ten kod istnieje już w pliku to nie musisz go duplikować

)
Krok11Otwórz
includes/functions.phpZnajdź:
if (!empty($additional_image_fields)) {
Wstaw
nad nim:
if (!empty($additional_user_fields)) {
$additional_field_array = array();
foreach ($additional_user_fields as $key => $val) {
if ($key != "userpic" || ($key == "userpic" && $config['userpic']))
{
$additional_field_array[$key] = (!empty($image_row[$key])) ? format_text($image_row[$key], 1) : REPLACE_EMPTY;
$additional_field_array['lang_'.$key] = $val[0];
}
}
if (!empty($additional_field_array)) {
$site_template->register_vars($additional_field_array);
}
}
Teraz możesz zastosować
{userpic} w szablonie details.html.
Krok 12Krok 12 - 13 zastosuj jeżeli chcesz aby prywatny obrazek był wyświetlany przy komentarzach.
Otwórz
details.phpZnajdź:
$sql = "SELECT c.comment_id, c.image_id, c.user_id, c.user_name AS comment_user_name, c.comment_headline, c.comment_text, c.comment_ip, c.comment_date".get_user_table_field(", u.", "user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email").get_user_table_field(", u.", "user_showemail").get_user_table_field(", u.", "user_invisible").get_user_table_field(", u.", "user_joindate").get_user_table_field(", u.", "user_lastaction").get_user_table_field(", u.", "user_comments").get_user_table_field(", u.", "user_homepage").get_user_table_field(", u.", "user_icq")."
Zmień na:
$sql = "SELECT c.comment_id, c.image_id, c.user_id, c.user_name AS comment_user_name, c.comment_headline, c.comment_text, c.comment_ip, c.comment_date".get_user_table_field(", u.", "user_level").get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email").get_user_table_field(", u.", "user_showemail").get_user_table_field(", u.", "user_invisible").get_user_table_field(", u.", "user_joindate").get_user_table_field(", u.", "user_lastaction").get_user_table_field(", u.", "user_comments").get_user_table_field(", u.", "user_homepage").get_user_table_field(", u.", "user_icq").", u.userpic
Krok 12.1Znajdź:
"comment_user_ip" => $comment_user_ip,
Wstaw
poniżej:
"comment_userpic" => ($config['userpic'] && $comment_row[$i]['userpic']) ? ROOT_PATH."data/userpic/".$comment_row[$i]['userpic'] : "",
Krok 13Wstaw w
templates/<twoj_szablon>/comment_bit.html (w miejscu w którym chcesza aby być wyświetlany prywatny obrazek

)
{if comment_userpic} <img src="{comment_userpic}">{endif comment_userpic}
Plik instalacyjny poniżej.
Zrzuty ekranu w kolejności:
1. Ustawienia MOD Osobisty obrazek w APC
2. Ustawienia MOD Osobisty obrazek w Panelu kontrolnym
3. Wy?wietlanie osobistego obrazka w profilach
4. Wyświetlanie osobistego obrazka w komentarzach