Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Погрузись в удивительный мир настоящей рыбалки! Лови живую рыбу в естественных водоёмах, открой для себя новые рыбные места и поймай свой долгожданный трофей!

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
pikabu.education
pikabu.education
Серия Программирование

Курсы по PHP-разработке⁠⁠

1 год назад

PHP-разработка — это одна из востребованных специализаций в мире веб-разработки. Этот язык программирования используется для создания динамических веб-сайтов и веб-приложений, а также обеспечивает работу множества популярных платформ, таких как WordPress.
В этой подборке вы найдете курсы, которые помогут развить практические навыки, необходимые для успешной работы в сфере PHP-разработки, и создания сложных проектов.
Мы тщательно анализируем плюсы и минусы каждого курса, опираясь на мнение пользователей как на нашей платформе, так и на других ресурсах. Изучите реальные отзывы студентов и найдите подходящий для вас курс на платформе Pikabu Курсы.

  • Курс «Профессия: PHP-разработчик» от Хекслет

  • Курс «PHP Developer. Professional» от Otus

  • Курс «Веб-разработчик на PHP» от Skillbox

  • Курс «Профессия Fullstack веб-разработчик на JavaScript и PHP» от Skillfactory

Курсы по PHP-разработке

Обзор курсов

1. Курс «Профессия: PHP-разработчик» от Хекслет
Этот курс создан для тех, кто хочет стать PHP-разработчиком и овладеть востребованными навыками для успешного старта карьеры. Программа охватывает все ключевые аспекты разработки на PHP, начиная с основ программирования и работы с командной строкой, и до профессиональной разработки на фреймворке Laravel.

Курсы по PHP-разработке

Цена: зависит от тарифа.
Длительность: 10 месяцев.
Подробности:

  • реальные проекты, которые можно включить в портфолио;

  • интеграция с современными инструментами;

  • подготовка к собеседованиям;

  • программа интенсивная и требует много времени для освоения;

  • гарантия трудоустройства;

  • доступ к курсу навсегда.

Посмотреть программу курса >>>


2. Курс «PHP Developer. Professional» от Otus
Этот курс разработан для PHP-разработчиков, которые стремятся углубить свои знания и получить навыки, необходимые для работы с высоконагруженными системами, базами данных и современной архитектурой приложений. Программа охватывает ключевые аспекты разработки: от управления базами данных до создания отказоустойчивых систем, а также практические рекомендации по тестированию и профилированию кода.

Курсы по PHP-разработке

Цена: 96 000 ₽
Цена со скидкой: 86 400 ₽
Длительность: 5 месяцев.
Подробности:

  • глубокое изучение баз данных;

  • акцент на практики разработки;

  • покрывает сложные темы, важные для разработки масштабируемых приложений;

  • возможность создать реальный проект с консультацией преподавателей;

  • практическая направленность;

  • высокая интенсивность;

  • налоговый вычет.

Посмотреть программу курса >>>


3. Курс «Веб-разработчик на PHP» от Skillbox
Программа курса охватывает ключевые аспекты фронтенд и бэкенд разработки: от верстки адаптивных страниц и работы с JavaScript до создания сложных веб-приложений на React и Vue, а также освоение PHP и фреймворка Laravel.

Курсы по PHP-разработке

Цена: зависит от тарифа.
Длительность: зависит от тарифа.
Подробности:

  • практическая направленность;

  • широкий стек технологий;

  • возможность выбора между React и Vue для освоения фронтенд разработки;

  • высокая интенсивность;

  • гарантия трудоустройства;

  • налоговый вычет.

Посмотреть программу курса >>>


4. Курс «Профессия Fullstack веб-разработчик на JavaScript и PHP» от Skillfactory
Вы научитесь работать с frontend и backend, осваивая такие технологии, как HTML, CSS, JavaScript, React и PHP, а также принципы работы с базами данных, системами контроля версий и серверными приложениями.

Курсы по PHP-разработке

Цена: зависит от тарифа.
Длительность: 20 месяцев.
Подробности:

  • включает как базовые, так и продвинутые темы;

  • практическая направленность;

  • актуальные технологии;

  • каждый модуль завершается проектом, который можно использовать в портфолио;

  • поддержка трудоустройства;

  • высокая нагрузка;

  • для тех, кто хочет специализироваться исключительно на frontend или backend, курс может показаться слишком объемным;

  • доступ к материалам курса навсегда.

