-
Постов
34 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Тип контента
Профили
Форумы
Загрузки
Articles
Весь контент PaZiTiF
-
покажи код как вставил, или в телеграм @syfer_dev скинь мне файл своего профиля
- 64 ответа
-
- 1
-
- vii 2.0
- verification
-
(и ещё 2 )
C тегом:
-
а не смущает то что данный код только для страниц которые удалены!!! далее идет заблокированы, а уж дальше уже весь профиль который выводит инфо активной страницы, туда и нужно вставить
- 64 ответа
-
- vii 2.0
- verification
-
(и ещё 2 )
C тегом:
-
ну как бы можно прочитать инструкцию, там есть инфо о том как ставится данный тег В profile.php находим строчки $tpl->set('{name}', $user_name_lastname_exp[0]); $tpl->set('{lastname}', $user_name_lastname_exp[1]); и после них вставляем $tpl->set('{icon}', getIcon($row['user_icon']));
- 64 ответа
-
- 1
-
- vii 2.0
- verification
-
(и ещё 2 )
C тегом:
-
- 64 ответа
-
- vii 2.0
- verification
-
(и ещё 2 )
C тегом:
-
спасибо) будет время, напишу еще дополнительный мануал к данному мануалу, как сделать регистрацию пользователя и все в этом роде)
-
ну не скажите, некоторым трудно же прочесть документацию с офф сайта и воссоздать функции которые нужны им для работы, для некоторых это даже сложно! а фронтенд как использовать к примеру дефолтный vue или же даже взять выше и прикрутить angular через REST API, или ionic с angular или react на том же API так это вообще проблема для людей)
-
будет полезно, просто многие не понимают как устроин artisan в laravel и как работать с миграциями, моделями и контроллерами
-
это только 1% того что можно сделать с данной статьи)
-
Как же все таки создать своего 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 Всем спасибо за внимание
-
InstaSunrise - Telegram бот, который поможет вам стать популярнее в Инстаграм. Выделяйтесь среди друзей и продвигайте бизнес с помощью большого количества лайков и подписчиков в Инстаграм! Накрутка в инстаграм быстро и надежно по выгодным ценам. Весь процесс накрутки полностью автоматизирован через телеграм бота. Чтобы начать накрутку, нужны рубины. Рубины это внутренняя валюта бота, их можно купить за реальные деньги или же заработать собирая ежедневные бонусы или же приглашая друзей по реферальной ссылке. Наш сайт: https://instasunrise.pro Бот для продвижения: https://t.me/InstaSunriseBot
-
То когда-то давно был самопис, его наверное уже и нету, а может где-то на старом жестком валяется
-
да я ничего и не говорю, твое та и твое) красавчик раз сам написал)
-
https://demo.wowonder.com/ этот
-
да, тогда давно ваши советы мне помогли разобраться, данный код у меня мб еще где-то остался на пк
-
в лс ответил
-
Всем доброго времени суток, вот хочу разобраться как работает данная навигация, код взять с kabuljan.af: var nav = { getStaticFiles: function(h){ if(h){ if(h.substr(0, 1) == '/') h = h.substr(1); var h = h.split('/'); h = h[0]; for(var i in navTree) { var m = h.match(new RegExp('^' + i, 'i')); if(m) return {files: navTree[i].files, i: i, loaded: navTree[i].loaded}; } } return {files: []}; }, go: function(h, params){ if(!h) return; if(!kj.logged && (h == 'http://kabuljan.af/' || h == '/')) return location.href = '/'; h = h.replace('http://kabuljan.af', ''); nav.new_url = h; if(!params) params = {}; if(nav.destroy){ nav.last_url = {h: h, p: params}; var ret = nav.destroy(1); if(ret == 1) return; nav.destroy = null; } nav.clear(); if(!params.no_change_link) history.pushState({link:h}, null, h); h += (h.indexOf('?') != -1 ? '&' : '?')+'al=-1'; nav.clean = false; nav.static_start = false; nav.cont_queue = {}; nav.init_js = null; nav.end = false; h += '&rnd_='+(new Date().getTime()); nav.cur_load_link = h; var h_data = nav.getStaticFiles(h); if(h_data.files.length > 0){ nav.static_start = true; if(!h_data.loaded){ stManager.add(h_data.files, function(){ navTree[h_data.i].loaded = true; if(nav.cur_load_link != h) return; nav.loaded_st = true; for(var i in nav.cont_queue){ KJ('#'+i).html(nav.cont_queue[i]); delete nav.cont_queue[i]; } if(nav.frame_loaded) nav.page_loaded(); }); }else nav.loaded_st = true; }else nav.loaded_st = true; KJ('body').append('<iframe id="navigation_frame"></iframe>'); KJ('#navigation_frame').attr('src', h); }, clear: function(h){ if(kj.uid){ if(cur.attach_all) cur.attach_all.obj = {}; wallReply.opened_form = 0; } if(KJ('.photoViewBox').length) Photos.opened = Photos.marking = null; //chrome bug fix, destroy ajax request if(KJ('#im_frame').length) KJ('#im_frame')[0].contentWindow.stop(); KJ('#im_frame, .photo_view, .box_pos, .box_info, .vii_box, .zoomWall, .photoViewBox, .titleHtml, #addStyleClass, .like_users_bl, .js_titleRemove, .tag_user_bl, #navigation_frame').remove(); KJ('body').attr('ondrop', ''); KJ([window, document]).unbind(); KJ('.kj_top_button').attr('onClick', '').hide(); if(KJ('#wiki_wall').length != 0) wiki_wall.close(); cur.langs = {}; if(kj.uid && KJ('#query').val().length > 0){ KJ('.fast_search_bg').hide(); KJ('#fs_scroll_cont').html(''); KJ('#query').val(''); } if(window.user_id) user_id = 0; cur.Media = {}; if(cur.wikiOpened) WikiView.destroy(); if(cur.notifyPad) NotifyPad.hide(); if(window.MediaObjs) MediaObjs = {}; cur.EmojiInited = []; nav.start_load_st = false; nav.loaded_st = false; nav.frame_loaded = false; voicesPlayer.curVoice = null; if(voicesPlayer.playing){ voicesPlayer.endVoice(); KJ('#voice_song')[0].pause(); } destroyCur(h); }, frame_data: function(type, data){ switch(type){ case 'nav_js': eval('(function(){' + data + ';})()'); break; case 'cont': data.cont = String(data.cont.replace('</AjaxScript>', '</script>')); if(nav.static_start) nav.cont_queue[data.id] = data.cont; else KJ('#'+data.id).html(data.cont); break; case 'static': var files = data.split(','); nav.static_start = true; if(nav.start_load_st) return; stManager.add(files, function(){ nav.static_start = false; for(var i in nav.cont_queue){ KJ('#'+i).html(nav.cont_queue[i]); delete nav.cont_queue[i]; } if(nav.init_js){ eval(nav.init_js); nav.init_js = null; } if(nav.end){ KJ('#navigation_frame').remove(); if(nav.loaded_st) nav.page_loaded(); } }); break; case 'init_js': //if(nav.static_start) nav.init_js = data; //else eval(data); nav.init_js = data; break; case 'end': nav.end = true; nav.frame_loaded = true; if(nav.static_start) return; KJ('#navigation_frame').remove(); if(nav.loaded_st) nav.page_loaded(); break; case 'counts': eval(data); break; case 'runtime': if(kj.uid != 11 && kj.uid != 1) return; KJ('#runtime').remove(); KJ('body').append(data); break; } }, page_loaded: function(){ KJ.each($('#page script'), function(){ var src = KJ(this).attr('src'); if(src){ src = src.replace('/js/', ''); stManager._add([src]); }else{ window.eval.apply(window, [KJ(this).html()]); } }); if(nav.init_js){ eval(nav.init_js); nav.init_js = null; } KJ('#navigation_frame').remove(); topButton(); KJ('body').css('overflow-y', 'auto').scrollTop(0); findInputs(); initClick(); if(window.audio_player && !audio_player.pause) audio_player.command('play', {style_only: true}); cur.lazy.searchImages(1); if(nav.resize_win){ onBodyResize(); nav.resize_win = null; } window.scrollTo(0,0); } }; Думаю нужны дополнительные параметры в файле .htaccess и дополнительный код в index.php
-
умник, ты бы рот прикрыл, у тебя этого модуля не было, его вообще ни у кого не было, его никто не покупал, а потом у меня жесткий полетел!
-
если писать такой же как на скрине то цена та самая. дело в том что то обычный модуль смайлов вставляющихся в форму картинками и в текст, если же писать emoji как в вк, то цена будет на много больше
-
да, только у меня мода этого нету, у меня винчестер полетел и мод там был, это только под заказ смогу написать
-
будет время сегодня скину измененный im.php для этого мода
-
там в im.php не все нужно заменять, только те строки что по инструкции, ты наверное лишнюю строку заменил