Написание плагина для WordPress

Цена договорная • безналичный расчёт, электронные деньги
09 декабря 2016, 14:21 • 6 откликов • 57 просмотров
Требуется написать плагин для WordPress
(Заявки собираю до вечера 13 декабря)

В качестве ответа хотелось бы услышать цену, срок реализации, и предыдущие работы (если есть).

Плагин должен выполнять следующие задачи:

  • Принимать данные из программ на PC и записывать их в БД. Данные будут передаются в url. (наверное принимать данные может и отдельный php скрипт)
  • Отображать данные в таблицах на сайте и в админке WP
  • Управление настройками плагина из админки
  • Отправлять/принимать данные из таблицы по запросу сторонних программ

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

В конце текста некоторые нюансы которые остались неразрешенными.


Прием данных из программы Программы на PC в моем случае – это торговые роботы для финансовых рынков. Будут передавать данные в плагин по ссылке

вида http://site.ru/script?code="код"¶m1=”параметр”&…..

Скрипт или плагин должен брать параметры из ссылки и записывать их в БД.

В БД следующие столбцы:

Следующие поля БД заполняет сама

  • номер – номер записи в базе по порядку,
  • Время регистрации – Дата и время внесения записи в базу данных
  • Последнее время – дата, время обновления записи. При добавление новой записи Последнее время такое же как Время регистрации.
  • IP – c какого IP были отправлены данные
Пустые поля которые я буду использовать для личных целей.
  • Скрывать – галочка Да/Нет – если Да, то данная запись не будет попадать в общую таблицу на сайте и по ней не будет считаться статистика
  • Комментарий – Строка 256 символов (комментарии которые буду использовать для личных целей) По умолчанию поле пустое
  • Управление – галочка Да/нет (по умолчанию галочка отсутствует)
  • Настройка – строка 64 символа (параметр который будет отправляться в ответ, если Управление ==true) По умолчанию поле пустое
  • Текст – Строка 1024 символов (для различных объявлений) Поле пустое
  • Номер файла - уникальные номер файла (хеш) Строка 64 символа. Генерится при создание файла. Уникальная для каждой программы. Содержит ФИО, и номера счетов на который может работать программа.
Передаются в параметрах следующие поля
  • Номер программы – уникальный номер программы (хеш), который генерится при её запуске на PC с учетом символа на котором работает. Строка 64 символа. По этому полю можно проверять наличие записи в БД.
  • Программа – название программы из которой отправлен запрос (строка 32 символа)
  • Версия – версия программы. (Тип double)
  • Брокер – строка 64 символа
  • Сервер – строка 64 символа
  • Номер – Номер счета Строка 24 символа
  • Демо – тип счета, варианты Да/Нет
  • ФИО – Строка 128 символов
  • Символ – Название финансового инструмента Строка 24 символа
  • Результат – тип double до 100 млн
  • Информация – Строка 256 символов (текст о том что за программа и какие нюансы именно в этой сборке)
  • Параметры – строка 32 символа


Программы будут отправлять запросы в плагин с периодичностью раз в 1-3 минуты.

Информация в следующих полях должна обновляться при новом запросе:

  • Последнее время
  • IP
  • Версия
  • Результат
  • Информация
  • Параметры

После запроса, в ответ плагин выдает строку об удачной записи и номер записи. Например так: {“ok”,”431”} (Но возможен и другой формат вывода)

Если поле «Текст» заполнено, то оно добавляется в ответ.
Например так: {“ok”,”431”,”Содержание из поля Текст”}
Или если что-то не получилось то {“Error”} Должно быть место, где можно посмотреть причину ошибки.



Особенности

  • Если в поле “Параметры”, передается фраза MYIP, то IP берется из параметра. (например в ссылке MYIP=1.1.1.1 , в БД заносятся значение из параметра)
  • Если стоит галочка “Управление”, то скрипт отправляет ответ вида {“ok”,”431”,”текст из поля настройка”} или {“ok”,”431”, “Содержание из поля Текст”, ”текст из поля настройка”}


Еще одна БД для учета IP с которых был запуск

Еще одна база данных, которая ведет учет с каких IP и когда были запущены программы:

Поля: Номер файла, Программа, ФИО, IP дата последнего запуска.

Если IP поменялся, то в эту БД вносится запись.

В админке WP должна быть таблица или какой-то способ просмотреть данные из этой таблице.





Отображение данных на странице сайта
Необходимо несколько таблиц.

  • С содержанием всей базы
  • Со статистикой по данным из всей базы


Содержание всей базы

На страницу или в запись сайта WP помещается код вида [tables_advisors_full_info]


На странице выводится таблица с данными из БД.

Выводятся все записи.

При загрузке страницы по умолчанию сортировка записей по полю «Последнее время». Самые свежие записи вверху страницы.

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

Важно, чтоб таблица была визуально приятной. Была возможность сортировки по столбцам. И было автоматическое обновление содержания без перезагрузки таблицы.

В заголовке таблицы несколько способов фильтрации содержания

  • По полю «Программа»
    • Варианты:
      • Все(по умолчанию)
      • название программ из БД.
  • Количество записей на странице (если записей больше чем указано, то они просто не отображаются)
    • Варианты:
      • 20(по умолчанию)
      • 50
      • 100
      • Все
  • Показывать данные за период (период идет по Последнем времени)
    • Весь период (по умолчанию)
    • Последний день,
    • Неделю
    • Месяц
    • 3 месяца
  • Убирать дубликаты
    • Один счет
  • Показывать Демо счета
    • Все счета
    • Только Демо
    • Только Real


