Update DisplayFormInWPContent::display method type and add more tests
MAILPOET-4885 MAILPOET-4820
This commit is contained in:
committed by
Aschepikov
parent
62325dc096
commit
0019ad110e
@@ -87,7 +87,7 @@ class DisplayFormInWPContent {
|
|||||||
* @param mixed $content
|
* @param mixed $content
|
||||||
* @return string|mixed
|
* @return string|mixed
|
||||||
*/
|
*/
|
||||||
public function display($content = null) {
|
private function display($content = null) {
|
||||||
if (!is_string($content) || !$this->shouldDisplay()) return $content;
|
if (!is_string($content) || !$this->shouldDisplay()) return $content;
|
||||||
|
|
||||||
$forms = $this->getForms();
|
$forms = $this->getForms();
|
||||||
@@ -125,6 +125,7 @@ class DisplayFormInWPContent {
|
|||||||
// this code ensures that we display the form only on a page which is related to single post
|
// this code ensures that we display the form only on a page which is related to single post
|
||||||
if (!$this->wp->isSingle() && !$this->wp->isPage()) $result = $this->wp->applyFilters('mailpoet_display_form_is_single', false);
|
if (!$this->wp->isSingle() && !$this->wp->isPage()) $result = $this->wp->applyFilters('mailpoet_display_form_is_single', false);
|
||||||
|
|
||||||
|
// Ensure form does not show up multiple times when called from the woocommerce_product_loop_end filter
|
||||||
if ($this->inWooProductLoop) $result = $this->displayFormInProductListPage();
|
if ($this->inWooProductLoop) $result = $this->displayFormInProductListPage();
|
||||||
|
|
||||||
$noFormsCache = $this->wp->getTransient(DisplayFormInWPContent::NO_FORM_TRANSIENT_KEY);
|
$noFormsCache = $this->wp->getTransient(DisplayFormInWPContent::NO_FORM_TRANSIENT_KEY);
|
||||||
|
@@ -89,7 +89,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -165,7 +165,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -223,7 +223,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -245,7 +245,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -254,10 +254,10 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$this->wp->expects($this->never())->method('isSingle');
|
$this->wp->expects($this->never())->method('isSingle');
|
||||||
$this->wp->expects($this->never())->method('isSingular');
|
$this->wp->expects($this->never())->method('isSingular');
|
||||||
$this->repository->expects($this->never())->method('findAll');
|
$this->repository->expects($this->never())->method('findAll');
|
||||||
expect($this->hook->display(null))->null();
|
expect($this->hook->contentDisplay(null))->null();
|
||||||
expect($this->hook->display([1,2,3]))->equals([1,2,3]);
|
expect($this->hook->contentDisplay([1,2,3]))->equals([1,2,3]);
|
||||||
expect($this->hook->display(1))->equals(1);
|
expect($this->hook->contentDisplay(1))->equals(1);
|
||||||
expect($this->hook->display(1.1))->equals(1.1);
|
expect($this->hook->contentDisplay(1.1))->equals(1.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDoesNotAppendFormIfDisabled() {
|
public function testDoesNotAppendFormIfDisabled() {
|
||||||
@@ -274,7 +274,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,14 +290,14 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDoesNotAppendFormIfNotOnSinglePage() {
|
public function testDoesNotAppendFormIfNotOnSinglePage() {
|
||||||
$this->wp->expects($this->once())->method('isSingle')->willReturn(false);
|
$this->wp->expects($this->once())->method('isSingle')->willReturn(false);
|
||||||
$this->repository->expects($this->never())->method('findBy');
|
$this->repository->expects($this->never())->method('findBy');
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,7 +314,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -344,7 +344,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -375,7 +375,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($renderedForm);
|
expect($result)->endsWith($renderedForm);
|
||||||
}
|
}
|
||||||
@@ -406,7 +406,43 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
]);
|
]);
|
||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
|
expect($result)->equals('content');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testItDoesNotAppendFormOnOtherWoocommercePageWhenNotOnListingPage() {
|
||||||
|
$renderedForm = '<form class="form"></form>';
|
||||||
|
|
||||||
|
$wooShopPageId = 25; // random id
|
||||||
|
|
||||||
|
$this->applyFiltersValue = true;
|
||||||
|
$this->wp->expects($this->once())->method('isSingle')->willReturn(false);
|
||||||
|
$this->wp->expects($this->any())->method('isSingular')->willReturn(false);
|
||||||
|
$this->wp->expects($this->exactly(2))->method('isPage')
|
||||||
|
->withConsecutive([''], [$wooShopPageId])
|
||||||
|
->willReturnOnConsecutiveCalls(true, false);
|
||||||
|
|
||||||
|
$this->wp->expects($this->any())->method('isArchive')->willReturn(false);
|
||||||
|
$this->wp->expects($this->any())->method('isPostTypeArchive')->willReturn(false);
|
||||||
|
$this->wp->expects($this->any())->method('getPost')->willReturn(['ID' => 40]); // random id
|
||||||
|
$this->woocommerceHelper->expects($this->any())->method('wcGetPageId')->willReturn($wooShopPageId);
|
||||||
|
$this->assetsController->expects($this->never())->method('setupFrontEndDependencies');
|
||||||
|
$this->templateRenderer->expects($this->never())->method('render')->willReturn($renderedForm);
|
||||||
|
|
||||||
|
$form = new FormEntity('My Form');
|
||||||
|
$form->setSettings([
|
||||||
|
'segments' => ['3'],
|
||||||
|
'form_placement' => [
|
||||||
|
'below_posts' => [
|
||||||
|
'enabled' => '1',
|
||||||
|
'pages' => ['all' => '1'],
|
||||||
|
'posts' => ['all' => '1'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
|
$this->repository->expects($this->never())->method('findBy')->willReturn([$form]);
|
||||||
|
$result = $this->hook->wooProductListDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,7 +466,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($formHtml);
|
expect($result)->endsWith($formHtml);
|
||||||
}
|
}
|
||||||
@@ -444,7 +480,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([]);
|
||||||
|
|
||||||
$this->hook->display('content');
|
$this->hook->contentDisplay('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDoesNotQueryDatabaseIfTransientIsSet() {
|
public function testDoesNotQueryDatabaseIfTransientIsSet() {
|
||||||
@@ -457,7 +493,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
->willReturn('1');
|
->willReturn('1');
|
||||||
$this->repository->expects($this->never())->method('findBy');
|
$this->repository->expects($this->never())->method('findBy');
|
||||||
|
|
||||||
$this->hook->display('content');
|
$this->hook->contentDisplay('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testAppendsRenderedPopupForm() {
|
public function testAppendsRenderedPopupForm() {
|
||||||
@@ -481,7 +517,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($formHtml);
|
expect($result)->endsWith($formHtml);
|
||||||
}
|
}
|
||||||
@@ -510,7 +546,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->equals('content');
|
expect($result)->equals('content');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -538,7 +574,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->endsWith($formHtml);
|
expect($result)->endsWith($formHtml);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -563,7 +599,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($formHtml);
|
expect($result)->endsWith($formHtml);
|
||||||
}
|
}
|
||||||
@@ -589,7 +625,7 @@ class DisplayFormInWPContentTest extends \MailPoetUnitTest {
|
|||||||
$form2->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
$form2->setBody([['type' => 'submit', 'params' => ['label' => 'Subscribe!'], 'id' => 'submit', 'name' => 'Submit']]);
|
||||||
$this->repository->expects($this->once())->method('findBy')->willReturn([$form1, $form2]);
|
$this->repository->expects($this->once())->method('findBy')->willReturn([$form1, $form2]);
|
||||||
|
|
||||||
$result = $this->hook->display('content');
|
$result = $this->hook->contentDisplay('content');
|
||||||
expect($result)->notEquals('content');
|
expect($result)->notEquals('content');
|
||||||
expect($result)->endsWith($formHtml);
|
expect($result)->endsWith($formHtml);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user