Ogłoszenie
Zwiń
No announcement yet.
Zmiana stylu czcionki w bocie.
Zwiń
X
-
Dałeś kod i każdy zmienia. Na kompie to czasem nie widać co pisze, ale działa i to sie chyba liczy.
-
Zmiana stylu czcionki w bocie.
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
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);
Ostatnio edytowany przez Wazniak96; [ARG:4 UNDEFINED]. Powód: Teraz już działa, także bez znacznika bold ;p
Zostaw komentarz: