[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
sleightofhand - Schriftersetzung reloaded. - Seite 5 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

4. Aug 2010, 17:35

Ich weiss, keine Doppelposts und so, aber ausnahmsweise:

Hi Dave

Habe noch einen Verbesserungsvorschlag für die neuste Version (wenn dieses Phänomen auf diese überhaupt noch zutrifft).

In der momentan eingesetzen Version (r12) ist es so das wenn ein Buchstabe mit Unterlänge eingegeben wird, dass das daraus generierte Bild je nach Schriftart um einiges höher ist als wenn ein Buchstabe ohne Unterlänge eingegeben worden ist. So ist zum Beispiel der Abstand von Headline zu Headline (je nachdem ob mit oder ohne Unterlänge) zum nächsten darunterliegenden Element jeweils unterschiedlich, was zum Beispiel in einem Artikel mit mehreren gerenderten Headlines sehr komisch aussieht.

Könnte man das nicht so lösen, dass man, egal ob der Text Buchstaben mit Unterlägen enthält, die Höhe des generierten Bilds stets quasi auf die maximal mögliche Höhe setzt? Bzw. die Höhe so definiert, als ob ein Buchstabe mit Unterlänge eingegeben worden wäre?

Ich hoffe du verstehst was ich meine.

Vielen Dank!
Gruss
y
MASSIF Webdesign Studio

Benutzeravatar
littledave
Beiträge: 144
Registriert: 25. Jan 2006, 14:04
Wohnort: Coburg, Germany

4. Aug 2010, 18:22

Hi Yves,

die Funktionalität gab's leider erst ab r15.

Der Fehler liegt in class.sleightofhand.php:

Code: Alles auswählen


if (count($lines)==1) {
			$newHeight = $newY + $size['height'];
		} else {
			$newHeight = $newY;
		}	
^^ hier muss wahrscheinlich irgendwas angepasst werden, falls du experimentieren möchtest. Momentan habe ich leider keinen Rechner zu Hause um den Bug beheben zu können.

Dave

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

5. Aug 2010, 15:59

littledave hat geschrieben:Hi Yves,

die Funktionalität gab's leider erst ab r15.

Der Fehler liegt in class.sleightofhand.php:

Code: Alles auswählen


if (count($lines)==1) {
			$newHeight = $newY + $size['height'];
		} else {
			$newHeight = $newY;
		}	
^^ hier muss wahrscheinlich irgendwas angepasst werden, falls du experimentieren möchtest. Momentan habe ich leider keinen Rechner zu Hause um den Bug beheben zu können.

Dave
Hi Dave

EDIT:
hab das Problem nun lösen können!

Lag am $offset_y auf Zeile 118

Aus irgendeinem Grund liefert die Funktion convertBoundingBox einen zu hohen yOffset. Ich hab nun auf Zeile 118 einfach $offset_y = $size['yOffset']-22; eingepflanzt. Scheint zu funzen.

Die Frage ist halt ob das dann auch bei anderen Schriftarten funktioniert. Die Funktion convertBoundingBox scheint in Ordnung bzw. kann da nichts verkehrtes erkennen. Trotzdem liefert sie den falschen Wert zurück. Stimmt womöglich etwas mit der Variable $size_multiply nicht?

... Ich seh echt nicht wo der Fehler liegt, falls es denn einen gibt.

Hoffe es hilft trotzdem ;) habe fast einen ganzen Tag nur mit diesem Problem verbracht, mein Scheff wird mich killen wenn er davon erfährt :P

gruss
y

Gruss
Yves
MASSIF Webdesign Studio

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

5. Aug 2010, 20:18

Follow up:

Hat doch nicht gereicht. Je nach Schriftgrösse wird die Unterlänge leider wieder abgeschnitten. :?

Hab's nun so gelöst:

Zeile 104 in class.sleightofhand.inc.php folgendes eingefügt:

Code: Alles auswählen

		
$offsetCorrection = $size_multiply/3;
und auf Zeile 119 "$offset_y = $size['yOffset'];" ersetzt mit:

Code: Alles auswählen

$offset_y = $size['yOffset']-$offsetCorrection;
So scheint es, zumindest in den meisten Fällen, zu klappen.

Hab das relativ schnell so gelöst da ich wie gesagt etwas unter Zeitdruck stehe, gibt bestimmt noch eine bessere Methode.

Gruss
Yves
MASSIF Webdesign Studio

Benutzeravatar
nuxx
Beiträge: 164
Registriert: 16. Dez 2005, 18:45
Wohnort: Kaputtgart 21

2. Sep 2010, 14:15

Hallo!
Ich verwende ebenfalls R4.3.1
Umlaute funktionieren leider nicht mit der r18, deshalb hab ich auf die svn12 zurückgegriffen. Damit gehen zwar die Umlaute aber leider hab ich folgende Probleme:

text-align' => 'c' ,
'rotateX' => '30',

sind ohne Funktion.

Wäre schön wenn ich das mit Eurer hilfe hinbekomme :)

Eine Anregung habe ich für die nächste Version:
Einen "Rand" oder "Schatten" um den Text wäre hübsch.

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

