loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Lange Links kürzer und große Bilder kleiner darstellen
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Wünsche, Anregung, Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kalledom



Anmeldungsdatum: 11.04.2008
Beiträge: 735
Wohnort: EU-Großbüllesheim

BeitragVerfasst am: Mi 18.Jun 2008 20:06:01    Titel: Lange Links kürzer und große Bilder kleiner darstellen Bauteile finden Antworten mit Zitat

Hallo,

immer wieder werden super-lange Links in Beiträgen eingesetzt, so daß zum Lesen das Bild Zeile für Zeile mit der horizintalen Bildlaufleiste hin und her geschoben werden muß. Es geht auch anders, was jedoch ein klein wenig Mühe kostet.

Können lange Links nicht automatisch gekürzt oder umgewandelt werden, so daß die normale Breite der Beiträge erhalten bleibt ?

Gleiches gilt für große Bilder, die hochgeladen oder extern abgelegt werden.
Ist es möglich, Bilder ab einer bestimmten Größe / Pixelbreite als kleines Vorschaubild darzustellen, welches dann zum Vergrößern angeklickt werden kann ?

Bei einigen durch lange Links oder riesige Bilder besonders breit dargestellten Beiträgen gebe ich mir immer weniger Mühe, dort noch etwas zu lesen oder zu beantworten.

_________________
MfG Karl-Heinz
HobbyElektronik mehr ....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Mi 18.Jun 2008 20:15:41    Titel: Re: Lange Links kürzer und große Bilder kleiner darstellen Bauteile finden Antworten mit Zitat

kalledom hat folgendes geschrieben:
Können lange Links nicht automatisch gekürzt oder umgewandelt werden, so daß die normale Breite der Beiträge erhalten bleibt ?

Hallo kalledom!

Ich kenne die Forensoftware vom Python-Forum. Diese Forensoftware hat standardmäßig nichts dabei um lange URLs automatisch zu kürzen. Aber ich glaube, etwas von einem Hack gelesen zu haben, der das macht. Es ist natürlich ein Aufwand, diesen Hack einzubauen, da jeder Hack beim Update der Forensoftware wieder neu eingebaut werden muss.

Mehr weiß ich im Moment auch nicht darüber.

lg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
loetadmin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 1022

BeitragVerfasst am: Do 19.Jun 2008 09:33:36    Titel: Bauteile finden Antworten mit Zitat

Ich habe die Stelle im Quelltext gefunden, die für die Umwandlung in Links zuständig ist:


Code:

/**
 * Rewritten by Nathan Codding - Feb 6, 2001.
 * - Goes through the given string, and replaces xxxx://yyyy with an HTML <a> tag linking
 *    to that URL
 * - Goes through the given string, and replaces www.xxxx.yyyy[zzzz] with an HTML <a> tag linking
 *    to http://www.xxxx.yyyy[/zzzz]
 * - Goes through the given string, and replaces xxxx@yyyy with an HTML mailto: tag linking
 *      to that email address
 * - Only matches these 2 patterns either after a space, or at the beginning of a line
 *
 * Notes: the email one might get annoying - it's easy to make it more restrictive, though.. maybe
 * have it require something like xxxx@yyyy.zzzz or such. We'll see.
 */
function make_clickable($text)
{

   // pad it with a space so we can match things at the start of the 1st line.
   $ret = ' ' . $text;

   // matches an "xxxx://yyyy" URL at the start of a line, or after a space.
   // xxxx can only be alpha characters.
   // yyyy is anything up to the first space, newline, comma, double quote or <
   $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);

   // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing
   // Must contain at least 2 dots. xxxx contains either alphanum, or "-"
   // zzzz is optional.. will contain everything up to the first space, newline,
   // comma, double quote or <.
   $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);

   // matches an email@domain type address at the start of a line, or after a space.
   // Note: Only the followed chars are valid; alphanums, "-", "_" and or ".".
   $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);

   // Remove our padding..
   $ret = substr($ret, 1);

   return($ret);
}


Leider reichen meine Kenntnisse über reguläre Expressions nicht aus, um das so umzuformulieren, dass der Linktext verkürzt dargestellt wird. Vielleicht kann ja ein Forumsbenutzer hier weiterhelfen.

