# simpleanalytics/1.110/src/Settings/Concerns/ManagesBlocks.php

Simple Analytics, version 1.110. 51 lines.

- Page: https://pluginprobe.com/plugins/simpleanalytics/1.110/code/src/Settings/Concerns/ManagesBlocks.php
- Raw: https://pluginprobe.com/plugins/simpleanalytics/1.110/raw/src/Settings/Concerns/ManagesBlocks.php
- Modified: 2024-09-13T11:41:00+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/simpleanalytics/1.110/code/src/Settings/Concerns/ManagesBlocks.php#L10-L20`.

```php
<?php

namespace SimpleAnalytics\Settings\Concerns;

use SimpleAnalytics\Settings\Block;
use SimpleAnalytics\Settings\Blocks\CalloutBlock;
use SimpleAnalytics\Settings\Blocks\Fields\Checkbox;
use SimpleAnalytics\Settings\Blocks\Fields\Checkboxes;
use SimpleAnalytics\Settings\Blocks\Fields\Input;
use SimpleAnalytics\Settings\Blocks\Fields\IpList;

trait ManagesBlocks
{
    abstract protected function addBlock(Block $block): self;

    public function callout(string $text): CalloutBlock
    {
        $block = new CalloutBlock($text);
        $this->addBlock($block);
        return $block;
    }

    public function input(string $key, string $label): Input
    {
        $field = new Input($key, $label);
        $this->addBlock($field);
        return $field;
    }

    public function checkbox(string $key, string $label): Checkbox
    {
        $field = new Checkbox($key, $label);
        $this->addBlock($field);
        return $field;
    }

    public function multiCheckbox(string $key, string $label): Checkboxes
    {
        $field = new Checkboxes($key, $label);
        $this->addBlock($field);
        return $field;
    }

    public function ipList(string $key, string $label): IpList
    {
        $field = new IpList($key, $label);
        $this->addBlock($field);
        return $field;
    }
}

```
