Jump to content
  • Новые сообщения

    • Вопрос решили, дело было в форме которая не отправляла токен. 

    • 1 минуту назад, founder сказал:

       

      Спасибо! Ошибок нет.

      Теперь хочу сделать отправку через форму в админке

      В simpla/SubscribeMailingAdmin.php добавляю:

      
              if ($this->request->method('post') && $this->request->post('send_message')) {
                  $message = $this->request->post('message');
                  if (!empty($message)) {
                      $this->telegram->sendBroadcast($message);
                      $this->design->assign('message_success', 'Сообщение успешно отправлено.');
                  } else {
                      $this->design->assign('message_error', 'Сообщение не может быть пустым.');
                  }
              }

      в а шаблоне форма:

      
      <form method="post">
          <label for="message">Сообщение:</label><br>
          <textarea id="message" name="message" rows="4" cols="50" required></textarea><br>
          <input type="submit" name="send_message" value="Отправить">
      </form>

      Но тогда сообщения не отправляются

      Скиньте все файлы мне в ТГ в профиле есть 

    • 2 часа назад, sergeevizh сказал:

      Я сейчас сделал проще, на основе api/UsersTelegram.php
      Добавил в api/Simpla.php класс

      
      'telegram' => 'UsersTelegram'

      Потом в api/UsersTelegram.php после функции addUser дбавил

      
      	//SEND
      	public function sendBroadcast($message) {
      		
      		// Получаем всех подписчиков из базы данных
      		$subscribers = $this->getSubscribers();
      	
      		foreach ($subscribers as $subscriber) {
      			$chatId = $subscriber->telegram_id;
      			$postFields = [
      				'chat_id' => $chatId,
      				'text' => $message
      			];
      	
      			// Отправляем сообщение пользователю
      			$this->botApiQuery("sendMessage", $postFields);
      		}
      	}
      
      
      	private function getSubscribers() {
      		$query = $this->db->placehold("SELECT * FROM __users");
      		$this->db->query($query);
      		return $this->db->results();
      	}	
      	//SEND END

      Потом в функцию sendBroadcast отправляем любое сообщение, функция в getSubscribers собирает всех в таблице БД и отправляет им указанное сообщение.

      Сообщения по базе отправляются.

      Для проверки, создайте в корне сайта файл, TgTest.php с кодом 

      
      <?
      require_once('api/Simpla.php');
      $simpla = new Simpla();
      
      $message = "Какой-то текст";
      
      $simpla->telegram->sendBroadcast($message);

       Обратитесь к нему и отталкивайтесь от ошибок, если будут.

       

      Спасибо! Ошибок нет.

      Теперь хочу сделать отправку через форму в админке

      В simpla/SubscribeMailingAdmin.php добавляю:

              if ($this->request->method('post') && $this->request->post('send_message')) {
                  $message = $this->request->post('message');
                  if (!empty($message)) {
                      $this->telegram->sendBroadcast($message);
                      $this->design->assign('message_success', 'Сообщение успешно отправлено.');
                  } else {
                      $this->design->assign('message_error', 'Сообщение не может быть пустым.');
                  }
              }

      в а шаблоне форма:

      <form method="post">
          <label for="message">Сообщение:</label><br>
          <textarea id="message" name="message" rows="4" cols="50" required></textarea><br>
          <input type="submit" name="send_message" value="Отправить">
      </form>

      Но тогда сообщения не отправляются

    • 2 часа назад, founder сказал:

      Alexivchenko, подскажите, пожалуйста, по рассылке.

      нужно дописать код в api/UsersTelegram.php или можно обойтись только simpla/SubscribeMailingAdmin.php?

      Я сейчас сделал проще, на основе api/UsersTelegram.php
      Добавил в api/Simpla.php класс

      'telegram' => 'UsersTelegram'

      Потом в api/UsersTelegram.php после функции addUser дбавил

      	//SEND
      	public function sendBroadcast($message) {
      		
      		// Получаем всех подписчиков из базы данных
      		$subscribers = $this->getSubscribers();
      	
      		foreach ($subscribers as $subscriber) {
      			$chatId = $subscriber->telegram_id;
      			$postFields = [
      				'chat_id' => $chatId,
      				'text' => $message
      			];
      	
      			// Отправляем сообщение пользователю
      			$this->botApiQuery("sendMessage", $postFields);
      		}
      	}
      
      
      	private function getSubscribers() {
      		$query = $this->db->placehold("SELECT * FROM __users");
      		$this->db->query($query);
      		return $this->db->results();
      	}	
      	//SEND END

      Потом в функцию sendBroadcast отправляем любое сообщение, функция в getSubscribers собирает всех в таблице БД и отправляет им указанное сообщение.

      Сообщения по базе отправляются.

      Для проверки, создайте в корне сайта файл, TgTest.php с кодом 

      <?
      require_once('api/Simpla.php');
      $simpla = new Simpla();
      
      $message = "Какой-то текст";
      
      $simpla->telegram->sendBroadcast($message);

       Обратитесь к нему и отталкивайтесь от ошибок, если будут.

      Edited by alexivchenko
    • В 03.08.2024 в 16:49, alexivchenko сказал:

      Все верно, ключ нужен только для проверки, что пользователь есть в базе и авторизовать его. 

      Alexivchenko, подскажите, пожалуйста, по рассылке.

      нужно дописать код в api/UsersTelegram.php или можно обойтись только simpla/SubscribeMailingAdmin.php?

  • Новые темы

  1. Simpla CMS

    1. Новости Simpla CMS

      Официальные новости от автора Simpla CMS

      1.2k
      posts
    2. Предложения по развитию Simpla CMS

      Обсуждение идей и предложений по дальнейшему развитию Simpla

      534
      posts
    3. Общие вопросы по функционалу и дизайну

      Здесь обсуждаются общие вопросы, которые касаются CMS Simpla

      60.7k
      posts
    4. Готовые решения

      В этом разделе выложены готовые бесплатные решения (доработки).

      10.7k
      posts
    5. Безопасность

      В разделе освещаются вопросы связанные с безопасностью Simpla CMS. Уязвимости, проблемы с разделением прав и прочее

      6.8k
      posts
  2. Дизайн и шаблоны

    1. Бесплатные шаблоны

      В этой категории выкладываем бесплатные шаблоны.

      454
      posts
    2. Платные шаблоны

      В этой категории выкладываем платные шаблоны.

      1.9k
      posts
  3. Платные модули и услуги

    1. Платные модули и услуги

      Готовые платные модули от программистов и дизайнеров: Модули, шаблоны, доработки, программы

      4k
      posts
    2. Отзывы о исполнителях и заказчиках (ex. Фриланс)

      Обсуждение исполнителей и заказчиков, "черные" списки форума и всё что связанно с фрилансом

      1.4k
      posts
    3. Продвижение и поисковая оптимизация (SEO)

      Вопросы и платные услуги по тематике SEO

      510
      posts
  4. Разное

    1. 447
      posts
    2. Обсуждение хостингов

      Обсуждение хостинг-компаний. Название обсуждения должно быть названием хостинга.

      309
      posts
    3. Разные скрипты магазинов

      Обсуждение различных движков магазинов

      143
      posts
  • Who's Online   0 Members, 0 Anonymous, 149 Guests (See full list)

    There are no registered users currently online

  • Member Statistics

    15134
    Total Members
    1517
    Most Online
    Сергейиванов
    Newest Member
    Сергейиванов
    Joined
  • Новые сообщения

    • Вопрос решили, дело было в форме которая не отправляла токен. 
    • Скиньте все файлы мне в ТГ в профиле есть 
    • Спасибо! Ошибок нет. Теперь хочу сделать отправку через форму в админке В simpla/SubscribeMailingAdmin.php добавляю: if ($this->request->method('post') && $this->request->post('send_message')) { $message = $this->request->post('message'); if (!empty($message)) { $this->telegram->sendBroadcast($message); $this->design->assign('message_success', 'Сообщение успешно отправлено.'); } else { $this->design->assign('message_error', 'Сообщение не может быть пустым.'); } } в а шаблоне форма: <form method="post"> <label for="message">Сообщение:</label><br> <textarea id="message" name="message" rows="4" cols="50" required></textarea><br> <input type="submit" name="send_message" value="Отправить"> </form> Но тогда сообщения не отправляются
    • Я сейчас сделал проще, на основе api/UsersTelegram.php Добавил в api/Simpla.php класс 'telegram' => 'UsersTelegram' Потом в api/UsersTelegram.php после функции addUser дбавил //SEND public function sendBroadcast($message) { // Получаем всех подписчиков из базы данных $subscribers = $this->getSubscribers(); foreach ($subscribers as $subscriber) { $chatId = $subscriber->telegram_id; $postFields = [ 'chat_id' => $chatId, 'text' => $message ]; // Отправляем сообщение пользователю $this->botApiQuery("sendMessage", $postFields); } } private function getSubscribers() { $query = $this->db->placehold("SELECT * FROM __users"); $this->db->query($query); return $this->db->results(); } //SEND END Потом в функцию sendBroadcast отправляем любое сообщение, функция в getSubscribers собирает всех в таблице БД и отправляет им указанное сообщение. Сообщения по базе отправляются. Для проверки, создайте в корне сайта файл, TgTest.php с кодом  <? require_once('api/Simpla.php'); $simpla = new Simpla(); $message = "Какой-то текст"; $simpla->telegram->sendBroadcast($message);  Обратитесь к нему и отталкивайтесь от ошибок, если будут.
    • Alexivchenko, подскажите, пожалуйста, по рассылке. нужно дописать код в api/UsersTelegram.php или можно обойтись только simpla/SubscribeMailingAdmin.php?
  • Forum Statistics

    • Total Topics
      12317
    • Total Posts
      102011
×
×
  • Create New...