Skip to content

Commit 78ca7ba

Browse files
authored
Merge pull request #425 from BoShurik/input_field_placeholder
ReplyKeyboardMarkup::$inputFieldPlaceholder
2 parents fea7c3e + 5f7ab4c commit 78ca7ba

File tree

3 files changed

+60
-12
lines changed

3 files changed

+60
-12
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ All Notable changes to `PHP Telegram Bot Api` will be documented in this file
99
- Add `scope` and `languageCode` parameters to `\TelegramBot\Api\BotApi::setMyCommands`
1010
- Add WebApp support: `\TelegramBot\Api\BotApi::answerWebAppQuery` method and `\TelegramBot\Api\Types\Message::$webAppData` property
1111
- Add `\TelegramBot\Api\Types\ReplyKeyboardMarkup::$isPersistent` property
12+
- Add `\TelegramBot\Api\Types\ReplyKeyboardMarkup::$inputFieldPlaceholder` property
1213

1314
### Fixed
1415
- Fix `\TelegramBot\Api\Collection\Collection::addItem` max count constraint (#333)

src/Types/ReplyKeyboardMarkup.php

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class ReplyKeyboardMarkup extends BaseType
2929
'one_time_keyboard' => true,
3030
'resize_keyboard' => true,
3131
'selective' => true,
32-
'is_persistent' => true
32+
'is_persistent' => true,
33+
'input_field_placeholder' => true,
3334
];
3435

3536
/**
@@ -74,20 +75,29 @@ class ReplyKeyboardMarkup extends BaseType
7475
*/
7576
protected $isPersistent;
7677

78+
/**
79+
* Optional. The placeholder to be shown in the input field when the keyboard is active; 1-64 characters
80+
*
81+
* @var string|null
82+
*/
83+
protected $inputFieldPlaceholder;
84+
7785
/**
7886
* @param array $keyboard
7987
* @param bool|null $oneTimeKeyboard
8088
* @param bool|null $resizeKeyboard
8189
* @param bool|null $selective
8290
* @param bool|null $isPersistent
91+
* @param string|null $inputFieldPlaceholder
8392
*/
84-
public function __construct($keyboard = [], $oneTimeKeyboard = null, $resizeKeyboard = null, $selective = null, $isPersistent = null)
93+
public function __construct($keyboard = [], $oneTimeKeyboard = null, $resizeKeyboard = null, $selective = null, $isPersistent = null, $inputFieldPlaceholder = null)
8594
{
8695
$this->keyboard = $keyboard;
8796
$this->oneTimeKeyboard = $oneTimeKeyboard;
8897
$this->resizeKeyboard = $resizeKeyboard;
8998
$this->selective = $selective;
9099
$this->isPersistent = $isPersistent;
100+
$this->inputFieldPlaceholder = $inputFieldPlaceholder;
91101
}
92102

93103
/**
@@ -174,4 +184,21 @@ public function setIsPersistent($isPersistent)
174184
{
175185
$this->isPersistent = $isPersistent;
176186
}
187+
188+
/**
189+
* @return string|null
190+
*/
191+
public function getInputFieldPlaceholder()
192+
{
193+
return $this->inputFieldPlaceholder;
194+
}
195+
196+
/**
197+
* @param string|null $inputFieldPlaceholder
198+
* @return void
199+
*/
200+
public function setInputFieldPlaceholder($inputFieldPlaceholder)
201+
{
202+
$this->inputFieldPlaceholder = $inputFieldPlaceholder;
203+
}
177204
}

tests/Types/ReplyKeyboardMarkupTest.php

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static function getFullResponse()
2727
'resize_keyboard' => true,
2828
'selective' => true,
2929
'is_persistent' => true,
30+
'input_field_placeholder' => 'input_field_placeholder',
3031
];
3132
}
3233

@@ -41,6 +42,7 @@ protected function assertMinItem($item)
4142
$this->assertNull($item->isResizeKeyboard());
4243
$this->assertNull($item->isSelective());
4344
$this->assertNull($item->getIsPersistent());
45+
$this->assertNull($item->getInputFieldPlaceholder());
4446
}
4547

4648
/**
@@ -54,17 +56,19 @@ protected function assertFullItem($item)
5456
$this->assertEquals(true, $item->isResizeKeyboard());
5557
$this->assertEquals(true, $item->isSelective());
5658
$this->assertEquals(true, $item->getIsPersistent());
59+
$this->assertEquals('input_field_placeholder', $item->getInputFieldPlaceholder());
5760
}
5861

5962
public function testConstructor()
6063
{
6164
$item = new ReplyKeyboardMarkup([['one', 'two']]);
6265

6366
$this->assertEquals([['one', 'two']], $item->getKeyboard());
64-
$this->assertEquals(null, $item->isOneTimeKeyboard());
65-
$this->assertEquals(null, $item->isResizeKeyboard());
66-
$this->assertEquals(null, $item->isSelective());
67-
$this->assertEquals(null, $item->getIsPersistent());
67+
$this->assertNull($item->isOneTimeKeyboard());
68+
$this->assertNull($item->isResizeKeyboard());
69+
$this->assertNull($item->isSelective());
70+
$this->assertNull($item->getIsPersistent());
71+
$this->assertNull($item->getInputFieldPlaceholder());
6872
}
6973

7074
public function testConstructor2()
@@ -73,9 +77,10 @@ public function testConstructor2()
7377

7478
$this->assertEquals([['one', 'two']], $item->getKeyboard());
7579
$this->assertEquals(true, $item->isOneTimeKeyboard());
76-
$this->assertEquals(null, $item->isResizeKeyboard());
77-
$this->assertEquals(null, $item->isSelective());
78-
$this->assertEquals(null, $item->getIsPersistent());
80+
$this->assertNull($item->isResizeKeyboard());
81+
$this->assertNull($item->isSelective());
82+
$this->assertNull($item->getIsPersistent());
83+
$this->assertNull($item->getInputFieldPlaceholder());
7984
}
8085

8186
public function testConstructor3()
@@ -85,8 +90,9 @@ public function testConstructor3()
8590
$this->assertEquals([['one', 'two']], $item->getKeyboard());
8691
$this->assertEquals(true, $item->isOneTimeKeyboard());
8792
$this->assertEquals(true, $item->isResizeKeyboard());
88-
$this->assertEquals(null, $item->isSelective());
89-
$this->assertEquals(null, $item->getIsPersistent());
93+
$this->assertNull($item->isSelective());
94+
$this->assertNull($item->getIsPersistent());
95+
$this->assertNull($item->getInputFieldPlaceholder());
9096
}
9197

9298
public function testConstructor4()
@@ -97,7 +103,8 @@ public function testConstructor4()
97103
$this->assertEquals(true, $item->isOneTimeKeyboard());
98104
$this->assertEquals(true, $item->isResizeKeyboard());
99105
$this->assertEquals(true, $item->isSelective());
100-
$this->assertEquals(null, $item->getIsPersistent());
106+
$this->assertNull($item->getIsPersistent());
107+
$this->assertNull($item->getInputFieldPlaceholder());
101108
}
102109

103110
public function testConstructor5()
@@ -109,5 +116,18 @@ public function testConstructor5()
109116
$this->assertEquals(true, $item->isResizeKeyboard());
110117
$this->assertEquals(true, $item->isSelective());
111118
$this->assertEquals(true, $item->getIsPersistent());
119+
$this->assertNull($item->getInputFieldPlaceholder());
120+
}
121+
122+
public function testConstructor6()
123+
{
124+
$item = new ReplyKeyboardMarkup([['one', 'two']], true, true, true, true, 'input_field_placeholder');
125+
126+
$this->assertEquals([['one', 'two']], $item->getKeyboard());
127+
$this->assertEquals(true, $item->isOneTimeKeyboard());
128+
$this->assertEquals(true, $item->isResizeKeyboard());
129+
$this->assertEquals(true, $item->isSelective());
130+
$this->assertEquals(true, $item->getIsPersistent());
131+
$this->assertEquals('input_field_placeholder', $item->getInputFieldPlaceholder());
112132
}
113133
}

0 commit comments

Comments
 (0)