Посмотреть программу курса >>>

Реклама. ООО ХЕКСЛЕТ РУС, ИНН 7325174845,  ООО Отус онлайн-образование, ИНН 9705100963, ЧОУ ЧАСТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ СКИЛБОКС (КОРОБКА НАВЫКОВ), ИНН 9704088880, ООО Скилфэктори, ИНН 9702009530.

Показать полностью 5
Обучение Разработка PHP Онлайн-курсы Программирование Длиннопост
190
5
Аноним
Аноним
Программирование на PHP

Работают ли сайты поиска работы?⁠⁠

1 год назад

Здравствуйте . Столкнулся с проблемкой, не могу найти какую-нибудь вакансию после долгого перерыва.

Работал в web с 2014 по 2018 годы. Занимался версткой, установкой верстки на cms, попутно правил какой-то php код внутри этих cms. Большинство сайтов тогда использовали jQuery, поэтому лепил с помощью него слайдеры и datepicker'ы.

Вполне себе работал и на сыр с маслом хватало, но после одного проекта - выгорел и ушёл. Сейчас вот появилось желание вернуться, прошерстил бегло то, что стало минимумом, вроде docker, vue.js, laravel. Составил резюме и...нафиг бы никому не сдался. Даже до собеседования не пройти, одни отказы везде. Везде требуется коммерческий опыт от года, а кое-где от 3 лет, даже на позицию джуна. А еще гит-репозитории со своими пет-проектами просят. Странно это как по мне. Все равно, что с начинающего строителя требовать фото дачного домика, который он для себя строит.

Может кто подскажет как вообще действовать и можно ли сейчас пробить эту стену?

Работа Программирование PHP Текст
15
3
sh1nkey
sh1nkey

Вирджин TS сойджаки / Чэд PHP скуф⁠⁠

1 год назад
Вирджин TS сойджаки / Чэд PHP скуф
Показать полностью 1
Программирование Программист Картинка с текстом IT IT юмор PHP Скуфы Программа
4
630
Аноним
Аноним
IT-юмор

Как на Пикабу случайный пользователь стал админом⁠⁠1

1 год назад

Вспомнилась курьезная, давно забывая инсайдерская история о Пикабу, годов так 2014-2015, решил поделиться.

Давным-давно Пикабу работал на php 5.3 и где-то в коде нужно было вывести блок с админскими инструментами, который должен был показываться только разработчикам сайта (на тот момент было всего 3 разработчика + админ). И вот проверку на разработчика мы сделали вот так

if (in_array($userName, array('admin', 'dev', 'dev.js', '0x00')) {

// какая-то админская опция тут...

}

Этот код проверял, есть ли ник текущего пользователя в массиве из 4 ников разработчиков. И если он там был, то пользователю выдавалась какая-то админская опция.

Дело в том, что на тот момент никто из нас не догадался, что php5.3 (и так было аж до 7й версии php) функция in_array работала с особым нюансом и случился курьезный момент: пользователю с ником 000000 (ну или похожий на него, точно не помню сколько нулей было) выдались админские права, так как in_array('000000', array('0x00')) в старых версиях php возвращал TRUE :) Т.е. php считал, что ник '000000' и '0x00' - это одно и то же.

Как на Пикабу случайный пользователь стал админом

Насколько помню про это сам пользователь сообщил.

Во внутренности работы этой функции в php не лез, но явно там было где-то приведение к числу, так как оно работает и на других парах, например in_array('123', array('0x7B')) также вернет TRUE, причем работает это как с десятичными числами в строке, так и с шестнадцатеричными и восьмеричными.

Исправлялось просто: нужно было третий аргумент в in_array всегда указывать TRUE, тогда php будет делать сравнение значений без приведения типа.

Вот такая история, как случайный пользователь стал админом крупной площадки из-за недостаточной внимательности и каламбура типизации php :)

Показать полностью 1
Программирование PHP Пикабу Юмор IT юмор
168
SlyVolunteer
SlyVolunteer
Программирование на PHP