Если новая запись попадает в БД, то она сразу отражается в таблице вверху.

Если запись обновляется, то новые данные обновляются в строке с записью, но вверх не перепрыгивают.

Строка с добавленной или обновленной записью подсвечивается. (мигает зелененьким, потом плавно угасает)



Особенности

  • Если в настройках админки стоит галочка напротив показа –«Время регистрации», то в таблицу выводится время прошедшее с момента регистрации. (например: 1 месяц и 3 дня)
  • Если стоит галочка напротив «Последнее время» - то выводится разница от текущего времени (например 6 минут назад)
  • Если включено отображение IP, то было бы здорово, если вместо цифр писался бы регион или город которому принадлежит данный адрес.




Таблица со статистикой из БД

[tables_advisors_stat] Выводит статистику: сколько записей по каждой программе

В таблице колонки:

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

Программа – данные берутся из БД

Количество пользователей – Суммируется количество записей по полю каждой программе

Запусков за последние 10 дней - в учет берутся записи по которым было обновление за последние 10 дней.

Прибыль – так же суммируется по полю Прибыль, считается только по записям в которых Демо=False

Прибыль за 10 дней – Аналог пункта выше, только за последние 10 дней, только по записям в которых Демо=False

Обновление данных в этой таблице допускается 1 раз в день.

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


Настройки в админке
  • Вывод всей базы данный. (было бы здорово быстро скрыть колонки которые не нужны). Экспорт базу в CSV
  • Возможность редактировать значения БД, а так же удалить запись
  • Возможность группового удаления (вроде – проставить галочки, а потом нажать кнопку удалить)
  • Возможность задавать названия столбцов который отражаются над колонками на сайте
  • Возможность устанавливать отображение столбцов на странице сайта
  • Возможность задавать значения по умолчанию в полях которые я использую и которые не передаются парамтером
  • Кнопка удаления старых записей: Поле «Удалить записи старше дней», указываю количество дней, нажимаю кнопку «Запрос», мне выдается список записей и кнопка – «Подтвердить удаление»
  • Вывод в таблице программ которые есть в БД (поиск в поле «Программа»). Рядом с программами стоят галочки – Отображать. (Если галочку снять, то данные программы не будут отображаться в базе на странице сайта и по ним так же не будет считаться статистика)
  • Желательно создание слепков базы данных. Раз в день в csv файл вида – archive2016-12-05.csv (НЕ знаю нужно это или нет)
  • Отображение таблицы с IP с которых был запуск программы. Возможность сохранить базу в CSV и очистить.


Отправлять/принимать данные из таблицы по запросу сторонних программ Мои программы должны иметь возможность чтения/записи информации в базе данных по запросу. Запрос передается в ссылке, в ответ программа получает данные. Запросы:
  • Запрос на количество записей в БД. В ответ – количество записей.
  • Запрос номеров всех записей которые есть в БД. В ответ передаются номера через точку с запятой. (Нужно что-то придумать, если записей очень много. Как вариант, грузить записи по 100 штук. А в запросе указывать номер сотни. Например ?getnote=0, присылаются записи с 1 по 99.
  • Запрос по конкретному номеру в базе данные. В ответ передается информация со всеми полями через точку с запятой
  • Запрос по номеру программы?
  • Запись в базу данных информации переданной по ссылке. Обязательным будет параметр – номер записи. В Запросе могут быть переданы все столбцы которые есть в БД. В базу записываются ровно те данные, которые были переданы. Если какие-то параметры не указаны в ссылке, то они остаются неизменные. (последнее время не обновляется)
?getnote=1, присылаются записи с 100 по 199. Стоит иметь ввиду что номера записи могут идти не подряд.(например, если некоторые записи были удалены) Какой еще вариант возможен при запросе большого числа записей?) В ответ на выполнение – сообщение что запись успешна.

Результат

В качестве результата хотелось бы получить файл (или файлы) которые я просто скопирую на сервер или загружу в WP и они сразу станут работать.

Т.з написанное выше можно поменять. Возможно вы предложите более оптимальное решение некоторых вопросов.

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

Сроки: максимально быстро

Цена: договорная детали можем обсудить в скайпе





Не решенным остался вопрос с защитой.

Если параметры передаются по ссылке, то легко написать программу, которая быстро заполнит базу данных левыми данными.

Нужен какой-то способ авторизации.

К сожалению мои программы умеют только переходить по ссылке.





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

(т.е. из строки вида num=”werwe”&programm=”progr name”&version”1.0” cделать что то вроде param=”SFDGD234dsGSDFGSDGsdfgsdfgsdfg”)

По ссылке описано как это может делать моя программа (https://docs.mql4.com/ru/constants/namedconstan...)

Например: метод шифрования AES с ключем 256 бит. Не знаю, совместим ли данный метод с PHP. Если да, то в админке я бы мог бы задавать ключ шифрования, которым будут кодироваться/декодироваться все данные.

И в зашифрованном видео можно передавать заранее заданные ключи авторизации.


Файлы