2. Sep 2010, 15:06

nuxx hat geschrieben:Hallo!
Umlaute funktionieren leider nicht mit der r18, deshalb hab ich auf die svn12 zurückgegriffen.
Komisch, bei mir funktionieren Umlaute problemlos ...

welche Schrift benützt du? bzw. vefügt deine Schrift überhaupt über umlaute? versuchs sonst mal mit der mitgelieferten Schriftdatei, die verfügt ganz bestimmt über umlaute.
MASSIF Webdesign Studio

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

14. Sep 2010, 16:39

Umlaute funktionieren bei mir auch nicht, der Font hat sicher Umlaute (war OTF, habe mit fontforge konvertiert)

[ externes Bild ]
(anmerkung: das "&" ist von einem test mit htmlspecialchars() )

Benutzeravatar
robcs
Beiträge: 7
Registriert: 19. Dez 2008, 12:45

14. Sep 2010, 16:43

verusch mal anstatt ...

Code: Alles auswählen

echo a561_sleightofhand(array(
		'text' => "REX_VALUE[1]",
...
folgendes

Code: Alles auswählen

echo a561_sleightofhand(array(
		'text' => "REX_HTML_VALUE[1]",
...
hat bei mir geholfen
rob

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

14. Sep 2010, 16:45

bitte zuerst mit der mitgelieferten schrift testen, da diese GANZ sicher umlaute enthält. nur weil das original OTF umlaute drin hatte, heissts noch lange nicht das diese auch konvertiert worden sind. spreche aus erfahrung, hab das auch schon erlebt und war mir zuerst auch sicher ;)
MASSIF Webdesign Studio

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

14. Sep 2010, 16:48

Danke, habe beides ausprobiert, sowohl REX_HTML_VALUE[1] als auch Chinese_Ruler.ttf - sieht noch genauso mit Fragezeichen angereichert aus.

mein modul ist wie das original:

Code: Alles auswählen

<?php
// Module Output
//-----------------------------------------------------------------

echo "REX_VALUE[1]";

if ("REX_VALUE[1]"!="" && "REX_VALUE[2]"!="") {

	if (OOAddon::isAvailable('sleightofhand')) {
		echo a561_sleightofhand(array(
			'text' => "REX_HTML_VALUE[1]",
			'prefix' => '<REX_VALUE[2]>',
			'suffix' => "</REX_VALUE[2]>",
			'link' => '#',
			'font' => 'Chinese_Ruler.ttf',
			'color' => array(0,0,0),
			'mouseover' => array(255,0,0),
			'size' => '30',
			'spacing' => '1.5'
		));
		
		
	}
}
?>

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

14. Sep 2010, 16:57

schreib mal anstelle von REX_VALUE[1] einfach direkt ein wort mit umlauten rein (zbsp.: müssen), was passiert nun?

ich tippe mal auf ein encoding problem ...
MASSIF Webdesign Studio

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

14. Sep 2010, 17:06

'text' => "ÖÄÜ öäü ß &$ 2010", ergibt immer noch ????&$ 2010

Oder muss ich mir den DOCTYPE anschauen? Die Fonts werden doch vorher gerendert..

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

14. Sep 2010, 17:17

wie ist die seite encodiert? utf-8? kannst du mir eine PM mit dem link zur seite schicken?

die schrift wird gerendert bevor html ausgegeben wird, php ist aber auch von codierung betroffen. mit dem doctype hat das imo nichts zu tun.
MASSIF Webdesign Studio

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

14. Sep 2010, 17:33

ynamite hat geschrieben:wie ist die seite encodiert? utf-8?
aha, da war der bösewicht. ich habe R4.3.1 installiert, und im install gab es keine auswahl, de_de_utf8 zu installieren, ich dachte das sei inzwischen die einzige option. ich habe mal nachgesehen - und es war doch noch ISO. umgestellt, und jetzt läufts!
8)

danke!

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

14. Sep 2010, 17:40

dacht ichs mir doch! super, freut mich das es nun klappt ;)
MASSIF Webdesign Studio

monster
Beiträge: 11
Registriert: 30. Sep 2008, 14:43

28. Sep 2010, 16:37

hi,

gibt es eine möglichkeit die Hintergrundfarbe anzugeben?

so, dass der text schwarz ist und beim mouseover auf weiß mit schwarzem hintergrund wechselt?

Und ich persönlich fänd es gut wenn man die Farben auch in HEX angeben könnte, z.B. "#ff66aa". Natürlich kann ich auch array(hexdec('ff'),hexdec... schreiben aber nur so als anregung :)

Aber echt ein sehr einfach zu benutzendes addon, thx.

Gruß,
monster

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

28. Sep 2010, 16:45

monster hat geschrieben:
gibt es eine möglichkeit die Hintergrundfarbe anzugeben?
Das klappt durchaus, da die Schriften ja als PNG-Dateien gerendert werden, musst du nur dem Element, welches die gerenderte Headline beinhaltet, mit der gewünschten Farbe hinterlegen. Diese kannst du dann auch ganz einfach bei einem mouseover (bzw. :hover) per CSS ändern. Nur IE6 wird das wohl nicht aus dem FF können.
MASSIF Webdesign Studio

monster
Beiträge: 11
Registriert: 30. Sep 2008, 14:43

28. Sep 2010, 17:05

cool, danke, funktioniert.
ich hatte das auch schon versucht aber wohl im css mist gebaut weshalb ich dachte es würde nicht gehen XD

Benutzeravatar
ynamite
Beiträge: 143
Registriert: 26. Jan 2007, 14:59
Wohnort: baden
Kontaktdaten: Website

28. Sep 2010, 17:07

super! freut mich das es klappt ;)
MASSIF Webdesign Studio

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: Probleme

10. Nov 2010, 11:02

ynamite hat geschrieben:Hallo

Mit der aktuellsten Version und deinen mitgelieferten Beispielschriften schneidet mir das Addon die Unterlängen ab, also zum Beispiel beim Wort "Ablage" wird der untere Teil vom "G" abgeschnitten.
Hallo,
gibt es diesbezüglich schon was neues?
Ich verwende v.18 mit redaxo 4.3 und kann nicht auf v.15 zurück greifen, weil ich die möglichkeit der schriftzentrierung benötige.
Also bei mir ist es so, dass nur bei Mehrzeiligen texten die Unterlängen der letzten Zeile abgeschnitten werden. Wenn es nur eine Zeile ist, dann passts auch mit den Unterlängen.
Mit der Schrift "Korean_Calligraphy" sieht mans beim "g" recht gut:
eine zeile passt, mehrer zeilen: letzte zeile abgeschnitten
Ich hab ein wenig herum experimentiert bei

Code: Alles auswählen

if (count($lines)==1) {
         $newHeight = $newY + $size['height'];
      } else {
         $newHeight = $newY;
      }    
aber bin noch zu keinem brauchbaren ergebnis gekommen

Benutzeravatar
littledave
Beiträge: 144
Registriert: 25. Jan 2006, 14:04
Wohnort: Coburg, Germany

10. Nov 2010, 11:08

Hi Steri

Probiere's mit:

Code: Alles auswählen

###############################################################
## Deal with multiple lines

$spacing = floatVal($spacing);
if ($spacing == 0 ) {
	$spacing = 1.4;
}
$x = $offset_x;
$y = $offset_y;
$lines=explode("\n",$this->setting('text'));
$newY = 0;
for($i=1; $i< count($lines); $i++)
{	$newY=$y+($i * $size_multiply * $spacing);			
}
if (count($lines)==1) {
	$newHeight = $newY + $size['height'];
} else {
	$newHeight = $newY+(10*count($lines)); // quick+dirty bugfix
}
###############################################################
Den Wert 10 kannst Du beliebig für deine Zwecke anpassen. Es *sollte* funktionieren (habe's aber nicht getestet). Bitte nach der Anpassung den Redaxo-Cache löschen.

lg

Dave

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

10. Nov 2010, 11:17

Hallo Dave,
danke für die schnelle Antwort.
Das wars leider nicht. Jetzt ist es so, dass sich die Bildhöhe vergrößert hat. Dadurch sehe ich darunter nochmal eine kleine teile der ersten zeile - aber die letzte zeile ist nach wie vor abgeschnitten.
Ich glaube das problem entsteht schon beim generieren des Bildes. Da werden die Unterlängen der letzten Zeile irgendwie nicht mehr mit gerendert und abgeschnitten.

lg steri

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

10. Nov 2010, 12:01

Hallo Dave,
weiss nicht was ich vorher gemacht habe - aber mit deinem bugfix scheint es nun doch zu funktionieren!
(vielleicht war der cache nicht richtig gelöscht)
Vielen Dank!

lg steri

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

10. Nov 2010, 12:28

scheinbar beeinflusst der wert quality nun auch die zeilenhöhe der letzten zeile; vorher hatte ich einen anderen wert als 4 - darum dürfte es am anfang nicht geklappt haben.
will man eine höhere qualtität muss man wahrscheinlich den wert 10 beim bugfix dementsprechend anpassen.

Benutzeravatar
littledave
Beiträge: 144
Registriert: 25. Jan 2006, 14:04
Wohnort: Coburg, Germany

10. Dez 2010, 16:42

Hallo,
monster:
>> Und ich persönlich fänd es gut wenn man die Farben auch in HEX angeben könnte, z.B. "#ff66aa". Natürlich kann ich auch array(hexdec('ff'),hexdec... schreiben aber nur so als anregung.
ynamite/steri:
>> Mit der aktuellsten Version und deinen mitgelieferten Beispielschriften schneidet mir das Addon die Unterlängen ab, also zum Beispiel beim Wort "Ablage" wird der untere Teil vom "G" abgeschnitten.
Ich habe gerade r19 fertiggestellt. In der Version werden Schriften mit Baselines nicht mehr abgeschnitten und man kann nun auch HEX-Werte verwenden.

Downloadlink: http://bit.ly/sleightofhand

Wie immer, bitte nach der Aktualisierung den REDAXO-Cache löschen.

lg

Dave

Zurück zu „Allgemeines [R4]“