Класс Callbacks.php

 

Класс Callbacks

Предназначен для работы модуля "заказ обратного звонка"

Функция email_callback_admin()

Код функции (спойлер)
 
    /*Отправка емейла администратору о заказе обратного звонка*/
    public function email_callback_admin($callback_id) {
        if(!($callback = $this->callbacks->get_callback(intval($callback_id)))) {
            return false;
        }
        $this->design->assign('callback', $callback);
        $backend_translations = new stdClass();
        $file = "backend/lang/".$this->settings->email_lang.".php";
        if (!file_exists($file)) {
            foreach (glob("backend/lang/??.php") as $f) {
                $file = "backend/lang/".pathinfo($f, PATHINFO_FILENAME).".php";
                break;
            }
        }
        require_once($file);
        $this->design->assign('btr', $backend_translations);
        // Отправляем письмо
        $email_template = $this->design->fetch($this->config->root_dir.'backend/design/html/email/email_callback_admin.tpl');
        $subject = $this->design->get_var('subject');
        $this->notify->email($this->settings->comment_email, $subject, $email_template, "$callback->name <$callback->phone>", "$callback->name <$callback->phone>");
    }

Функция отправки email уведомления о заявке на обратный звонок администратору

Функция принимает аргумент $callback_id

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

  • $callback_id - id заявки обратного звонка от клиента

Функция get_callback()

Код функции (спойлер)
     /*Выбираем конкретную заявку на обратный звонок*/
    public function get_callback($id) {
        $query = $this->db->placehold("SELECT
                c.id,
                c.name,
                c.phone,
                c.message,
                c.date,
                c.processed,
                c.url,
                c.admin_notes
            FROM __callbacks c
            WHERE id=?
            LIMIT 1
        ", intval($id));

        if($this->db->query($query)) {
            return $this->db->result();
        } else {
            return false;
        }
    }

Функция выборки конкретной заявки на обратный звонок

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

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

  • $id - id заявки обратного звонка

Возвращает объект с данными о заявке в случае успеха


Функция get_callbacks()

Код функции (спойлер)
     /*Выбираем заявки на обратный звонок*/
    public function get_callbacks($filter = array()) {
        // По умолчанию
        $limit = 1000;
        $page = 1;
        $processed = '';

        if(isset($filter['limit'])) {
            $limit = max(1, intval($filter['limit']));
        }

        if(isset($filter['page'])) {
            $page = max(1, intval($filter['page']));
        }

        if(isset($filter['processed'])) {
            $processed = $this->db->placehold('AND c.processed=?',$filter['processed']);
        }

        $sql_limit = $this->db->placehold(' LIMIT ?, ? ', ($page-1)*$limit, $limit);

        $query = $this->db->placehold("SELECT
                c.id,
                c.name,
                c.phone,
                c.date,
                c.message,
                c.processed,
                c.url,
                c.admin_notes
            FROM __callbacks c
            WHERE
                1
                $processed
            ORDER BY c.date DESC
            $sql_limit
        ");

        $this->db->query($query);
        return $this->db->results();
    }

Функция выборки заявок на обратный звонок

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

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

  • $filter['limit'] - количество выбираемых записей
  • $filter['page'] - номер записи, с которой нужно начать выбирать записи (используется при пагинации)
  • $filter['processed'] - флаг состояния заяки (обработанная или нет)

Возвращает массив объектов с данными о заявках на обратный звонок


Функция count_callbacks()

Код функции (спойлер)
     /*Подсчитываем количество заявок на обратный звонок*/
    public function count_callbacks($filter = array()) {
        $processed_filter = '';

        if(isset($filter['processed'])) {
            $processed_filter = $this->db->placehold('AND c.processed = ?', intval($filter['processed']));
        }
        $query = "SELECT COUNT(distinct c.id) as count
            FROM __callbacks c
            WHERE 1
                $processed_filter

        ";

        if($this->db->query($query)) {
            return $this->db->result('count');
        } else {
            return false;
        }
    }

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

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

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

  • $filter['processed'] - флаг состояния заяки (обработанная или нет)

Функция возвращет количество (число) заявок на обратный звонок по заданному критерию


Функция add_callback()

Код функции (спойлер)
   /*Добавление заявки на обратный звонок*/
    public function add_callback($callback) {
        $query = $this->db->placehold('INSERT INTO __callbacks SET ?%, date = NOW()', $callback);

        if(!$this->db->query($query)) {
            return false;
        }

        $id = $this->db->insert_id();
        return $id;
    }

Функция добавления заявки на обратный звонок

Функция принимает аргументы $callback

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

  • $callback - объект с данными о заявке (имя, сообщение и т.д)

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


Функция update_callback()

Код функции (спойлер)
   /*Обновление заявки на обратный звонок*/
    public function update_callback($id, $callback) {
        $query = $this->db->placehold("UPDATE __callbacks SET ?% WHERE id in(?@) LIMIT 1", $callback, (array)$id);
        $this->db->query($query);
        return $id;
    }

Функция обновления заявки на обратный звонок

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

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

  • $id - id заявки, которую нужно обновить
  • $callback - объект с данными о заявке (статус, имя и т.д)

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


Функция delete_callback()

Код функции (спойлер)
   /*Удаление заявки на обратный звонок*/
    public function delete_callback($id) {
        if(!empty($id)) {
            $query = $this->db->placehold("DELETE FROM __callbacks WHERE id=? LIMIT 1", intval($id));
            $this->db->query($query);
        }
    }

Функция удаления заявки на обратный звонок

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

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

  • $id - id удаляемой записи