Туториал: компонент интерактивной SVG картограммы для InstantCMS 2⁠⁠

1 год назад

Карта зарплат бюджетников

Сложность: средняя.
Необходимое время: 30 мин.
В статье представлена инструкция по созданию своего компонента для движка InstantCMS2. В конце статьи приведена ссылка на архив с исходным кодом и содержимым всех файлов из этой инструкции. Пример внешнего вида компонента, который можно создать, используя данный туториал, представлен на иллюстрации.

@akiritch в моем предыдущем посте Продолжение поста «Зарплаты ректората МГТУ им. Н.Э. Баумана» усомнился #comment_325445602 в наличии функции отображения зарплат ка карте по регионам. Поэтому публикую здесь на Пикабу исходный код модуля для движка InstantCMS 2, который мы используем на сайте сообщества Зарплата бюджетников - этот исходный код в свое время был опубликован на Хабре (там фрагменты с кодом более читыемые, потому что сохраняются отступы в начале строк и присутствует подсветка синтаксиса PHP).

Для начала несколько слов про движок соц.сети / сообщества / блогосоциальной сети InstantCMS2. Эта бесплатная CMS может являться отличным компромиссом, возможно, лучшим из существующих.
В базовой версии уже заложен более богатый функционал по сравнению с LiveStreet CMS.

Скриншот сравнения функционала не привожу, потому что по ссылке дана информация не по самой последней версии движка InstantCMS.

Достоинства и недостатки InstantCMS2

Из минусов — количество модулей, дополнений, тем для данного движка достаточно ограничено. Качество технической поддержки немного хромает. Живого активного сообщества вокруг данного движка нет, а регистрация на форуме вообще только по приглашению. Но все эти минусы с лихвой перекрывает факт бесплатности движка InstantCMS 2.

Из плюсов — из коробки предоставляется сразу: форум, профили пользователей с возможность добавления в друзья, статьи, блоги, новости, группы, фотоальбомы, статичные страницы сайта. А также комментарии, ленты RSS, поля RSS, возможность настраивать главное меню, нормальная модерация и вполне удобная админка.

Скачать движок InstantCMS 2 с функцией авто-установки можно с официального сайта проекта.
Процесс установки хорошо документирован и интуитивно понятен.

Свой компонент для InstantCMS2

Перейдем непосредственно к вопросу написания отдельного компонента.

Для создания нового компонента создайте папку, в которой будет ваш компонент (назовем его newcomponent), в директории \SiteDirectory\system\controllers\, т.е полный адрес к созданной директории будет \SiteDirectory\system\controllers\newcomponent\ — все буквы в названии компонента должны быть строчными, это важно!

Далее в этой папке создаем файл frontend.php — это главный файл, без которого компонент не будет работать.

В этом файле создаем класс с таким же названием. Название класса совпадает с названием папки. И этот класс наследуется от системного класса cmsFrontend.
В этом классе мы имеем возможность добавлять методы, описывающие действия компонента.
Что такое действия компонента? Давайте взглянем на следующее изображение:

Каждый адрес страницы состоит из нескольких сегментов:

  1. /controller — Название компонента.

  2. /action — Название действия. Каждый компонент может иметь несколько действий внутри себя.

  3. /p1/p2/p3/… — Любое количество параметров, необходимых для этого действия.

Как определяется действие компонента? Определяется публичный метод в классе компонента, который называется actionНазваниеДействияСБольшойБуквы. Для главной страницы компонента siteaddress.ru/newcomponent/ необходимо определить метод actionIndex(). Для внутренней страницы компонента siteaddress.ru/newcomponent/act/ необходимо определить метод actionAct().

Файл frontend.php

<?php

class newcomponent extends cmsFrontend {

public function actionIndex() {

$template = cmsTemplate::getInstance();

$template->render('index');

}

public function actionAct() {

$errors = false;

$form = $this->getForm('newForm');

$is_submitted = $this->request->has('submit');

$newForm = $form->parse($this->request, $is_submitted);

if ($is_submitted){
$errors = $form->validate($this, $newForm);

if (!errors) {
$choropleth = $this->model->getChoropleth($newForm);
}

if (!errors) {
cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
}
}

$template = cmsTemplate::getInstance();

$template->render('act', array(
'form' => $form,
'errors' => $errors,
'newForm' => $newForm
));

}

}

