Już chwilę temu analizując bibliotekę MessageBuilder znalazłem oraz sprawdziłem, że jest to możliwe. Tylko dlaczego niby robić to manualnie poprzez edycję klasy? Tutaj opiszę co należy edytować w klasie aby dodać taką możliwość. Jako, że nie widzę potrzeby wykorzystywania zmiany stylu kilkakrotnie podczas działania skryptu moja metoda będzie zmieniała styl, aż do wyczyszczenia obiektu
Zmiany są bardzo łatwe, także zachęcam każdego do takowej edycji. Zmiany(przynajmniej mnie) zajęły 5 min
1. Na początek odpalamy sobie w naszym edytorze bibliotekę MessageBuilder i odszukujemy fragment
W najnowszej wersji biblioteki są to linijki kolejno 50, 5q, 52. Poniżej dodajemy linijkę
W tym momencie dodajemy prywatne pole zawierające styl.
2. Teraz zajmiemy się dodaniem metody, która edytuje nam to pole. Nie ważne w którym miejscu ją umieścimy ale dla ładu i składu umieśćmy ją zaraz po metodzie clear. Skoro jesteśmy już na wysokości tej metody edytujmy, także ją, aby po wyczyszczeniu styl wracał do oryginalnego stanu. Prawidłowy kod powinien wyglądać tak:
3. Jak na razie praktycznie nie ingerowaliśmy w działanie klasy. Doczepiliśmy jedynie nasz dodatkowy fragment. Pora to zmienić
Odszukujemy ten fragment w metodzie getProtocolMessage
i edytujemy na
No i koniec. Od dzisiaj za pomocą metody setStyle możecie zmienić styl czcioki
Zmiany są bardzo łatwe, także zachęcam każdego do takowej edycji. Zmiany(przynajmniej mnie) zajęły 5 min
1. Na początek odpalamy sobie w naszym edytorze bibliotekę MessageBuilder i odszukujemy fragment
Kod php:
public $html='';
public $text='';
public $format='';
Kod php:
private $style='MS Shell Dlg 2';
2. Teraz zajmiemy się dodaniem metody, która edytuje nam to pole. Nie ważne w którym miejscu ją umieścimy ale dla ładu i składu umieśćmy ją zaraz po metodzie clear. Skoro jesteśmy już na wysokości tej metody edytujmy, także ją, aby po wyczyszczeniu styl wracał do oryginalnego stanu. Prawidłowy kod powinien wyglądać tak:
Kod php:
public function clear()
{
$this->recipientNumbers=array();
$this->sendToOffline=true;
$this->html='';
$this->text='';
$this->format='';
$this->style = 'MS Shell Dlg 2';
$this->R=0;
$this->G=0;
$this->B=0;
}
public function setStyle($style)
{
$this->style=$style;
return $this;
}
Odszukujemy ten fragment w metodzie getProtocolMessage
Kod php:
if (preg_match('/^<span[^>]*>.+<\/span>$/s', $this->html, $o)) {
if ($o[0]!=$this->html)
$this->html='<span style="color:#000000; font-family:\'MS Shell Dlg 2\'; font-size:9pt; ">'.$this->html.'</span>';
} else
$this->html='<span style="color:#000000; font-family:\'MS Shell Dlg 2\'; font-size:9pt; ">'.$this->html.'</span>';
$s=pack('VVVV', strlen($this->html)+1, strlen($this->text)+1, 0, ((empty($this->format)) ? 0 : strlen($this->format)+3)).$this->html."\0".$this->text."\0".((empty($this->format)) ? '' : pack('Cv', 0x02, strlen($this->format)).$this->format);
Kod php:
if (preg_match('/^<span[^>]*>.+<\/span>$/s', $this->html, $o)) {
if ($o[0]!=$this->html)
$this->html='<span style="color:#000000; font-family:\''.$this->style.'\'; font-size:9pt; ">'.$this->html.'</span>';
else
$this->html='<span style="color:#000000; font-family:\''.$this->style.'\'; font-size:9pt; ">'.$this->html.'</span>';
} else
$this->html='<span style="color:#000000; font-family:\''.$this->style.'\'; font-size:9pt; ">'.$this->html.'</span>';
$s=pack('VVVV', strlen($this->html)+1, strlen($this->text)+1, 0, ((empty($this->format)) ? 0 : strlen($this->format)+3)).$this->html."\0".$this->text."\0".((empty($this->format)) ? '' : pack('Cv', 0x02, strlen($this->format)).$this->format);
Komentarz