Я не так много сделал ни с Disqus, ни с IntenseDebate, но знаю, как бы я подошел к созданию такого виджета.Фактическая отображающая часть виджета будет сгенерирована с помощью JavaScript.Итак, скажем, у вас есть тег div с идентификатором commerce_store
.Ваш код JavaScript будет выполнять поиск документа, когда он будет впервые загружен (или когда запрос ajax изменяет страницу), и обнаружит, существует ли commerce_store
div.Найдя такой контейнер, он автоматически сгенерирует весь необходимый HTML.Если вы еще не знаете, как это сделать, вы можете Google «динамически добавлять элементы в JavaScript».Я рекомендую сделать собственную библиотеку JavaScript для вашего виджета.Это не должно быть чем-то слишком сумасшедшим.Примерно так:
window.onload = init(){
widget.load();
}
var widget = function(){
this.load = function(){
//search for the commerce_store div
//get some data from the sql database
var dat = ajax('actions/getData.php',{type:'get',params:{page:123}});
//display HTML for data
for (var i in dat){
this.addDatNode(dat[i]);
}
}
this.addDatNode = function(stuff){
//make a node
var n = document.createElement('div');
//style the node, and add content
n.innerHTML = stuff;
document.getElementById('commerce_store').appendNode(n);
}
}
Конечно, вам понадобится настроить некоторый тип AJAX-фреймворка для получения информации о базе данных и других вещей.Но это не должно быть слишком сложно.
Для Disqus и IntenseDebate я считаю, что формы комментариев и все это всего лишь HTML (сгенерированный с помощью JavaScript).Фактическая часть «плагина» скрипта представляет собой фоновую среду ASP, PHP, SQL и т. Д. Простейшим способом сделать это, вероятно, будет просто некоторый код PHP и SQL.SQL будет использоваться для хранения всех комментариев или информации о продажах в базе данных, а PHP будет использоваться для манипулирования данными.Примерно так:
function addSale(){ //MySQL code here };
function deleteSale(){ //MySQL code here };
function editSale(){ //MySQL code here };
//...
И ваш большой PHP-файл будет содержать все действия, которые ваш виджет когда-либо должен будет выполнять (в отношении изменения базы данных. Но даже с этим большим PHP-файлом вы 'Вам все равно потребуется вызов отдельных функций в вашей инфраструктуре ajax. Посмотрите на запрос actions/getData.php
примера платформы JavaScript. Действия - это папка с набором файлов PHP, по одному для каждого метода. Например, addSale.php:
include("../db_connect.php");
db_connect();
//make sure the user is logged in
include("../authenticate.php");
authenticate();
//Get any data that AJAX sent to us
var dat = $_GET['sale_num'];
//Run the method
include("../PHP_methods.php");
addSale(dat);
Причина, по которой вам нужны отдельные файлы для PHP_methods и исполняемых файлов, заключается в том, что у вас может быть несколько файлов PHP_methods. У вас может быть три API метода, один для отображения контента, одиндля запроса контента и один для изменения контента. Как только вы начинаете многократно использовать ваши методы, лучше всего, чтобы они были все в одном месте. Переписаны один раз, переписаны везде.
Так что, на самом деле, это все, что вы "Мне нужен виджет. Конечно, вы хотели бы иметь скрипт установки, который устанавливает Cбаза данных ommerce и все.Но фактическим виджетом будет просто папка с вышеупомянутыми файлами сценариев:
- install.php : получает настроенную базу данных
- библиотека JavaScript: для загрузки содержимого и форм HTML и выполнения запросов ajax
- CSS-файл : для оформления содержимого и форм HTML
- db_connect : универсальный php-скрипт, используемый для подключения к базе данных
- authenticate : php-скрипт для проверки входа пользователя в систему;это может варьироваться в зависимости от того, используете ли вы свою собственную пользовательскую систему или используете гравитары / facebook / twitter / и т. д.
- PHP_methods : большой php-файл со всеми используемыми вами методами манипулирования базой данных.
- папка действий : набор отдельных файлов php, которые вызывают необходимые методы PHP;вызовите каждый из этих файлов php с помощью AJAX
Теоретически, все, что вам нужно сделать, это скопировать эту папку на любой веб-сайт и запустить install.php, чтобы настроить его.На любой странице, на которой вы хотите запускать виджет, вы просто включаете файл .js, и он будет выполнять всю работу.
Конечно, я просто настроил бы его.Я предполагаю, что изменения в языках программирования или специфика настройки будут отличаться.Но основная идея похожа на большинство плагинов для сайтов.
О, и еще одна вещь.Если вы намеревались продать виджет, было бы крайне сложно попытаться защитить все эти сценарии от перераспределения.Лучше всего иметь файлы PHP на вашем собственном сервере.У клиента должен быть свой собственный db_connect.php, который подключается к своей собственной базе данных и всем остальным.Но фактические запросы ajax должны ссылаться на файлы на вашем удаленном сервере.Запрос должен отправить URL-адрес действительного db_connect, с каким-то типом пароля или чем-то еще.На самом деле, если подумать, я не думаю, что это возможно сделать общий доступ к файлам на сервере.Тебе придется исследовать это немного больше, потому что я точно не знаю, как ты это сделаешь.