wie führe ich einen patch aus?
am 02.02.2007 - 15:18 Uhr in
hallo forum,
ich versuche gerade einen patch zur automatischen verkeleinerung der avatare auszuführen. nur leider blicke ich da noch nicht ganz durch...
den patch habe ich von http://drupal.org/node/60987; er schaut so aus:
diff -urN --exclude=*~ --exclude=captcha* --exclude=guestbook --exclude=*-orig --exclude=sites --exclude=pictures /tmp/drupal-4.7.0/modules/user.module ./modules/user.module
--- /tmp/drupal-4.7.0/modules/user.module Sun Apr 30 10:27:53 2006
+++ ./modules/user.module Mon May 1 12:58:11 2006
@@ -268,6 +268,19 @@
form_set_error('picture_upload', t('The uploaded file was not an image.'));
}
else if (image_get_toolkit()) {
+ /* added */
+ $maxsize_icon = array('w'=>175,'h'=>175); //clean up
+ $icon = $file; //file_copy changes the value of the variable
+ if (file_copy($icon, variable_get('user_picture_path', 'pictures').'/pictureicon-'. $user->uid . '.' . $info['extension'], $replace = FILE_EXISTS_REPLACE)) {
+ image_scale($icon->filepath, $icon->filepath, $maxsize_icon['w'], $maxsize_icon['h']);
+ }
+ $maxsize_mini = array('w'=>20, 'h'=>20);
+ $mini = $file;
+ if (file_copy($mini, variable_get('user_picture_path', 'pictures').'/picturemini-'. $user->uid . '.' . $info['extension'], $replace = FILE_EXISTS_REPLACE)) {
+ image_scale($mini->filepath, $mini->filepath, $maxsize_mini['w'], $maxsize_mini['h']);
+ }
+ /* end add */
+
image_scale($file->filepath, $file->filepath, $maxwidth, $maxheight);
}
else if (filesize($file->filepath) > (variable_get('user_picture_file_size', '30') * 1000)) {
diff -urN --exclude=*~ --exclude=captcha* --exclude=guestbook --exclude=*-orig --exclude=sites --exclude=pictures /tmp/drupal-4.7.0/themes/engines/phptemplate/phptemplate.engine ./themes/engines/phptemplate/phptemplate.engine
--- /tmp/drupal-4.7.0/themes/engines/phptemplate/phptemplate.engine Mon Apr 24 21:25:37 2006
+++ ./themes/engines/phptemplate/phptemplate.engine Mon May 1 13:01:28 2006
@@ -340,4 +340,8 @@
}
-?>
+function phptemplate_user_picture($account, $size = '') {
+ return _phptemplate_callback('user_picture', array('account' => $account, 'size' => $size));
+}
+
+?>
\ No newline at end of file
diff -urN --exclude=*~ --exclude=captcha* --exclude=guestbook --exclude=*-orig --exclude=sites --exclude=pictures /tmp/drupal-4.7.0/themes/engines/phptemplate/user_picture.tpl.php ./themes/engines/phptemplate/user_picture.tpl.php
--- /tmp/drupal-4.7.0/themes/engines/phptemplate/user_picture.tpl.php Thu Jan 1 01:00:00 1970
+++ ./themes/engines/phptemplate/user_picture.tpl.php Mon May 1 13:02:45 2006
@@ -0,0 +1,33 @@
+
<?php
+ if (variable_get('user_pictures', 0)) {
+ if ($account->picture && file_exists($account->picture)) {
+//add these lines in case of icon or mini
+ if ($size == 'icon') {
+ $picture = 'files' . variable_get('user_picture_path', 'pictures').'/pictureicon-'. $account->uid . '.jpg';
+ $picture = file_create_url($picture);
+ }
+ else if ($size == 'mini') {
+ $picture = 'files' . variable_get('user_picture_path', 'pictures').'/picturemini-'. $account->uid . '.jpg';
+ $picture = file_create_url($picture);
+ }
+ else {
+ $picture = file_create_url($account->picture);
+ print_r($picture);
+ }
+ }
+ else if (variable_get('user_picture_default', '')) {
+ $picture = variable_get('user_picture_default', '');
+ }
+
+ if (isset($picture)) {
+ $alt = t('%user\'s picture', array('%user' => $account->name ? $account->name : variable_get('anonymous', 'Anonymous')));
+ $picture = theme('image', $picture, $alt, $alt, '', false);
+ if (!empty($account->uid) && user_access('access user profiles')) {
+ $picture = l($picture, "user/$account->uid", array('title' => t('View user profile.')), NULL, NULL, FALSE, TRUE);
+ }
+
+ print_r("<div class=\"picture\">$picture</div>");
+ }
+ }
+
+
?>
ist das überhaupt der passende patch? kann mir jmd sagen, wie ich den genau einfüge? ich nehme an, dass ich die user.module bearbeiten muss. aber wie genau? die zeilen mit -- wegnehmen und die mit ++ einsetzen? wie fun ktioniert das genau? kann mir vielleicht jemand eine "gefixte" user.module schicken? würde kir wirklich sehr helfen
danek fürs lesen in der hoffnung auf eine antwort
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn es ein unified patch
am 02.02.2007 - 15:42 Uhr
Wenn es ein unified patch ist (sieht so aus) dann kommen die Zeilen mit - weg, die mit + dazu, und Zeilen ohne was davor sind nur dazu da, um den Kontext festzulegen (Zeilennummer alleine wäre nicht zuverlässig genug, da in der Datei ja auch andere Änderungen gemacht werden können).
Du kannst das von Hand machen, in der Unix Welt gibts dazu aber zwei Programme, einmal 'diff' um Dateien zu vergleichen und diesen obigen Output zu erzeugen, und dann 'patch' das den Patch liest und auf die Datei anwendet (oder auch wieder rückgängig macht).
danke für deine antwort
am 02.02.2007 - 16:52 Uhr
@frostschutz: danke für deine antwort... ich komme aber nicht weiter
ich bin am verzweifeln und weiß nicht, ob ich bei drupal bleibe! alles ist sehr kompliziert...
gibt es keinen patch oder ähnliches, der dafür sorgt, dass ein userbild (avatar) im profil auf eine bestimmte größe runtergerechnet und dargstellt wird und in einer anderen größe bei forenbeiträgen, gruppenbeiträgen, gästebucheinträgen etc. ich meine, das sind doch absolute standardanforderungen an ein " sog. community cms", oder liege ich da falsch?
ich habe die von mir gewünschten features schon auf zahlreichen seiten gesehen... hat keiner einen tipp wo ich suchen oder was ich machen muss...?
für diejenigen, die das schon hinbekommen haben, was würdet ihr verangen, um das auf meiner "site" (aktuell baustelle) zu implementieren?
Siehe Benutzerhandbuch
am 02.02.2007 - 17:23 Uhr
Patchen unter Windows: http://www.drupalcenter.de/node/305
--
bv - drupalcenter.de