# acymailing/10.1.4/back/Classes/ZoneClass.php

AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress, version 10.1.4. 78 lines.

- Page: https://pluginprobe.com/plugins/acymailing/10.1.4/code/back/Classes/ZoneClass.php
- Raw: https://pluginprobe.com/plugins/acymailing/10.1.4/raw/back/Classes/ZoneClass.php
- Modified: 2025-03-03T13:35:54+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/acymailing/10.1.4/code/back/Classes/ZoneClass.php#L10-L20`.

```php
<?php

namespace AcyMailing\Classes;

use AcyMailing\Core\AcymClass;

class ZoneClass extends AcymClass
{
    public function __construct()
    {
        parent::__construct();

        $this->table = 'custom_zone';
        $this->pkey = 'id';
    }

    public function save($element)
    {
        $element = clone $element;
        $element->name = strip_tags($element->name);
        $element->content = base64_encode($element->content);

        return parent::save($element);
    }

    public function getOneById($id)
    {
        $element = parent::getOneById($id);

        return $this->decodeContent($element);
    }

    public function getOneByName($name)
    {
        $element = acym_loadObject('SELECT * FROM #__acym_custom_zone WHERE name = '.acym_escapeDB($name));

        return $this->decodeContent($element);
    }

    private function decodeContent($element)
    {
        if (empty($element->content)) return $element;

        $element->content = base64_decode($element->content);

        return $element;
    }

    public function getAll(?string $key = null): array
    {
        $elements = parent::getAll();
        if (empty($elements)) return $elements;

        foreach ($elements as $i => $element) {
            $elements[$i] = $this->decodeContent($element);
        }

        return $elements;
    }

    public function delete($elements)
    {
        if (empty($elements)) return 0;
        if (!is_array($elements)) {
            $elements = [$elements];
        }

        foreach ($elements as $oneElementId) {
            $zone = $this->getOneById($oneElementId);
            if (!empty($zone->image) && file_exists(ACYM_ROOT.$zone->image)) {
                unlink(ACYM_ROOT.$zone->image);
            }
        }

        return parent::delete($elements);
    }
}

```