?>

Внимательный читатель заметил использование метода $this->model->getChoropleth().
Для использования методов модели в директории \SiteDirectory\system\controllers\newcomponent\ создаем файл model.php
Однако читать данные мы будем из файлов, поэтому поставим здесь заглушку. Описание файла модели приведено с целью обучения.

Файл model.php

<?php

class modelNewComponent extends cmsModel {

public function getChoropleth($average_zarplata) {

$choropleth = array();

return $choropleth;

}

}

?>

Строка $template->render('index'); определяет вывод настоящего шаблона, который должен быть создан в директории \SiteDirectory\templates\default\controllers\newcomponent\. Где \default — название используемой темы на сайте (можно найти и скачать новую тему с сайта сообщества instantcms и изменить используемую тему через админку), папку \newcomponent необходимо будет создать самостоятельно, это папка для шаблонов нового компонента.
В этой папке должен быть создан файл index.tpl.php для главной страницы компонента, и act.tpl.php — для внутренней.

Файл index.tpl.php

<?php

$this->setPageTitle('Заголовок страницы в названии окна браузера');
$this->addBreadcrumb('Название страницы в цепи хлебных крошек');

$this->addToolButton(array(
'class' => 'item',
'title' => 'Название кнопки в меню действий для перехода на внутреннюю страницу компонента',
'href' => $this->href_to('act')
));

?>

<h1>Главный заголовок страницы</h1>
<p>Содержание страницы</p>

Внутренняя страница компонента будет содержать форму выбора параметров.
Для начала создадим папку \forms\ в папке нашего компонента \SiteDirectory\system\controllers\newcomponent\.
В директории \SiteDirectory\system\controllers\newcomponent\forms\ создаем файл form_newForm.php
Форма будет очень простой, она предлагает пользователю выбрать два параметра из выпадающих списков.

Файл form_newForm.php

<?php

class formNewcomponentnewform extends cmsForm {

public function init() {

return array(

array(
'type' => 'fieldset',
'childs' => array (
new fieldList('par1', array(
'title' => 'Параметр1',
'items' => array (
"ТекстовыйИдентификатор1" => "ТекстовыйПараметр1",
"ТекстовыйИдентификатор2" => "ТекстовыйПараметр2"

)
)),
new fieldList('par2', array(
'title' => 'Параметр2',
'items' => array (
1 => "1",
2 => "2"

)
))

)

)

);

}

}

?>

Интерактивная SVG картограмма

