Класс Subscribes.php

Класс Subscribes

Предназначен для работы с подписчиками на сайте.

Функция get_subscribes()

Код функции (спойлер)
 
    public function get_subscribes($filter = array()) {
        $limit = 100;
        $page = 1;
        $keyword_filter = '';
        if(isset($filter['limit'])) {
            $limit = max(1, intval($filter['limit']));
        }
        if(isset($filter['page'])) {
            $page = max(1, intval($filter['page']));
        }
        $sql_limit = $this->db->placehold(' LIMIT ?, ? ', ($page-1)*$limit, $limit);
        if (isset($filter['keyword'])) {
            $keyword_filter = 'and s.email like "%'.$this->db->escape(trim($filter['keyword'])).'%"';
        }

        $query = $this->db->placehold("SELECT
                s.id,
                s.email
            FROM __subscribe_mailing s
            WHERE
                1
                $keyword_filter
            $sql_limit
        ");
        $this->db->query($query);
        return $this->db->results();
    }

Функция выборки подписчиков сайта

Функция принимает один аргумент $filter в виде массива

Параметры которые содержит функция:

  • filter['limit'] - лимит (количество) записей, которые следует выбрать
  • $filter['page'] - страница, с которые следует начать выборку подписчиков (используется для пагинации)
  • $filter['keyword'] - строка поиска. Поиск работает по полю email

Функция возвращает массив объектов с подписчиками сайта


Функция count_subscribes()

Код функции (спойлер)
     public function count_subscribes($filter = array()) {
        $keyword_filter = '';
        if (isset($filter['keyword'])) {
            $keyword_filter = 'and s.email like "%'.$this->db->escape(trim($filter['keyword'])).'%"';
        }
        $query = "SELECT count(distinct s.id) as count
            FROM __subscribe_mailing AS s
            WHERE
                1
                $keyword_filter
        ";

        $this->db->query($query);
        return $this->db->result('count');
    }

Функция подсчета количества подписчиков

Функция принимает один аргумент $filter в виде массива

Параметры которые содержит функция:

  • $filter['keyword'] - строка поиска. Поиск работает по полю email

Функция возвращает количество подписчиков


Функция get_subscribe()

Код функции (спойлер)
    public function get_subscribe($id) {
        $filter = $this->db->placehold('AND id = ?', $id);
        $query = "SELECT
                id,
                email
            FROM __subscribe_mailing
            WHERE
                1
                $filter
            LIMIT 1";
        $this->db->query($query);
        return $this->db->result();
    }

Фукнция выбора конкретного подписчика

Функция принимает один аргумент $id

Параметры которые содержит функция:

  • $id - id подписчика, которого следует выбрать с БД

Функция возвращает объект с данными конкретного подписчика


Функция add_subscribe()

Код функции (спойлер)
     public function add_subscribe($subscribe) {
        $subscribe = (array)$subscribe;
        $this->db->query("INSERT INTO __subscribe_mailing SET ?%", $subscribe);
        return $this->db->insert_id();
    }

Фукнция доабавления подписчика

Функция принимает один аргумент $subscribe

Параметры которые содержит функция:

  • $subscribe - массив или объект с данными о подписчике

Функция возвращает id добавленного подписчика


Функция update_subscribe()

Код функции (спойлер)
    public function update_subscribe($id, $subscribe) {
        $query = $this->db->placehold("UPDATE __subscribe_mailing SET ?% WHERE id=? LIMIT 1", $subscribe, intval($id));
        $this->db->query($query);
        return $id;
    }

Фукнция обновления подписчика

Функция принимает два аргумента $id, $subscribe

Параметры которые содержит функция:

  • $id - id подписчика, которого следует обновить
  • $subscribe - данные для обновления

Функция возвращает id обновленного подписчика


Функция delete_subscribe()

Код функции (спойлер)
    public function delete_subscribe($ids) {
        if(!empty($ids)) {
        	$this->db->query('delete from __subscribe_mailing where id in(?@)', $ids);
        }
    }

Фукнция удаления подписчика

Функция принимает один аргумент $id

Параметры которые содержит функция:

  • $id - id подписчика, которого следует обновить