Alternativ sollte die Möglichkeit mit dem URL-TAG funktionieren

[url=hier kommt der original Link hin]hier kommt die Bezeichnung für den Link hin[/url]

Sieht dann so aus:

KurzLink

mfg
MV


Zuletzt bearbeitet von loetadmin am Do 19.Jun 2008 09:39:01, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kalledom



Anmeldungsdatum: 11.04.2008
Beiträge: 735
Wohnort: EU-Großbüllesheim

BeitragVerfasst am: Do 19.Jun 2008 10:13:32    Titel: Bauteile finden Antworten mit Zitat

loetadmin hat folgendes geschrieben:
Alternativ sollte die Möglichkeit mit dem URL-TAG funktionieren

[url=hier kommt der original Link hin]hier kommt die Bezeichnung für den Link hin[/url]

Sieht dann so aus:

KurzLink

Ich unterstreiche den KurzLink zusätzlich, da man kurze Links nicht besonders gut erkennt:
[ url=hier kommt der Original Link hin ] [ u ]hier kommt die Bezeichnung für den Link hin[ /u ] [ /url ] (ohne Leerzeichen in den eckigen Klammern)

Sieht dann so aus: KurzLink

_________________
MfG Karl-Heinz
HobbyElektronik mehr ....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 19.Jun 2008 10:31:59    Titel: Bauteile finden Antworten mit Zitat

loetadmin hat folgendes geschrieben:
Ich habe die Stelle im Quelltext gefunden, die für die Umwandlung in Links zuständig ist

Hallo loetadmin!

Das ist leider nicht so einfach machbar.

Ich habe hier die Codestelle aus PHPBB3 raus gesucht, die das Gleiche macht:
Code:
/**
* A subroutine of make_clickable used with preg_replace
* It places correct HTML around an url, shortens the displayed text
* and makes sure no entities are inside URLs
*/
function make_clickable_callback($type, $whitespace, $url, $relative_url, $class)
{
   $orig_url      = $url . $relative_url;
   $append         = '';
   $url         = htmlspecialchars_decode($url);
   $relative_url   = htmlspecialchars_decode($relative_url);

   // make sure no HTML entities were matched
   $chars = array('<', '>', '"');
   $split = false;

   foreach ($chars as $char)
   {
      $next_split = strpos($url, $char);
      if ($next_split !== false)
      {
         $split = ($split !== false) ? min($split, $next_split) : $next_split;
      }
   }

   if ($split !== false)
   {
      // an HTML entity was found, so the URL has to end before it
      $append         = substr($url, $split) . $relative_url;
      $url         = substr($url, 0, $split);
      $relative_url   = '';
   }
   else if ($relative_url)
   {
      // same for $relative_url
      $split = false;
      foreach ($chars as $char)
      {
         $next_split = strpos($relative_url, $char);
         if ($next_split !== false)
         {
            $split = ($split !== false) ? min($split, $next_split) : $next_split;
         }
      }

      if ($split !== false)
      {
         $append         = substr($relative_url, $split);
         $relative_url   = substr($relative_url, 0, $split);
      }
   }

   // if the last character of the url is a punctuation mark, exclude it from the url
   $last_char = ($relative_url) ? $relative_url[strlen($relative_url) - 1] : $url[strlen($url) - 1];

   switch ($last_char)
   {
      case '.':
      case '?':
      case '!':
      case ':':
      case ',':
         $append = $last_char;
         if ($relative_url)
         {
            $relative_url = substr($relative_url, 0, -1);
         }
         else
         {
            $url = substr($url, 0, -1);
         }
      break;
   }

   $short_url = (strlen($url) > 55) ? substr($url, 0, 39) . ' ... ' . substr($url, -10) : $url;

   switch ($type)
   {
      case MAGIC_URL_LOCAL:
         $tag         = 'l';
         $relative_url   = preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
         $url         = $url . '/' . $relative_url;
         $text         = $relative_url;
         
         // this url goes to http://domain.tld/path/to/board/ which
         // would result in an empty link if treated as local so
         // don't touch it and let MAGIC_URL_FULL take care of it.
         if (!$relative_url)
         {
            return $orig_url . '/'; // slash is taken away by relative url pattern
         }
      break;

      case MAGIC_URL_FULL:
         $tag   = 'm';
         $text   = $short_url;
      break;

      case MAGIC_URL_WWW:
         $tag   = 'w';
         $url   = 'http://' . $url;
         $text   = $short_url;
      break;

      case MAGIC_URL_EMAIL:
         $tag   = 'e';
         $text   = $short_url;
         $url   = 'mailto:' . $url;
      break;
   }

   $url   = htmlspecialchars($url);
   $text   = htmlspecialchars($text);
   $append   = htmlspecialchars($append);

   $html   = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";

   return $html;
}