После этого перейдем к созданию шаблона для внутренней страницы компонента /act — создаем файл act.tpl.php и размещаем его в директории \SiteDirectory\templates\default\controllers\newcomponent\.
Для создания уникального сервиса воспользуемся разработкой пользователя KoGor (пользуясь случаем, хочу передать огромную благодарность за проведенный KoGor 'ом труд и хорошо оформленную и интуитивно понятную статью) — инфограммой карты Российской Федерации с распределением по регионам.

В результате, у нас должна получится примерно такая приятная карта России:

Файл act.tpl.php

<?php

$this->setPageTitle('Заголовок страницы в названии окна браузера');
$this->addBreadcrumb('Название главной страницы компонента в цепи хлебных крошек', $this->href_to(''));
$this->addBreadcrumb('Название страницы в цепи хлебных крошек');

$arr_par1_id = array('ТекстовыйИдентификатор1' => 1 ,
'ТекстовыйИдентификатор2' => 2
);


$filename='/upload/zarplata-'.$arr_par1_id[$_GET['par1']].'-'.$_GET['par2'].'.csv';
if (!isset ($_GET['par1']) || !isset ($_GET['par2'])) $filename='/upload/zarplata-1-1.csv';

$this->renderForm($form, $newForm, array(
'action' => '',
'method' => 'get',
'toolbar' => false
), $errors);
?>

<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript" src="http://d3js.org/queue.v1.min.js"></script>
<script type="text/javascript" src="http://d3js.org/topojson.v0.min.js"></script>
<!-- <script type="text/javascript" src="http://d3js.org/topojson.v1.min.js"></script> -->

<style>

path {
stroke:white;
stroke-width: 1px;
}

body {
font-family: Arial, sans-serif;
}

.city {
font: 10px sans-serif;
font-weight: bold;
}

.legend {
font-size: 12px;
}

div.tooltip {
position: absolute;
text-align: center;
width: 150px;
height: 25px;
padding: 2px;
font-size: 10px;
background: #FFFFE0;
border: 1px;
border-radius: 8px;
pointer-events: none;
}
</style>

<script type="text/javascript">
var width = 720,
height = 375;

// Setting color domains(intervals of values) for our map

var color_domain = [10000, 15000, 20000, 30000, 50000]
var ext_color_domain = [0, 10000, 15000, 20000, 30000, 50000]
var legend_labels = ["до 10000 руб.", "10000-15000 руб.", "15000-20000 руб.", "20000-30000 руб.", "30000-50000 руб.", "от 50000 руб."]
var color = d3.scale.threshold()
.domain(color_domain)
.range(["#ff1300", "#ff4e40", "#ff7d73", "#ffba00", "#ffcb40", "#adfcad"]);

var div = d3.select("form").append("div")
.attr("class", "tooltip")
.style("opacity", 0);

var svg = d3.select("form").append("svg")
.attr("width", width)
.attr("height", height)
.style("margin", "10px auto");

var projection = d3.geo.albers()
.rotate([-105, 0])
.center([-10, 65])
.parallels([52, 64])
.scale(500)
.translate([width / 2, height / 2]);

var path = d3.geo.path().projection(projection);

//Reading map file and data

queue()
.defer(d3.json, "/upload/russia.json")
.defer(d3.csv, "<?php echo $filename; ?>")
.await(ready);

//Start of Choropleth drawing

function ready(error, map, data) {
var rateById = {};
var nameById = {};

data.forEach(function(d) {
rateById[d.RegionCode] = +d.AverageZarplata;
nameById[d.RegionCode] = d.RegionName;
});

//Drawing Choropleth

svg.append("g")
.attr("class", "region")
.selectAll("path")
.data(topojson.object(map, map.objects.russia).geometries)
//.data(topojson.feature(map, map.objects.russia).features) <-- in case topojson.v1.js
.enter().append("path")
.attr("d", path)
.style("fill", function(d) {
return color(rateById[d.properties.region]);
})
.style("opacity", 0.8)

//Adding mouseevents
.on("mouseover", function(d) {
d3.select(this).transition().duration(300).style("opacity", 1);
div.transition().duration(300)
.style("opacity", 1)
div.text(nameById[d.properties.region] + " : " + rateById[d.properties.region])
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY -30) + "px");
})
.on("mouseout", function() {
d3.select(this)
.transition().duration(300)
.style("opacity", 0.8);
div.transition().duration(300)
.style("opacity", 0);
})

// Adding cities on the map

d3.tsv("/upload/cities.tsv", function(error, data) {
var city = svg.selectAll("g.city")
.data(data)
.enter()
.append("g")
.attr("class", "city")
.attr("transform", function(d) { return "translate(" + projection([d.lon, d.lat]) + ")"; });

city.append("circle")
.attr("r", 3)
.style("fill", "lime")
.style("opacity", 0.75);

city.append("text")
.attr("x", 5)
.text(function(d) { return d.City; });
});

}; // <-- End of Choropleth drawing

//Adding legend for our Choropleth

var legend = svg.selectAll("g.legend")
.data(ext_color_domain)
.enter().append("g")
.attr("class", "legend");

var ls_w = 20, ls_h = 20;

legend.append("rect")
.attr("x", 20)
.attr("y", function(d, i){ return height - (i*ls_h) - 2*ls_h;})
.attr("width", ls_w)
.attr("height", ls_h)
.style("fill", function(d, i) { return color(d); })
.style("opacity", 0.8);

legend.append("text")
.attr("x", 50)
.attr("y", function(d, i){ return height - (i*ls_h) - ls_h - 4;})
.text(function(d, i){ return legend_labels[i]; });

</script>

Исходные данные для картограммы

