Некоторое время назад я провел эксперимент по созданию скрипта, который бы позволял размещать задачки, и комментировать их. Скрипт работает, и вполне меня устраивает. Однако, проанализировав список усовершенствований, которые нужно было бы внедрить в этот скрипт, я пришел к выводу, что пилю опилки. Например, нужно сделать оповещения, сделать антиспамовские заглушки, сделать простым привлечение сторонних размещателей задачек.
Подумалось, что лучше использовать уже готовые скрипты (блоговый или форумский). Мысль, вроде кажется, очевидная, но не совсем. Для начала, видимо нужно было получить шваброй по голове, и попробовать запрограммировать что либо свое…
Можно, конечно, заказать нужный скрипт у стороннего исполнителя. Но, тут есть серьезная заковырка - я просто не могу сформулировать требования к скрипту, и уверен на 100% что после того, как скрипт будет готов, нужно будет его дополнять и переделывать.
В качестве очередного эксперимента, решил разобраться с блоговым скриптом MAXSITE. Оказывается, у этого движка очень простая внутренняя стуктура, и для автоматического добавления новой страницы можно обойтись одним SQL запросом.
В ниже приведенном примере показыавется как добавлять страницу в блог на основе maxsite:
$act="addpage";
//$act="addcoment";
include_once("config_maxsite.php");
if ($act == "addpage"){
$title='test title';
$body='test body';
$page_date_publish=date('Y-m-d H:i:s');
$page_slug='zz1'; // транслитное наименование страницы
$req= "INSERT INTO `max_voo_page` (`page_type_id`,`page_id_parent`,`page_id_autor`,`page_title`,`page_content`,`page_date_publish`,`page_status`,`page_slug`) VALUES ('1',0,'1','$title','$body','$page_date_publish','publish','$page_slug');";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW max_voo_page " . mysql_error()); return;}
$page_id = mysql_insert_id();
echo "<hr>Была вставлена страница N <b>$page_id</b>";
// добавить категорию
$req= "INSERT INTO `max_voo_cat2obj` (`page_id`,`category_id`) VALUES ('$page_id',6);";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW max_voo_cat2obj " . mysql_error()); return;}
$iLastID_max_voo_cat2obj = mysql_insert_id();
echo "<hr>Была вставлена max_voo_cat2obj N <b>$iLastID_max_voo_cat2obj</b>";
}
if ($act == "addcoment"){
echo"попытка добавить новый коментарий";
$comments_page_id =8;
$comments_users_id =1;
$comments_date =date('Y-m-d H:i:s');
$comments_content ='comments_content';
$comments_approved=1;
$req= "INSERT INTO `max_voo_comments` (`comments_page_id`,`comments_users_id`,`comments_date`,`comments_content`,`comments_approved`) VALUES ('$comments_page_id','$comments_users_id','$comments_date','$comments_content','$comments_approved');";
$result_select = mysql_query($req);
if (!$result_select) { die("<p>Invalid INSERT NEW $bd_name " . mysql_error()); return;}
$iLastID = mysql_insert_id();
echo "<hr>Был добавлен коментарий N <b>$iLastID</b>";
}
Но, оказывается, есть еще более элегантное решение:
К чему такие сложности? См. functions-edit.php. Пример использования например в remote.php.
Ну и на последок, отвечу на вопрос зачем мне все это? А для очень простых целей: я хочу отработать технологию, которая бы позволяла создавать сообщества с пол-оборота.