/**
* make_clickable function
*
* Replace magic urls of form http://xxx.xxx., www.xxx. and xxx@xxx.xxx.
* Cuts down displayed size of link if over 50 chars, turns absolute links
* into relative versions when the server/script path matches the link
*/
function make_clickable($text, $server_url = false, $class = 'postlink')
{
   if ($server_url === false)
   {
      $server_url = generate_board_url();
   }

   static $magic_url_match;
   static $magic_url_replace;
   static $static_class;

   if (!is_array($magic_url_match) || $static_class != $class)
   {
      $static_class = $class;
      $class = ($static_class) ? ' class="' . $static_class . '"' : '';
      $local_class = ($static_class) ? ' class="' . $static_class . '-local"' : '';

      $magic_url_match = $magic_url_replace = array();
      // Be sure to not let the matches cross over. ;)

      // relative urls for this board
      $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
      $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";

      // matches a xxxx://aaaaa.bbb.cccc. ...
      $magic_url_match[] = '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#ie';
      $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_FULL, '\$1', '\$2', '', '$class')";

      // matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
      $magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ie';
      $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_WWW, '\$1', '\$2', '', '$class')";

      // matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
      $magic_url_match[] = '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/ie';
      $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_EMAIL, '\$1', '\$2', '', '')";
   }

   return preg_replace($magic_url_match, $magic_url_replace, $text);
}

Wie man sieht, ist das gar nicht mal so unkompliziert. Ich kann PHP leider nicht.

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 19.Jun 2008 10:38:59    Titel: Bauteile finden Antworten mit Zitat

kalledom hat folgendes geschrieben:
Ich unterstreiche den KurzLink zusätzlich, da man kurze Links nicht besonders gut erkennt

Hallo!

Zumindest diese Zusatzarbeit könnte man umgehen, indem man eine Kleinigkeit im CSS-File ändert. Was der Lesbarkeit wirklich sehr zuträglich wäre.

Dieses Thema hatte ich bereits in einem anderen Forum aufgegriffen. Dort wurde aber inzwischen die Forensoftware getauscht. So dass das Problem dort nicht mehr existiert. Dort steht auch, wie man den Style ändern müsste: http://transistornet.de/viewtopic.php?f=5&t=6184

mfg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
kalledom



Anmeldungsdatum: 11.04.2008
Beiträge: 735
Wohnort: EU-Großbüllesheim

BeitragVerfasst am: Do 19.Jun 2008 12:06:02    Titel: Bauteile finden Antworten mit Zitat

@gerold
ich kann bei CSS, PHP und was es sonst noch so gibt leider nicht helfen.
Meine Internetseiten sind ausnahmslos von mir mit einem ASCII-Text-Editor (UltraEdit) in HTML erstellt. Da kann man mit dem ältesten Browser noch alles sehen Wink

_________________
MfG Karl-Heinz
HobbyElektronik mehr ....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
loetadmin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 1022

BeitragVerfasst am: Do 19.Jun 2008 15:35:59    Titel: Bauteile finden Antworten mit Zitat

Das neue Codefragment funktioniert nicht, habs grad ausprobiert. Es ruft noch andere PHPBB3-Funktionen auf.

Naja, wieder ein Grund mehr, auf PHPBB3 aufzurüsten...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: Do 19.Jun 2008 15:46:26    Titel: Bauteile finden Antworten mit Zitat

PHPbb3 soll angeblich wohl auch für Moderatoren einfacher zu bedienen sein???

Ich hab aber keine ahnung...

Gruß Rainer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Do 19.Jun 2008 17:44:39    Titel: Bauteile finden Antworten mit Zitat

Hallo loetadmin!
loetadmin hat folgendes geschrieben:
Das neue Codefragment funktioniert nicht, habs grad ausprobiert. Es ruft noch andere PHPBB3-Funktionen auf.

Das war klar. Man müsste einiges an diesen Funktionen ändern, damit sie im PhpBB2 funktionieren. Zumindest zeigen sie auf, dass man nicht einfach nur die Regular Expressions ändern muss.

loetadmin hat folgendes geschrieben:
Naja, wieder ein Grund mehr, auf PHPBB3 aufzurüsten...

Der einzige Grund der von meiner Seite aus dagegen spricht: Es sieht s c h e i ß e aus, ist im Gesamten nicht mehr so übersichtlich und aus Benutzersicht nicht mehr so einfach bedienbar wie das PhpBB2. Ich sehe das an http://transistornet.de/. Die Buttons zum Bedienen sind überall -- aber nicht da wo man sie als Benutzer erwartet. Auch dieses ständige aufblinken der ganzen Zeile, wenn man mit der Maus über ein Forum oder eine Thema fährt, macht mich narrisch. Vielleicht sollte man noch ein paar phpBB3-Versionen abwarten. Wink

lg
Gerold
Smile

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Di 24.Jun 2008 14:46:36    Titel: Bauteile finden Antworten mit Zitat

Hallo loetadmin!

Da mich diese langen Links sehr stören, habe ich mich mal hingesetzt und ein Javascript dagegen entwickelt. Dieses Javascript müsste nur kurz vor dem abschließenden Body-Tag untergebracht werden.

http://paste.pocoo.org/show/77594/

Ich weiß allerdings nicht wo man das im phpBB2 einbauen muss.

lg
Gerold
Smile

EDIT:

Kommando retour! Das Skript funktioniert im Internet Explorer noch nicht. Sad
Ich werde noch nachsehen, was man für den sch... IE anpassen muss.

.

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
gerold



Anmeldungsdatum: 27.07.2007
Beiträge: 927
Wohnort: Oberhofen im Inntal (Tirol)

BeitragVerfasst am: Di 24.Jun 2008 15:46:25    Titel: Bauteile finden Antworten mit Zitat

Hallo loetadmin!

So, das JavaScript ist jetzt fertig. Es funktioniert garantiert im Firefox 2 und im Internet Explorer 6.

(alte Version) http://paste.pocoo.org/show/77596/

Test: http://halvar.at/krimskrams2/abbreviate_postlinks_test.html

Das Skript wurde in den Header verlegt.

mfg
Gerold
Smile

PS: Kleine Verbesserung eingebaut. Jetzt werden nur noch dann die Links gekürzt, wenn diese mit "http:" anfangen.
(alte Version) http://paste.pocoo.org/show/77606/

PS2: Besser auf 70 Zeichen kürzen und den linken Bereich der URL länger halten.
(neueste Version) http://paste.pocoo.org/show/77731/

.

_________________
http://halvar.at | http://sw3.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.


Zuletzt bearbeitet von gerold am Mi 25.Jun 2008 13:54:47, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
loetadmin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 1022

BeitragVerfasst am: Di 24.Jun 2008 16:02:39    Titel: Bauteile finden Antworten mit Zitat

Super, danke, werd ich in Kürze mal ausprobieren!

mfg
MV
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
loetadmin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 1022

BeitragVerfasst am: Do 26.Jun 2008 15:24:08    Titel: Bauteile finden Antworten mit Zitat

Dies ist ein sehr langer link (der allerdings ins leere führt...)

http://www.loetstelle.net/langerlink/mit_viel_text.php?undauchvielenparametern=1/wirdderjetztabgekürzt?

Das Java Script ist jetzt im Header, aber irgendwie tut sich nichts...


Zuletzt bearbeitet von loetadmin am Do 26.Jun 2008 15:48:30, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
loetadmin
Site Admin


Anmeldungsdatum: 31.12.2004
Beiträge: 1022

BeitragVerfasst am: Do 26.Jun 2008 15:38:42    Titel: Bauteile finden Antworten mit Zitat

Liegt wahrscheinlich daran, dass die Links des phpBB nicht als Klasse 'postlink' erscheinen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Anzeige






Verfasst am: Heute 20:57:18    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> Wünsche, Anregung, Kritik Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1221947
©opyright by Markus Vohburger 2005 All Rights reserved