Jetzt kostenlos Anmelden!

WebWuschel Männlich

lernt alles kennen

Beiträge: 98

Geschlecht: Männlich

PHPKIT Version: 1.6.5

1

Mittwoch, 16. Juli 2008, 13:03

Bildbreite in BB-Code einfügen

Hallo Leute ich habe mein Problem nun gelöst bekommen. Für alle die sich diese Funktion eventuell auch einbauen wollen, hier die Code-Schnipsel:

sucht in der admin/lib/lib_parse.php

PHP-Quelltext

1
2
3
4
var $imagetags=array(
  array('tag'=>'img','html'=>'<img border="0" alt="" src="{image}" />'),
  array('tag'=>'imgr','html'=>'<img border="0" alt="" src="{image}" align="right" />'),
  array('tag'=>'imgl','html'=>'<img border="0" alt="" src="{image}" align="left" />'));


und ersetzt es mit

PHP-Quelltext

1
2
3
4
var $imagetags=array(
  array('tag'=>'img','html'=>'<img border="0" alt="" src="{image}" width="{option}" />'),
 array('tag'=>'imgr','html'=>'<img border="0" alt="" src="{image}" width="{option}" style="float:right; margin-left:20px; margin-bottom:5px" />'),
 array('tag'=>'imgl','html'=>'<img border="0" alt="" src="{image}" width="{option}" style="float:left; margin-right:20px; margin-bottom:5px" />'));


dann sucht nach

PHP-Quelltext

1
2
3
4
5
6
7
function parseimages ($text='') {
  $tags=$this->imagetags;
  foreach ($tags as $code) {
 $text=preg_replace("#\[".$code['tag']."]([^\"\?\&]*\.(gif|jpg|jpeg|bmp|png))\[\/".$code['tag']."\]#eiU","\$this->image('$code[html]','\\1')",$text);
   }
  return $text;
  }


und ersetzt es durch

PHP-Quelltext

1
2
3
4
5
6
7
8
function parseimages ($text='') {
  $tags=$this->imagetags;
  foreach ($tags as $code) {
 $text=preg_replace("#\[".$code['tag']."=(.*)\]([^\"\?\&]*\.(gif|jpg|jpeg|bmp|png))\[\/".$code['tag']."\]#eiU","\$this->image('$code[html]','\\2','\\1')",$text);
 $text=preg_replace("#\[".$code['tag']."\]([^\"\?\&]*\.(gif|jpg|jpeg|bmp|png))\[\/".$code['tag']."\]#eiU","\$this->image('$code[html]','\\1')",$text);
   }
  return $text;
  }


dann suchen nach

PHP-Quelltext

1
2
3
function image($html=''$url='') {
  return str_replace("{image}",$url,$html);
  }


und ersetzen mit

PHP-Quelltext

1
2
3
4
function image($html=''$url=''$width='') {
  $rewritedimage str_replace("\\\"","\"",str_replace("{option}",trim($width),str_replace("{image}",trim($url),$html)));
  return $rewritedimage;
  }


nun in der datei admin/lib/mycode.js

suchen nach

Quellcode

1
searchfailed = "Die Suche lieferte kein Ergebnis.";


und fügt darunter ein

Quellcode

1
2
bildquelle = "Bitte geben Sie den relativen Pfad zur Bildquelle an.";
bildbreite = "Geben Sie die Bildbreite in Pixel an. Maximal 500px";


jetzt sucht nach

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function mycode(myform,mycode,fensterausgabe) {
 setfocus(myform);
 if (mymode(myform)) {
  if (textmarkiert) var direkttext=textmarkiert;
  else var direkttext=fensterausgabe;
  RegExp.multiline=true;
  direkttext = direkttext.replace(/\n/g, "\\n");
  inserttext = prompt(standard+"\n["+mycode+"]Ihr Text[/"+mycode+"]",direkttext);
  inserttext = inserttext.replace(/\\n/g, "\n");
  if ((inserttext != null) && (inserttext != "")) { 
   auswahltext = "["+mycode+"]"+inserttext+"[/"+mycode+"]";
   mytextadd(auswahltext,myform);
  }
 }
 else {
  untersagt = false;
  for (i = 0; i < bbtags.length; i++) {
   if (bbtags[i] == mycode) untersagt = true;
  }
  if (!untersagt) {
   myform.content.value += "["+mycode+"]";
   arraypush(bbtags,mycode);
  }
 }
 setfocus(myform);
}