Для того, чтобы карта заработала, остался последний шаг. Размещаем файлы cities.tsv, russia.json, zarplata-1-1.csv, zarplata-1-2.csv, zarplata-2-1.csv, zarplata-2-2.csv (приведены в архиве, ссылка на который есть в конце статьи) в директории \SiteDirectory\upload\.

Заходим по адресу siteaddress.ru/newcomponent/act/ — здесь все регионы на карте России подкрашены темно-серым цветом и при наведении появляется название региона — NaN. Для отображения каких-нибудь реальных данных замените значения в последнем столбце .csv файлов на численные данные.

Демо компонента

Подобный модуль разработан мною для сайта ЗарплатаБюджетников.РФ в разделе Карта зарплат. Демо модуля можно посмотреть по ссылке. (сейчас данных нет, модуль отключен, а чтобы собрать карту, нужны регистрации с указанием зарплат и регионов от пользователей)

Бонус

Напоследок, небольшой хинт. В дефолтном шаблоне по умолчанию в InstantCMS 2 боковая колонка вместе с меню действий пропадает при уменьшении ширины окна браузера. Но на мобильных девайсах исчезновение боковой колонки и меню действий очень не удобно, т.к. у пользователей пропадает довольно таки много возможных действий. Для изменения этой ситуации можно проделать следующее. Найдите в директории \templates\default\css\ файл theme-layout.css, и замените в нем кусочек кода

/* Media Queries ============================================================ */

@Media screen and (max-width: 980px) {
#body section { width:100% !important; }
#body aside { display:none; }
}

@Media screen and (max-width: 800px) {
#body section { width:100% !important; }
#body aside { display:none; }

на

/* Media Queries ============================================================ */

@media screen and (max-width: 980px) {
#body section { width:100% !important; }
#body aside { width:100% !important; }
}

@media screen and (max-width: 800px) {
#body section { width:100% !important; }
#body aside { width:100% !important; }

Т.е. по факту необходимо исправить всего 2 строчки #body aside { display:none; } на #body aside { width:100% !important; } — после этого боковая колонка при уменьшении ширины браузера будет съезжать в основную колонку после находящегося в нем контента (перед футером).

Исходный код

Все описанные скрипты и файлы можно скачать в архиве, который нужно будет просто загрузить и распаковать в корневую директорию вашего сайта, работающего на InstantCMS2.

Показать полностью 3
[моё] PHP Веб-разработка Зарплата Бюджетники Маленькая зарплата Habr Длиннопост
6
Аноним
Аноним

Продолжение поста «Во мне делать неxyй»⁠⁠1

1 год назад

@nazarpunk, пофиксил

Продолжение поста «Во мне делать неxyй»
Ступни Тату PHP Фотография Мат Длиннопост Ответ на пост
1
Аноним
Аноним

Во мне делать неxyй⁠⁠1

1 год назад
Во мне делать неxyй
Показать полностью 1
Ступни Тату PHP Фотография Мат Длиннопост
13
Вопрос из ленты «Эксперты»
user9674718
user9674718

Вопрос владельцам Telegram каналов - Идея подписчики бесплатно⁠⁠

1 год назад

Предыстория идеи
Где году в 2008 - 2010 у меня с товарищем балы студия веб разработки, и мы очень успешно бесплатно продвигали сайты на первые страницы выдачи!
Наш рецепт был просто скрипт назвался кажется Linker
Суть скрипта была в том что на главной странице сайта появлялись ссылки партнеров
И ваша ссылка появлялась у партнеров ну конечно ротация по категориям итп

Это сильно поднимало индекс цитирования и сайт улетал вверх.

Конечно сейчас это не работает.

Сейчас я веду несколько телеграм каналов покупаю рекламу но выходит не очень, дорого

в лучшем случае 1 подписка 10 рублей

Суть моей идеи бот для обмена рекламой с тематическими каналами

Зарегистрировался добавил бота к с себе в канал он постит твою рекламу другим и тебе их рекламу.

Конечно каналы будут подбираться по количеству живых подписчиков.

Можно будет выбрать конкретные каналы или заблокировать конкретные каналы все через бота

Если вам такое интересно отпишите в наукометрии или поставьте + и я начну писать его уже сегодня !

Показать полностью
Вопрос Спроси Пикабу PHP Сайт Telegram Telegram бот Telegram каналы Программа Текст
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии