Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

Лидеры

  1. timbios

    timbios

    Owners


    • Баллы

      229

    • Постов

      594


  2. KirKMS

    KirKMS

    Администраторы


    • Баллы

      207

    • Постов

      546


  3. viiprogrammer

    viiprogrammer

    Эксперты


    • Баллы

      184

    • Постов

      413


  4. Shaman Daniels

    Shaman Daniels

    Пользователи


    • Баллы

      139

    • Постов

      455


Популярный контент

Показан контент с высокой репутацией за 21.06.2014 во всех областях

  1. Всем привет. Контент строго 18+ Ловите бекап проекта druzi.store Юрки Беляша. Его проект был взломан мною. После ко мне присоединился один из наших форумчан. Вот вам пару скринов то что на творили в его проекте. Это так сказать, не большая месть ему, за всё, что эта Дура Еб***я на творил. И за всех тех кого, он оскорбил и кинул. А вот вам и сама бд.worldomly.zip druzi.zip Так же есть исходники его проектов. Думаю позже выложу если будет настроение. Жду наполнение его сайта и снова ломану. Уже лозейку нашел
    8 баллов
  2. Всем привет. Короче, тема такая: у меня есть движок (не vii engine) который в 2014 году написал Max Wayne. Я изменил название (по требованию правообладателя) , изменил цветовую палитру (был синий, как вк), добавил несколько интересных штук в шаблон. ДЕМО ТУТ Жду хотя бы 5 лайков (я про зеленую стрелочку вверх) и выкладываю в общий доступ с нормальным описанием
    8 баллов
  3. Сливаю вам шаблон соц сети на котором учился верстать, возможно пригодится кому то, возможно кто то доведет до ума. Шаблон закончил не полностью всего 3 странице. - Профиль - Регистрация/авторизация - И диалоги. Lovly HTML.zip Скрины:
    7 баллов
  4. Всем привет. Решил поделиться с вами наработками своего нового проекта. Название и логотип может быть сменятся. Долго рассказывать не буду, а покажу пару скринов. Проект полностью самописный, но основан на наработках проекта от Kamran MUSA. Администрация и пользователи с группы премиум в курсе всех деталей разработки. Т.К я постоянно скидываю инсайды в телегу. Демо НЕТ и НЕ БУДЕТ !!! Демо будет только для тестировщиков и администрации форума!!! Проект скорее всего будет продаваться не на Российских площадках. Ориентировочная стоимость от 100$ Планов на проект очень много. Пишу проект один. Помощь не нужна. Буду рад новым идеям. И так начнём. Что есть на данный момент Профиль пользователя Редактирование профиля Настройки Фотоальбомы И прочее что есть. Не буду каждую страницу описывать. Смотрите скрины Ну вот как-то так. Жду вашего мнения. К любой критике отношусь нормально и с пониманием.
    7 баллов
  5. Приветствую всех! В свободное время наверстал на HTML копию дизайна ВК, с изменениями. Думаю продолжить остальные страницы сверстать (основные: друзья, сообщения, новости, и прочее), если будет время и решусь, адаптирую под Vii Engine. Что скажете по поводу шаблона? Скрин:
    7 баллов
  6. Всем привет. Решил написать модуль для публичного доступа. Модуль позволяет закрыть профиль пользователя, от просмотра информации для тех кто не в друзьях. Во вам пару скринов. Видео обзор модуля под спойлером!!! Установка модуля под спойлером. Не забывайте чистить папку с кэш. Модуль создан специально для пользователей cmstools.ru Автор KirKMS При копирование на сторонние сайты, ссылка на источник. В противном случае при обнаружение "БУДЕТ СТРАЙК" Всем спасибо за внимание. Оставляйте отзывы и пишите идеи для новых модулей.
    7 баллов
  7. Всем привет Решил написать новый модуль для Vii-Engine и выложить его для вас. Модуль позволяет восстанавливать удалённый пост со стены и комментарий. До начала установки, посмотри видео обзор модуля. Вот теперь и сам момент установки Если я где-то ошибся, установку я обновлю. Всем спасибо за внимание. Буду благодарен если оцените пост лайком. Так-же жду от вас предложений новых модулей. Позже напишу и выложу для сообществ.
    6 баллов
  8. Здравствуйте форумчане!. Хотел бы выставить на продажу слить в паблик уникальную сборку Mixnet.pro А если быть точнее, то сборка оригинальная с баг-фиксами и новыми возможностями. КОГДА-ТО МЫ ЕЕ ПРОДАВАЛИ, НО ЧЕЛОВЕК С КОТОРЫМ МЫ ЕЕ РАЗРАБАТЫВАЛИ КИНУЛ МЕНЯ НА ДЕНЬГИ, ДОМЕН И УКРАЛ МОЮ СТРАНИЧКУ ВКОНТАКТЕ. Я ДУМАЛ, ЧТО БЭКАП ДАВНО ПАЛ В БЕЗДНУ, НО ОЧИЩАЯ СВОЙ ЯНДЕКС ДИСК - НАШЕЛ. СЛИВАЮ ПО ДОБРОТЕ ДУШЕВНОЙ, БУДУ РАД ЛАЙКАМ :з Перейдем к списку изменений: 1. В разделе баланса появился раздел с достижениями: 2. Пофикшены баги с вопросами в разделе поддержки 3. Пофикшены баги магазина 4. Пофикшены баги с кэшем(периодически кэш чистился сам по себе и воспроизводил следом баг с всем известной кнопкой "Добавить в друзья") 5. Добавлен блок с тех задачами для администрации(слава страницы): 6. Для администрации добавлен дополнительный пароль при авторизации(как в АЦ, так и в самом сайте): 7. Полная поддержка emoji со всех устройств 8. Множественные баг-фиксы. Всех уже не припомнишь. 9. Возможность редактировать размещенные вакансии 10. Возможность добавлять тесты к каждой размещаемой вакансии: Цена вопроса 2000 рублей БЕСПЛАТНО админка /alania.php За доп плату: *сделаю изменения в сборке под ваши нужды *помогу с установкой плагинов СКАЧАТЬ С ЯНДЕКС ДИСКА
    6 баллов
  9. Всем привет. Решил написать ещё один модуль для пользователей форума cmstools.ru Модуль выводит недавно посещаемые сообщества пользователя. Принцип работы. Пользователь зашел в сообщество, оно занеслось в бд и выводиться на странице всех сообществ пользователя. Если пользователь зашел ещё раз, то сообщество будет самым первым в в списке. Есть возможность очищать список сообществ. И есть полноценная страница, где выводятся все сообщества. Вот вам несколько скринов. Недостатки. Если название сообщества будет длинным, то вывод будет не очень красиво. Но это можно исправить при помощи обрезания строки. Типо mb_strimwidth($name, 0, 10, "...") Этапы установки будут под спойлером. Могут быть баги, это же паблик модуль С вами был KirKMS. От + в репу не откажусь. Предлагайте идеи для новых модулей.
    6 баллов
  10. Всем привет. Как-то делал сборку на Vii, но забросил. Админки нет. Шаблонизатор заменил на Twig. Много еще что сделано, не помню. Надо доделать много функций. В общем смотрите скрины, прошу 350 руб. Думаю это не много для такой работы. Скрины: По поводу приобретения: VK.com
    6 баллов
  11. Всем привет. Этот модуль я писал ещё давно, а точнее начинал писать и не доделал. Вот сегодня решил допилить его и выложить вам. Модуль сортирует список друзей по дате добавления. Сначала выводит новых друзья. За пример был взят всеми любимый Вк. Этапы установки под спойлером От плюса в репу не откажусь. Предлагайте идеи в этой теме. Создано специально для пользователей cmstools.ru
    6 баллов
  12. VII Engine 2022 👉Fronted 👉Backend 👉Demo- https://app-tau-tawny.vercel.app/ Как присоедениться к разработке? 🐱‍🐉 Нажимаете кнопку Fork, проект клонируется в ваш аккаунт на гитхабе. Работаете, коммитите и пушите к себе. Потом предлагаете пулл-реквест. Его смерджат с основным хранилищем. Если понравилось поставьте звездочку⭐ репозиторию
    5 баллов
  13. Flexi 1.0 Просмотр файла Говорю сразу, в коде ОЧЕНЬ много багов Собрал на основе Vii Engine. НЕТ админ панели, недоделаны некоторые функции! Добавил Kamran MUSA Добавлено 12.01.2021 Категория Сборки vii engine
    5 баллов
  14. В силу того что старый метод добавления видео уже не актуален. Решил выложить новый. Зайти в файл profile.js Найти там //VIDEOS var videos = { Заменить код который ниже на новый load: function(){ video_lnk = $('#video_lnk').val(); good_video_lnk = $('#good_video_lnk').val(); if(videos.serviece(video_lnk)){ if(video_lnk != 0){ if(video_lnk != good_video_lnk){ $('#box_loading').show(); $.post('/index.php?go=videos&act=load', {video_lnk: video_lnk}, function(data){ if(data == 'no_serviece'){ $('#no_serviece').show(); } else { row = data.split(':|:'); $('#result_load').show(); $('#photo').html('<img src="'+row[0]+'" alt="" id="res_photo_ok" />'); $('#title').val(row[1]); $('#descr').val(row[2]); $('#good_video_lnk').val(video_lnk); $('#no_serviece').hide(); } $('#box_but').show(); $('#box_loading').hide(); }); } else $('#no_serviece').hide(); } else $('#result_load').hide(); } else $('#no_serviece').show(); }, serviece: function(request){ var pattern = new RegExp(/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i); return pattern.test(request); }, Зайти в файл videos.php Найти там //################### Добавление видео в БД ###################// Заменить код полностью case "send": NoAjaxQuery(); if($config['video_mod_add'] == 'yes'){ $good_video_lnk = ajax_utf8(textFilter($_POST['good_video_lnk'])); $title = ajax_utf8(textFilter($_POST['title'], false, true)); $descr = ajax_utf8(textFilter($_POST['descr'], 3000)); $privacy = intval($_POST['privacy']); if($privacy <= 0 OR $privacy > 3) $privacy = 1; //Если youtube то добавляем префикс src=" и составляем ответ для скрипта, для вставки в БД if(preg_match("/src=\"https:\/\/www.youtube.com|src=\"https:\/\/youtube.com/i", 'src="'.$good_video_lnk)){ $good_video_lnk = str_replace(array('#', '!'), '', $good_video_lnk); $exp_y = explode('v=', $good_video_lnk); $exp_x = explode('&', $exp_y[1]); $result_video_lnk = '<iframe width="770" height="420" src="https://www.youtube.com/embed/'.$exp_x[0].'" frameborder="0" allowfullscreen></iframe>'; } //Если rutube, То добавляем префикс value=" if(preg_match("/value=\"https:\/\/www.rutube.ru|value=\"https:\/\/rutube.ru/i", 'value="'.$good_video_lnk)){ $exp_frutube = explode('?v=', $good_video_lnk); $result_video_lnk = '<OBJECT width="770" height="420"><PARAM name="movie" value="https://video.rutube.ru/'.$exp_frutube[1].'"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="https://video.rutube.ru/'.$exp_frutube[1].'" type="application/x-shockwave-flash" wmode="window" width="770" height="420" allowFullScreen="true" ></EMBED></OBJECT>'; } //Если vimeo, То добавляем префикс src=" if(preg_match("/src=\"https:\/\/www.vimeo.com|src=\"https:\/\/vimeo.com/i", 'src="'.$good_video_lnk)){ $exp_frutube = explode('com/', $good_video_lnk); $result_video_lnk = '<iframe src="https://player.vimeo.com/video/'.$exp_frutube[1].'" width="770" height="420" frameborder="0"></iframe>'; } //Если smotri, То добавляем префикс src=" if(preg_match("/src=\"https:\/\/www.smotri.com|src=\"https:\/\/smotri.com/i", 'src="'.$good_video_lnk)){ $exp = explode('id=', str_replace('#', '', $good_video_lnk)); $result_video_lnk = '<object id="smotriComVideoPlayer'.$exp[1].'_1314557535.5897_7726" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="770" height="420"><param name="movie" value="https://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" width="770" height="420" type="application/x-shockwave-flash"></embed></object>'; } //Формируем данные о фото $photo = $db->safesql(ajax_utf8(htmlspecialchars(trim($_POST['photo'])))); $photo = str_replace("\\", "/", $photo); $img_name_arr = explode(".", $photo); $img_format = totranslit(end($img_name_arr)); $image_name = substr(md5(time().md5($good_video_lnk)), 0, 15); //Разришенные форматы $allowed_files = array('jpg', 'jpeg', 'jpe', 'png', 'gif'); //Загружаем картинку на сайт if(in_array(strtolower($img_format), $allowed_files) && preg_match("/https:\/\//i", $photo) && $result_video_lnk){ //Директория загрузки фото $upload_dir = ROOT_DIR.'/uploads/videos/'.$user_id; //Если нет папки юзера, то создаём её if(!is_dir($upload_dir)){ @mkdir($upload_dir, 0777); @chmod($upload_dir, 0777); } //Подключаем класс для фотографий include ENGINE_DIR.'/classes/images.php'; @copy($photo, $upload_dir.'/'.$image_name.'.'.$img_format); $tmb = new thumbnail($upload_dir.'/'.$image_name.'.'.$img_format); $tmb->size_auto('175x131'); $tmb->jpeg_quality(100); $tmb->save($upload_dir.'/'.$image_name.'.'.$img_format); } if($result_video_lnk AND $title){ $photo = $config['home_url'].'uploads/videos/'.$user_id.'/'.$image_name.'.'.$img_format; $db->query("INSERT INTO `".PREFIX."_videos` SET owner_user_id = '{$user_id}', video = '{$result_video_lnk}', photo = '{$photo}', title = '{$title}', descr = '{$descr}', add_date = NOW(), privacy = '{$privacy}'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_videos_num = user_videos_num+1 WHERE user_id = '{$user_id}'"); $photo = str_replace($config['home_url'], '/', $photo); //Добавляем действия в ленту новостей $generateLastTime = $server_time-10800; $row = $db->super_query("SELECT ac_id, action_text FROM `".PREFIX."_news` WHERE action_time > '{$generateLastTime}' AND action_type = 2 AND ac_user_id = '{$user_id}'"); if($row) $db->query("UPDATE `".PREFIX."_news` SET action_text = '{$dbid}|{$photo}||{$row['action_text']}', action_time = '{$server_time}' WHERE ac_id = '{$row['ac_id']}'"); else $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 2, action_text = '{$dbid}|{$photo}', action_time = '{$server_time}'"); //Чистим кеш mozg_mass_clear_cache_file("user_{$user_id}/page_videos_user|user_{$user_id}/page_videos_user_friends|user_{$user_id}/page_videos_user_all|user_{$user_id}/profile_{$user_id}|user_{$user_id}/videos_num_all|user_{$user_id}/videos_num_friends"); if($_POST['notes'] == 1) echo "{$photo}|{$user_id}|{$dbid}"; } } else echo 'error'; die(); break; Чуть ниже найти //################### Парсер . Загрузка данных о видео ###################// Заменить код полностью case "load": NoAjaxQuery(); $video_lnk = $_POST['video_lnk']; if(preg_match("/https:\/\/www.youtube.com|https:\/\/youtube.com|https:\/\/rutube.ru|https:\/\/www.rutube.ru|https:\/\/www.vimeo.com|https:\/\/vimeo.com|https:\/\/smotri.com|https:\/\/www.smotri.com/i", $video_lnk)){ //Открываем ссылку //Если ссылка youtube, то формируем xml ссылку для получения данных if(preg_match("/https:\/\/www.youtube.com|https:\/\/youtube.com/i", $video_lnk)){ $exp_y = explode('v=', $video_lnk); $exp_x = explode('&', $exp_y[1]); $sock = fopen('https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v='.$exp_x[0].'&format=xml', 'r'); } elseif(preg_match("/https:\/\/www.vimeo.com|https:\/\/vimeo.com/i", $video_lnk)){ $sock = fopen('https://vimeo.com/api/oembed.xml?url='.$video_lnk, 'r'); } else { $sock = fopen($video_lnk, 'r'); } if(!$sock){ echo 'no_serviece'; } else { $html = ''; //Если сервис youtube, rutube, smotri то просто выводи if(preg_match("/https:\/\/www.youtube.com|https:\/\/youtube.com|https:\/\/rutube.ru|https:\/\/www.rutube.ru|https:\/\/smotri.com|https:\/\/www.smotri.com/i", $video_lnk)){ while(!feof($sock)){ $html .= fgets($sock); } } //Если сервис Vimeo, то сразу применяем кодировку utf-8, win-1251 if(preg_match("/https:\/\/www.vimeo.com|https:\/\/vimeo.com/i", $video_lnk)){ while(!feof($sock)){ $html .= ajax_utf8(fgets($sock)); } } fclose($sock); //Если сервис Vimeo, то выводим без кодировки $data = str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html); //Если сервис youtube применяем кодировку utf-8, win-1251 $data_all = ajax_utf8(str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html)); //Если видеосервис youtube if(preg_match("/https:\/\/www.youtube.com|https:\/\/youtube.com/i", $video_lnk)){ preg_match_all('`(<title>[^\[]+\</title>)`si', $data_all, $parse); $res_title = rn_replace(str_replace(array('<title>', '</title>'), '', $parse[1][0])); //Делаем фотку для youtube $parse_start = explode('v=', $video_lnk); $parse_end = explode('&', $parse_start[1]); $res_img = "https://img.youtube.com/vi/{$parse_end[0]}/0.jpg"; } //Если видеосервис rutube if(preg_match("/https:\/\/rutube.ru|https:\/\/www.rutube.ru/i", $video_lnk)){ $data_rutube = iconv('koi8-u', 'windows-1251', str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html)); preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:description")`si', $data_rutube, $parse_rutube); $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:description"', '" />'), '', $parse_rutube[1][0])); preg_match_all('`(<meta property="og:description" content="[^\[]+\<meta property="og:image")`si', $data_rutube, $parse_rutube_descr); $res_descr = rn_replace(str_replace(array('<meta property="og:description" content="', '<meta property="og:image"', '" />'), '', $parse_rutube_descr[1][0])); $exp_rutube_img = explode('v=', $video_lnk); $exp_img_dir = substr($exp_rutube_img[1], 0, 2); $exp_img_dir_2 = substr($exp_rutube_img[1], 2, 2); $res_img = "https://tub.rutube.ru/thumbs/{$exp_img_dir}/{$exp_img_dir_2}/{$exp_rutube_img[1]}-1.jpg"; } //Если видеосервис vimeo if(preg_match("/https:\/\/www.vimeo.com|https:\/\/vimeo.com/i", $video_lnk)){ preg_match_all('`(<title>[^\[]+\</title>)`si', $data, $parse); $res_title = str_replace(array('<title>', '</title>'), '', $parse[1][0]); preg_match_all('`(<thumbnail_url>[^\[]+\</thumbnail_url>)`si', $data, $parse_img); $res_img = str_replace(array('<thumbnail_url>', '</thumbnail_url>'), '', $parse_img[1][0]); preg_match_all('`(<description>[^\[]+\</description>)`si', $data, $parse_descr); $res_descr = myBrRn(rn_replace($parse_descr[1][0])); } //Если видеосервис smotri if(preg_match("/https:\/\/smotri.com|https:\/\/www.smotri.com/i", $video_lnk)){ $html = iconv('utf-8', 'windows-1251', $html); preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:image")`si', $html, $parse_title); $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:image"', '" />'), '', $parse_title[1][0])); preg_match_all('`(<link rel="image_src" href="[^\[]+\<!-- Open Graf Protocol. Facebook/Yandex -->)`si', $html, $parse_img); $res_img = rn_replace(str_replace(array('<link rel="image_src" href="', '<!-- Open Graf Protocol. Facebook/Yandex -->', '" />'), '', $parse_img[1][0])); } $result_img = $res_img; $result_title = trim(strip_tags(strtr($res_title, array('&#39;' => "'", '&quot;' => '"', '&iqu;' => '[', '&iqu2;' => ']')))); $result_descr = trim(strip_tags($res_descr)); if($result_img && $result_title) echo "{$result_img}:|:{$result_title}:|:{$result_descr}"; else echo 'no_serviece'; } } else echo 'no_serviece'; die(); break; Вот и всё. От плюса в репу не откажусь.
    5 баллов
  15. Друзья, подруги и все кто посещает CMSTOOLS.ru! От лица всей команды нашего ресурса, хочу поздравить вас с наступающим Новым 2022 годом! Пусть новый год, год ТИГРА принесет всем только положительные эмоции. Желаю всем дальнейшего развития в любимой сфере, любви, достатка, в общем - зарабатывайте миллионы и радуйте всех вокруг, ведь всё возвращается бумерангом обратно! И на последок, небольшое поздравление от мэра Киева, Виталия Кличко Всех с новым 2222 2022 ГОДОМ!!! 🎄 video_2021-12-31_20-40-28.mp4
    5 баллов
  16. > Установка сборки Делайте пул реквесты, присылайте ошибки на Github
    5 баллов
  17. шёл 2020 век... api как обычно сливает сборки... балаж как обычно кидает людей....
    5 баллов
  18. Как же все таки создать своего telegram бота на Laravel? Для создания нам понадобится: Оффициальная документация по Laravel (я думаю что с установкой не будет проблем); Регистрация нашего бота у @BotFather; Установка библиотеки для работы с Telegram API из Github Репозитория; Еще нам нужно доменное имя с SSL Сертификатом (https протокол), ибо телеграм без сертификата не будет слушать наш сервер через WebHook; Ну что, начнем с регистрации нишего бота у @BotFather Прежде чем начать писать код, нового бота нужно зарегистрировать у «папы всех ботов» - @BotFather, чтобы получить токен (ключ) для работы с Telegram API. Открываете чат с @BotFather; Вводите или выбираете из списка команду /newbot; Отправляете желаемое название для бота; Пишете юзернейм бота, по которому его будут находить через поиск. Обязательно на конце вашего юзернейма должно быть слово «bot» или «_bot». Например, CmsToolsBot; По желанию можно сразу настроить полное или краткое описание, список команд и аватарку. По итогу регистрации получаем наш токен — 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s (данный токен не рабочий). Будьте осторожны: никогда и никому не показывайте токен, иначе ваш бот может быть скомпрометирован. Если по несчастливой случайности кто-то нехороший все-таки узнал ваш токен, то заменить его можно всё в том же @BotFather, нажав на кнопку «Revoke current token» в разделе «API Token». Создадим нашего бота Писать код бота будем на Laravel, но чтобы ничего не изобретать, воспользуемся уже готовой и очень удобной Библиотекой. Первое что нам понадобится, так это привязать через метод SetWebhook бота к нашему файлу-обработчику. Сделать это можно при помощи библиотеки, но есть вариант быстрее и проще – это построить вот такую ссылку: https:// api. telegram. org/bot375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s/setWebhook?url=https:// site.ru/bot/webhook, где: 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s — это наш токен; https:// site.ru/bot/webhook - ссылка на файл-обработчик на нашем сайте; Открыв в браузере эту ссылку, должен прийти JSON-ответ со значением «Webhook was set», что будет означать, что вебхук установлен, и теперь все запросы от пользователей будут присылаться по адресу файла-обработчика. Ну а теперь самое интерестное, мы уже установили наш Laravel Framework, теперь нам нужно установить библиотеку и создать обработчик, который будет доступен по ссылке https:// site.ru/bot/webhook. Для установки библиотеки, нам понадобится composer (если у Вас не работает композер, то в гугле можно найти много мануалов по использованию и настройке). Ядро composer и vendor папки с установленными библиотеками у laravel находится в корневой папке, так что заходим туда и через терминал (командную строку) пишем команду установки библиотеки: Теперь у нас все готово к написанию обработчика который будет слушать telegram через WebHook. Нам нужно прежде всего создать контроллер, в котором и будет наша функция связи с телеграм. В той же корневой папке через терминал вводим команду для создания нашего контроллера: php artisan make:controller BotController, данная команда автоматически создаст app\Http\Controllers\BotController.php (можно ознакомится с офф документацией по контроллерам), и сразу же создадим роутер чтобы наша ссылка получила формат https:// site.ru/bot/webhook. Нам нужно добавить код routes в файл routes\web.php (так же есть документация по роутерам): Route::group(['prefix' => 'bot', 'middleware' => 'web'], function () { Route::post('webhook', 'BotController@index'); }); И еще так как все post запросы в laravel проходят только с CSRF токеном, то для префикса bot нам нужно сделать исключение, идем в файл app\Http\Middleware\VerifyCsrfToken.php и добавляем исключение: /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ //'api/*', 'bot/*' ]; BotController@index - данная строчка значит что мы обращаемся к контроллеру BotController и функции с названием index. Ну а теперь и код контроллера: <?php namespace App\Http\Controllers; use TelegramBot\Api\Client; // подключение библиотеки Telegram API use TelegramBot\Api\Types\ReplyKeyboardMarkup; // использование ReplyKeyboardMarkup (основное меню) use TelegramBot\Api\Types\Inline\InlineKeyboardMarkup; // использование InlineKeyboardMarkup (кнопки под сообщением) class BotController extends Controller { public function index() { // Подключение сайта к Telegram API // Пример token - 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s $bot = new \TelegramBot\Api\Client('token'); // Стандартная команда /start // Таким образом можно создать любую команду $bot->command('start', function ($message) use ($bot) { $answer = 'Добро пожаловать!'; $bot->sendMessage($message->getChat()->getId(), $answer); }); // Пример кнопок у сообщений - команда /keyboard $bot->command('keyboard', function ($message) use ($bot) { $answer = 'Предоставленные кнопки!'; $testKey = new InlineKeyboardMarkup( [ [ ['callback_data' => 'test', 'text' => 'Тестовая кнопка'] ] ] ); $bot->sendMessage($message->getChat()->getId(), $answer, 'HTML', true, null, $testKey); }); // пример кнопок меню под строкой ввода /menu $bot->command('menu', function ($message) use ($bot) { $answer = 'Сообщение показывается и снизу появятся кнопки'; $StartKeyboard = new ReplyKeyboardMarkup( [ [ "Привет" ], [ "/start", "/keyboard" ] ], true, true ); $bot->sendMessage($message->getChat()->getId(), $answer, 'HTML', true, null, $StartKeyboard); }); // Обработка кнопок у сообщений $bot->on(function ($Update) use ($bot) { $callback = $Update->getCallbackQuery(); $message = $callback->getMessage(); // получаем сообщение $cid = $callback->getFrom()->getId(); // уникальный идентификатор chat_id $data = $callback->getData(); // название команды переданный с кнопки у сообщения // пример обработки команды с кнопки if ($data == "test") { $answer = "Пример сообщения с кнопки :)"; // данная функция будет не отправлять сообщение, а редактировать предыдущее сообщение с кнопками $bot->editMessageText($message->getChat()->getId(), $message->getMessageId(), $answer, 'HTML'); $bot->answerCallbackQuery($callback->getId()); // убираем загрузку на кнопке //$bot->answerCallbackQuery($callback->getId(), 'Всплывающее сообщение'); // убирает загрузку на кнопке и показывает сообщение } // убираем вечное обновление (данная проблема только на Laravel, на чистом php вечного обновления нету) if (empty($data)) return true; else return false; }, function ($Update) { try { $callback = $Update->getCallbackQuery(); if (is_null($callback) || !strlen($callback->getData())) return false; return true; } catch (\Exception $e) { return false; } }); // Отлов любых сообщений + обработка reply-кнопок $bot->on(function ($Update) use ($bot) { $message = $Update->getMessage(); // получаем инфо о сообщениях $mtext = $message->getText(); // получаем текст отправленого сообщения пользователем $cid = $message->getChat()->getId(); // получаем chat_id (уникальный ид пользователя в телеграм) // Пример проверки сообщения if (mb_stripos($mtext, "Привет") !== false) { $answer = "Привет, " . $message->getChat()->getFirstName(); // будет отправлено сообщение в ответ "Привет, Konstantin" $bot->sendMessage($message->getChat()->getId(), $answer, 'HTML', true, null); } }, function ($message) { return true; }); // Запуск бота if (!empty($bot->getRawBody())) { try { $bot->run(); } catch (\Exception $e) { // можно добавить функцию уведомления администратора о возможных ошибках } } } } ?> Таким образом можно создать telegram бота любой сложности, от простого новостного бота, до онлайн игр методом команд, примеров таких ботов полно. Работоспособность всех кнопок и команд можно посмотреть на примере одного из моих ботов @InstaSunriseBot, в нем реализованы все коды команд и даже больше и данная библиотека позволяет управлять телеграм каналами через бота, к примеру он может следить за чатом... Если будет интерестная тематика по ботам и различным приложениям на ларавел, могу еще пару статей выложить... Так же можно задать мне вопросы в телеграм @syfer_dev Всем спасибо за внимание
    5 баллов
  19. Тут недавно ковырялся у себя на компе и наткнулся на исходники андроид приложения worldomly он же kabuljan. Кому надо заберайте) тык
    5 баллов
  20. В топку вии Сделаем проще В течение недели подготовлю и выложу свой движок (соц. Adderiy) предупреждаю сразу, на node.js
    5 баллов
  21. Чистая сборка с беседами и без дублирования сообщений каждому участнику (касается общих и обычных диалогов). Старого вида (без диалогов) нет, прочтение сообщений происходит без необходимости наведения на них. Download
    5 баллов
  22. Просмотр файла Alpha CMS 1.5.1 Relise Скрипт работает на php 7.3 и использует pdo. По описанию к новостям нам обещали кучу классных исправлений и это очень хорошо, ведь старые версии были "ошибка на ошибке".Сначала вам необходимо будет установить чистую версию 1.5.0 а потом уже 1.5.1. Установка: Сначала закидываете файлы на хостинг из архива AlphaCMS 1.5.1 и переходите на свой сайт. Там вам любезно попросят указать данные от базы данных и данные от админа. Все. Обновление 1.5.1 необходимо установить через альфа установщик в самой админ-панели. Вся информация, а также архив был взят с сайта - 3020.ru Добавил NaFanyA Добавлено 22.11.2021 Категория Релизы AlphaCMS
    4 балла
  23. сборка worldomly.com---kabuljan.af под хостинг в архиве мобильная версия на подомене апи на подомене. Автор сборки PHPSocial (Юра Балаж) https://cloud.mail.ru/public/3TyC/2CZrUsXpL
    4 балла
  24. Я еще не тестировал, но думаю, работает, все равно можно попробовать 👍 [Module] Graffiti New.zip
    4 балла
  25. Всем привет. Делаю сборку на Vii, правда от него только AJAX остался, остальное все переписал. Хочу услышать критику насчет дизайна, что мне стоило бы поправить в дизайне?
    4 балла
  26. 1 Аудио плеер на html5 2 Видео плеер на html 5 + загрузка видео на сайт + репосты видео 3 Скрытие фото В профиле как у вк 4 Моментальные уведомления как у вк в шапке сайта 5 реклама как у вк 2.0 6 репосты 7 Диалоги аналог как у вк + Сообщения в группах как у вк 8 просмотры записей 9 модуль таймер Давненько покупал уже не помню у кого Сборка friendes.rar
    4 балла
  27. Доброго времени суток! Вырезал модуль плеера на HTML 5 из породии кубала которую слил Юра Балаж. Местами доработал, исправил ошибки которые были в консоли, и поправил стили. Внимание! модуль адаптировался под чистую Vii Engine 2.0 по этому если вы меняли шаблон в своей сборке, модуль может встать криво. В модуле есть прикрепления аудио к стене а так же в личное сообщения и в группы. В архиве подробная инструкция. Не исключаю что могут быть и ещё ошибки, по этому если что то заметите, отпишите буду исправлять. Позже ещё кое что доработаю, и иконочные шрифты переделаю на swg. https://drive.google.com/open?id=1FfM00pbkkc6tTfm_WCNlJGDWq8XLIWLz Скачал? не забудь про + в репу))
    4 балла
  28. Всем привет. Ловите от меня свежий модуль для Vii-Engine. Я не понимаю почему ещё не кто его не написал и не выложил. При авторизации пользователя просят ввести проверочный код. При желание можно подключить reCAPTCHA - Google. Вот вам скрин. Этап установки под спойлером. Модуль написан на основе VII ENGINE LICENSE (NULLED) 2.1 Не откажусь от плюса в репу. Если есть проблемы, то пишите. Всем спасибо за внимание. С уважением KirKMS.
    4 балла
  29. Всех с наступающим новым годом)
    4 балла
  30. В принципе нормально говоришь потому что если ты говоришь то это нормально
    4 балла
  31. Дело было вечером и делать было не чего. Решил фигнёй по страдать.У меня заказали сайт, и заказчик попросил сделать рейтинг для клиента.Которого добавляет. Правда он выразился так "Сделай рейтинг типо клиент пришел, начал добавлять его и выбрал типо пи**ило,му**ло итд" Решил на кидать пример.И так получилось,что всё не плохо и смотрится.Правда колхозно. При нажатие на эмоджика.Остальные пропадают. Спустя 20 минут.Сделал реализацию на сайте Вот и сами заготовки. P.S Писал через консоль хрома Автор: KirKMS Специально для cmstools.ru
    4 балла
  32. Тут даже видео с моего канала
    4 балла
  33. Привет ребят! Нашел у себя на облаке сборку 2016 года Бета версии. Говорю сразу не помню что там и как там. Баги есть это точно. Скидываю так как очищаю облако, может кто-то что-то вырежет не помню что там писал дописывал в ней, а может и не дописывал. Сборка делалась на vii engine 3.0 by Ajax Andrey (node.js), на Apache Говорю сразу сборка на node.js Скачать: OneDrive
    4 балла
  34. Данная статья написана для новичков в сфере Ларавель и призвана помочь им в начальной стадии освоения фреймворка. 1. Системные требования Фреймворк Laravel 5.3 требует: PHP >= 5.6.4 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer PHP Extension Весь этот набор компонентов присутствует в OpenServer под Windows. Также необходим Composer и NodeJS. 2. Установка 2.1. Настройка OpenServer Основные На вкладке «Основные» включаем автозапуск сервера и требование учетной записи Администратора. Вторая нам нужна при работе с файлом хостов. Сервер На этой вкладке устанавливаем настройки виртуального диска в «Автоопределение потребности», далее настройку использования переменной Path в «Свой Path + Win Path». Ставим галку «Защитить сервер от внешнего доступа», чтобы из локалки к нам никто не цеплялся. Скоро выложу часть 2.
    4 балла
  35. Кто еще ничего не умеет или не умеет недостаточно, чтобы работать с настоящими проектами могу порекомендовать доку php.net(читайте комментарии). Также познать php помогут книги по php 7(Симдянов, Котеров, Скляр), проще изучить, если найти наставника или записаться на курсы. Все книги можно найти в гугле. Видеоуроки и аудиоуроки только отнимут время. Мы представляем все в виде объектов, поэтому в PHP легче кодить в ООП стиле в отличие от процедурного + не ухудшается читаемость кода и его поддержка. Вот его подробное представление. PSR, Composer. Рекомендую использовать IDE PHPStorm или VS Code. В php под любую задачу есть много готовых популярных библиотек. Отличный менеджер зависимостей "Composer" берет на себя все сложности зависимостей пакетов, устанавливая внутрь каждого проекта отдельно. Статистика https://packagist.org/statistics
    4 балла
  36. Не подумай что пытаюсь тебя как-то задеть. Если ты хочешь делать с 0 на этом движке, то лучше брать null версию от нашего портала (null + пара плюх). По твоему опыту работы в веб, а это вопросам связанных с css и html, думаю далеко не уехать. Я бы предложил сначала изучить основы-основ (html,css), а ещё лучше начать с элементарного. Знание теории о работе Интернета: из чего он состоит и как происходит обмен информацией в сети
    4 балла
  37. UI Icon set Бесплатный набор из 266 качественных интерфейсных иконок в формате Figma, Sketch, SVG для построения пользовательского интерфейса. Иконки представлены в трех размерах (16px/20px/24px). Данным набором могут пользоваться как дизайнеры, так и разработчики. UI-Icon-set-tetrisly-com.zip
    4 балла
  38. Я пытался посмотреть, работает ли это несколько раз, я думаю, что было бы лучше, если бы было сделано больше редактирования. 👍👍 [Module] Audio & radio player.rar
    4 балла
  39. Всем привет.По скольку я не нашел данной сборки на форуме.Выложу её сюда. Сборка найдена на просторах интернета.Автор роде sloopy но это не точно. По функционалу описать не смогу, но знаю что там много чего есть. Инструкция по установке 1. Установите нужные параметры в system/data (config.php и db.php) 2. Залейте db.sql в БД 3. После того, как залили db.sql, залейте clear_DB3.sql в БД Пару скринов вам в студию. Качайте.Устанавливайте.Пользуйтесь. vk-cms-rev.2.015.rar
    4 балла
  40. Вот вам не большой хак. Данный хак склоняет имена и слова в разных падежах. Например как было в vii до этого Жена Авгения Максевич А как стало Женат на Евгении Афониной Как установить? Читай инструкцию. Хак может быть немного не доработан, ну или у меня по русскому 2 было в школе Использовать в любом файле php вот так DeclName($row_users['user_name'], 'rod'); Где написано rod это падеж. rod-Родительный. dat-Дательный. vin-Винительный. tvo-Творительный. pre-Предложный. Если понравилось.То есть вот такая кнопка для благодарности . Всем спасибо за внимание. Предлагайте что ещё можно сделать.
    4 балла
  41. Открываем system/modules/news.php И после //Head if(!$_POST['page_cnt']){ вставляем данный код вывода $sql_ = $db->super_query("SELECT user_id,user_status, user_friends_num,adres, user_search_pref,user_name, user_photo, user_birthday, user_country_city_name, user_last_visit, user_official, user_logged_mobile FROM `".PREFIX."_users` WHERE user_last_visit AND user_id AND user_country = '{$user_info['user_country']}' ORDER BY RAND() LIMIT 5", 1); $tpl->load_template('news/find_friends.tpl'); foreach($sql_ as $row){ $tpl->set('{name}', $row['user_search_pref']); $tpl->set('{status}', $row['user_status']); $tpl->set(false,array( '{adres}' => $row['adres'] ? $row['adres'] : 'u'.$row['user_id'] )); if($row['user_photo']) $tpl->set('{ava}', '/uploads/users/'.$row['user_id'].'/50_'.$row['user_photo']); else $tpl->set('{ava}', '/images/no_ava_50.png'); $tpl->compile('find_friends'); } $tpl->set('{find_friends}', $tpl->result['find_friends']); Дальше заходим в templates/Default/news/ и открываем head.tpl и в любое удобное место вставляем код {find_friends} Скачиваем файл шаблона и закидываем его в templates/Default/news/ Все установка закончена запросы и дизайн сами уже сделаете для своего сайта)от плюсика не откажусь))))))))) find_friends.tpl
    4 балла
  42. Хей, я был уже давно уверен, что проект Vii Engine умер)) Вообщем, я когда-то очень много времени посвящал этому проекту. Я жду что-то кто-нибудь воскресит этот движок, хотяб ради ретро эффекта ) Думаю будет если у нового Vii Engine будет стек вроде: MVC - фреймворк на беке, только API реализация (если PHP - то Laravel, если Python - то Flask) Postgres + Redis (как связка БД+Кеш) React JS + Redux и все это в Webpack - на фронетнде React Native + Redux - для Мобилок АПИ классно было не RestFull, а Graphql ну немного утопии и хватит Я тут откопал свой старый HDD с виндой и нашел там какие-то модули, так вот ниже ссылочка, возможно кому-то пригодятся, описание модулей прикладывать не буду, ибо сам не помню))) https://yadi.sk/d/Obb3Lquw3PcRUP
    4 балла
  43. Согласен, потому что социальная сеть должна быть в режиме реального времени во всех аспектах. React с typescript и redux с Node.js — хороший выбор для этого
    3 балла
  44. Многие не могут установить новую сборку VII Engine 2022 от @Семен Вот вам видео от меня по установке
    3 балла
  45. Просмотр файла HTML - шаблон соц сети ASSYA.RU Данный файл имеет только HTML+CSS структуру. Умеющие люди смогут пришить данный шаблон к VII, либо к другим же движкам. В шаблоне отсутствуют некоторые страницы, со временем обновится. Надеюсь кому-нибудь пригодится. Добавил NaFanyA Добавлено 13.12.2021 Категория HTML+CSS
    3 балла
  46. Скачал я эту Альфу открыл код и сразу закрыл... Людям придумали шаблонизаторы а они до сих пор ебашут php вперемешку с html. Я уже не говорю про отступы после каждой строчки кода... Пизданутся можно. В помойку её закиньте и забудьте.
    3 балла
  47. km Social сборка на основе Vii Engine 2. Переделано и оптимизировано многое. Админ панель в данной версии отсутствует. Обновления будут обязательно, если купите расширенную версию - будете получать обновления бесплатно. Пока что некоторые функции не работают, шаблон криво работает на мобильных устройствах. Админ панель будет в следующей версии. Основные функции: Скриншоты: Демо сайт - ссылка Скачать (10$) - Gumroad
    3 балла
  48. Так, не. А что оценивать?) Типо, ты каждый раз делаешь одно и тоже с разным дизайном и названием. Добавил-бы, к примеру, звонки, был-бы смысл, а просто снижать репутацию любой даун может). Собственно, выбор твой. Я лишь высказал своё мнение. А если, ты так на критику реагируешь, то 1. Зачем на форуме попросил заценить? 2. Иди лечись.
    3 балла
  49. Простите, но - ЭТО (даже страшно назвать сборкой) . Много мусора, код через не ровные руки написан, автор - Балаж, Лайт екиэй Я НИКОГО НЕ КИДАЮ, А ВСЕ ПРОСТО ВРУТ И ЗАВИДУЮТ!!! НИЧЕГО САМИ НЕ МОГУТ, А Я ВОТ КРАСАВЧЕГ (нет. Юра, я знаю, что ты читаешь это. Прости конечно, но даже мне уже давно стало тошно смотреть на твои попытки надуть весь мир, а я с тобой знаком с 2012. Я много раз пытался с тобой работать) Кстати как человек, который работал с Юрой много раз в надежде, что он исправился, говорю : ЭТОТ ЧЕЛОВЕК НЕ МОЖЕТ РАБОТАТЬ НОРМАЛЬНО, ЕМУ МНОГО РАЗ ДОВЕРЯЛИ И ОН МНОГО РАЗ КИДАЛ. НЕ СВЯЗЫВАЙТЕСЬ С НИМ, СЕРЬЕЗНО ПОЖАЛЕЕТЕ.
    3 балла
  50. Евгений Каменских (Шистеров), оплати хостинг своего дерьмового форума и сиди там, тут собираются люди, которые окончили школу! Спасибо!
    3 балла
×
×
  • Создать...