und fügt darunter ein

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//*****Fenstereingabe Image-Width by WebWuschel******
function myimg(myform,mycode,fensterausgabe) {
setfocus(myform);
if ((mycode=="IMG") || (mycode=="IMGR") || (mycode=="IMGL")) {
var direkttext=fensterausgabe;
inserttext = prompt(bildquelle+"\n["+mycode+"]Bildpfad[/"+mycode+"]",direkttext);
insertwidth= prompt(bildbreite+" z.B:300\nFür Original Bildgröße Eingabe leer lassen","");
if ((inserttext != null) && (inserttext != '')) {
if ((insertwidth != null) && (insertwidth != '') && (insertwidth <= '500')) {
auswahltext = "["+mycode+"="+insertwidth+"]"+inserttext+"[/"+mycode+"]";
mytextadd(auswahltext,myform);
}
else{
auswahltext = "["+mycode+"]"+inserttext+"[/"+mycode+"]";
mytextadd(auswahltext,myform);

}

}
}
else {
untersagt = false;
for (i = 0; i < bbtags.length; i++) {
if (bbtags[i] == mycode) untersagt = true;
}
if (!untersagt) {
myform.content.value += "["+mycode+"]";
arraypush(bbtags,mycode);
}
}
setfocus(myform);
}
//*****END Fenstereingabe Image-Width by WebWuschel******


jetzt sucht im ordner templates die datei format_text.htm

und ändert

Quellcode

1
<td><a href="javascript:;" onclick="mycode(document.myform,'IMG','http://');" onFocus="blur();"><img src="images/bbcode/img.gif" width="20" height="20" alt="Grafik einfuegen" border="0" /></a></td>


mit

Quellcode

1
<td><a href="javascript:;" onclick="myimg(document.myform,'IMG','http://');" onFocus="blur();"><img src="images/bbcode/img.gif" width="20" height="20" alt="Grafik einfuegen" border="0" /></a></td>


Wenn Ihr bereits Buttons für IMGR und IMGL habt, dann könnt ihr diese noch mit

Quellcode

1
2
<td><a href="javascript:;" onclick="myimg(document.myform,'IMGL','http://');" onFocus="blur();"><img src="images/bbcode/imgl.gif" width="20" height="20" alt="Grafik linksbündig einfuegen" border="0" /></a></td>
 <td><a href="javascript:;" onclick="myimg(document.myform,'IMGR','http://');" onFocus="blur();"><img src="images/bbcode/imgr.gif" width="20" height="20" alt="Grafik rechtsbündig einfuegen" border="0" /></a></td>


erweitern.

Um die Erweiterung auch im Adminbereich nutzen zu können müsst Ihr noch im Template
admin/templates/content/compose_step3_bbcode.htm die beiden Änderungen vornehmen wie in der format_text.htm (siehe oben dran)

Ich hab das getestet bei mir mit 1.6.03. Aber bitte vor den Änderungen Backups der jeweiligen Dateien machen. Einfügen des Codes auf eigene Gefahr.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »WebWuschel« (17. Juli 2008, 15:23)

  • Zum Seitenanfang
  • Zum Seitenende

Flachzange Männlich

postet ab und an hier

Beiträge: 200

Geschlecht: Männlich

PHPKIT Version: 1.6.5

2

Mittwoch, 16. Juli 2008, 15:30

Ich habs mal bei 1.6.1 eingebaut. Bisher funktioniert prima !
Vielen Dank
  • Zum Seitenanfang
  • Zum Seitenende

Flachzange Männlich

postet ab und an hier

Beiträge: 200

Geschlecht: Männlich

PHPKIT Version: 1.6.5

3

Mittwoch, 13. August 2008, 09:47

So, jetzt habe ich doch noch ein Problem entdeckt.
Wenn die Breitenangabe nicht gemacht wird, dann wird das Bild unter IE7 nicht angezeigt. Im FF funktioniert alles wie es soll.
Hast du das auch schon bemerkt?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Flachzange« (13. August 2008, 09:55)

  • Zum Seitenanfang
  • Zum Seitenende

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 073

Geschlecht: Männlich

PHPKIT Version: keine

4

Mittwoch, 13. August 2008, 09:51

is ja auch logisch, da width="" dennoch gesetzt wird nur ohne inhalt..
:thumbsup:    :thumbsup:       *tc*       :thumbsup:    :thumbsup:
8o           Achtung: Dirk Kántor ist unterwegs!           8o
Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben.
  • Zum Seitenanfang
  • Zum Seitenende

Flachzange Männlich

postet ab und an hier

Beiträge: 200

Geschlecht: Männlich

PHPKIT Version: 1.6.5

5

Mittwoch, 13. August 2008, 09:59

Das müsste sich aber doch noch anpassen lassen, das nur bei Usereingabe width als Wert gesetzt wird, oder Wuschel?
  • Zum Seitenanfang
  • Zum Seitenende

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 073

Geschlecht: Männlich

PHPKIT Version: keine

6

Mittwoch, 13. August 2008, 10:07

die option wird direkt gesetzt durch diesen code:

PHP-Quelltext

1
2
3
4
var $imagetags=array(
  array('tag'=>'img','html'=>'<img border="0" alt="" src="{image}" width="{option}" />'),
 array('tag'=>'imgr','html'=>'<img border="0" alt="" src="{image}" width="{option}" style="float:right; margin-left:20px; margin-bottom:5px" />'),
 array('tag'=>'imgl','html'=>'<img border="0" alt="" src="{image}" width="{option}" style="float:left; margin-right:20px; margin-bottom:5px" />'));


dieser wird automatisch gesetzt unabhängig ob die breite angegeben wurde

sollte ggf. so abändern, dass man allein dieses {option} stehen lässt ohne width=""

und beim ersetzen dieses code sollte halt das width="" erst gesetzt werden..

bsp so:

PHP-Quelltext

1
2
3
4
function image($html=''$url=''$width='') {
  $rewritedimage str_replace("\\\"","\"",str_replace("{option}",'width="'.trim($width).'"',str_replace("{image}",trim($url),$html)));
  return $rewritedimage;
  }


und der obere ode also so:

PHP-Quelltext

1
2
3
4
var $imagetags=array(
  array('tag'=>'img','html'=>'<img border="0" alt="" src="{image}" {option} />'),
 array('tag'=>'imgr','html'=>'<img border="0" alt="" src="{image}" {option} style="float:right; margin-left:20px; margin-bottom:5px" />'),
 array('tag'=>'imgl','html'=>'<img border="0" alt="" src="{image}" {option} style="float:left; margin-right:20px; margin-bottom:5px" />'));
:thumbsup:    :thumbsup:       *tc*       :thumbsup:    :thumbsup:
8o           Achtung: Dirk Kántor ist unterwegs!           8o
Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben.
  • Zum Seitenanfang
  • Zum Seitenende

Flachzange Männlich

postet ab und an hier

Beiträge: 200

Geschlecht: Männlich

PHPKIT Version: 1.6.5

7

Mittwoch, 13. August 2008, 10:27

Danke Dooki,
leider bringt es noch nicht den gewünschten Erfolg. width erscheint dann trotzdem im Quelltext ohne Wert dahinter.
Wie wäre es, automatisch die auslesen und einfügen zu lassen, wenn keine Useringabe erfolgt?
Hmm, aber eigentlich wäre es auch nicht doof, wenn width nur erscheint, wenn eine Useringabe erfolgte.
Was macht da mehr Sinn?
  • Zum Seitenanfang
  • Zum Seitenende

Dirk Kántor Männlich

aká Dooki

Beiträge: 2 073

Geschlecht: Männlich

PHPKIT Version: keine

8

Mittwoch, 13. August 2008, 11:00

ah sehe grad hab ne abfrage vergessen im code.. moment hab grad keine zeit ;)

EDIT: so.... zeit is da ^^

die function muss so aussehen:

PHP-Quelltext

1
2
3
4
5
function image($html=''$url=''$width='') {
  if(trim($width) != ""$rewritedimage str_replace("\\\"","\"",str_replace("{option}",'width="'.trim($width).'"',str_replace("{image}",trim($url),$html)));
  else $rewritedimage str_replace("\\\"","\"",str_replace("{image}",trim($url),$html));
  return $rewritedimage;
  }
:thumbsup:    :thumbsup:       *tc*       :thumbsup:    :thumbsup:
8o           Achtung: Dirk Kántor ist unterwegs!           8o
Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben.
  • Zum Seitenanfang
  • Zum Seitenende

Flachzange Männlich

postet ab und an hier

Beiträge: 200

Geschlecht: Männlich

PHPKIT Version: 1.6.5

9

Mittwoch, 13. August 2008, 11:21

Funktioniert!
Kaum macht mans richtig..... schon gehts! ^^ (sage ich mir tausend mal am Tag)

Vielen Dank für die Hilfe.
  • Zum Seitenanfang
  • Zum Seitenende