Jacek Kowalski
2012-08-12 6f84c60bdb704c3b038881dd8353fc9881329c87
1. Dodanie brakujących plików z klasami BotImage oraz BotImageGG.
2. Uzupełnienie instrukcji tworzenia modułów o obsługę obrazków przychodzących.
2 files added
1 files modified
56 ■■■■■ changed files
MODULES.html 23 ●●●●● patch | view | raw | blame | history
class/BotImage.php 7 ●●●●● patch | view | raw | blame | history
class/BotImageGG.php 26 ●●●●● patch | view | raw | blame | history
MODULES.html
@@ -60,7 +60,7 @@
|  |\/|  | |  |  |  | |  |   | | |  |  |  | |   /    \    /
|  |  |  | |  |__|  | |  |__/  | |  |__|  | |  |____  |  |
|__|  |__|  \______/  |_______/   \______/  |_______| |__|
Poradnik v2.0                           Tworzenie i edycja
Poradnik v2.1                           Tworzenie i edycja
</pre>
<h3 id="tableOfContent">Spis treści</h3>
@@ -331,6 +331,27 @@
<code><var>$msg<b>-&gt;</b>args</var></code>
</pre>
<h4 id="classBotMessage_propertyImages">Pole $images</h4>
<p>Tablica obrazków (obiektów klasy BotImage) przesłanych do bota przez użytkownika.</p>
<pre>
<code><b>if(<a href="http://php.net/assert"><var>count</var></a>(<var>$msg</var>-&gt;<var>images</var>) &gt; <var>0</var>) {</b>
    <i>// Do bota zostały przesłane obrazki</i>
    <i>// Pierwszy obrazek</i>
    <var>$img <b>=</b> $msg<b>-&gt;</b>images</var><b>[<var>0</var>];</b>
    <i>// Obrazek w formie gotowej do obróbki za pomocą biblioteki GD</i>
    <var>$gd <b>=</b> $img<b>-&gt;</b>getImage</var><b>();</b>
    <a href="http://php.net/imagestring"><var>imagestring</var></a><b>(</b><var>$gd<b>,</b> 2<b>,</b> 0<b>,</b> 0</var><b>, <cite>'To jest tekst'</cite>,</b> <a href="http://php.net/imagecolorallocate"><var>imagecolorallocate</var></a><b>(<var>$gd<b>,</b> 255<b>,</b> 255<b>,</b> 255</var>));</b>
    <i>// Obrazek jako ciąg bajtów gotowych do zapisu:</i>
    <var>$data <b>=</b> $img<b>-&gt;</b>getImageData</var><b>();</b>
    <a href="http://php.net/file_put_contents"><var>file_put_contents</var></a><b>(<cite>'/tmp/obrazek.jpg'</cite>, <var>$data</var>);</b>
<b>}</b></code>
</pre>
<h3 id="interfaceBotModule">Komunikacja z użytkownikiem - interfejs BotModule</h3>
<p>Zgodnie z danymi zwracanymi przez <a href="#interfaceBotModuleInit_methodRegister">metodę register</a>, należy utworzyć plik zawierający klasę o podanej nazwie, implementującą BotModule, oraz odpowiednią metodę, przyjmującą dwa parametry:</p>
class/BotImage.php
New file
@@ -0,0 +1,7 @@
<?php
abstract class BotImage {
    protected $data = NULL;
    abstract function getImage();
    abstract function getImageData();
}
?>
class/BotImageGG.php
New file
@@ -0,0 +1,26 @@
<?php
class BotImageGG extends BotImage {
    protected $hash;
    function __construct($hash) {
        $this->hash = $hash;
    }
    function getHash() {
        return $this->hash;
    }
    function getImage() {
        return imagecreatefromstring($this->getImageData());
    }
    function getImageData() {
        if($this->data === NULL) {
            $push = new BotGGAPI();
            $this->data = $push->getImage($this->hash);
        }
        return $this->data;
    }
}
?>