[Другое] Цитатник от jon4god (lsass.exe)

Напоминаю заодно, что при большом количестве народа и большом объеме базы, цитатник ощутимо грузит сервер. Так что если добавляете какие-то фишки, старайтесь по минимуму нагружать скриптами и запросами =)
И все еще актуально добавление картинок наподобие башкомикса.
 
И все еще актуально добавление картинок наподобие башкомикса.
Я просто бб-кодами прилепил... типо фото цитаты.
Обычным str_replace + ну и чтоб не париться с размерами прикручен zoom при наведении ...
PHP:
// img
preg_match_all('/\[img]([^[]*)\[\/img]/i', $cont, $match);
if(count($match[0]) > 0){
  foreach($match[1] as $val)
  $cont = str_replace('[img]'.$val.'[/img]', "<img src=\"$val\" border=\"0\" class=\"img\" />", $cont);
  $i++;
}

Напоминаю заодно, что при большом количестве народа и большом объеме базы, цитатник ощутимо грузит сервер. Так что если добавляете какие-то фишки, старайтесь по минимуму нагружать скриптами и запросами =)
Это естественно!
 
при большом количестве народа и большом объеме базы
а тут если поподробнее ... какое кол-во цитат на сайте (объем БД) и какую посещаемость вы считаете приличной, что можно ждать перегруз? если иметь ввиду обычный стандартный платный хостинг.
 
Я просто бб-кодами прилепил... типо фото цитаты. Обычным str_replace + ну и чтоб не париться с размерами прикручен zoom при наведении ...
О-о, а можно поподробнее, где и в какой файл изменения вносить и куда чего добавлять?

а тут если поподробнее
В базе около 5к цитат + сколько-то комментариев. Обычный хостинг выдержал 1.5к уников, при 2к начинал подтормаживать. В пиковые дни анонсов при 7-10к шла 403 ошибка. Могло быть и меньше, если там активно голосовали. Тот хостинг, где я сейчас при выше 5к входит в режим антидоса, и выдерживает до 20к уников в день =) Но скрипииит =)
В общем, конечно, для раскрученного проекта нужен будет свой сервак полюбому.
 
Поживем, увидим ... у меня 1600 цитат, 1500 уников, хостинг хиленький я бы сказал, но нагрузкой пока даже и не пахнет ...
 
О-о, а можно поподробнее, где и в какой файл изменения вносить и куда чего добавлять?
zavu,
Только у меня своя версия цитатника, а не версия от jon4god.

Я прикрутил ява скриптом форму добавления бб-кодов к форме добавления цитат:
Вот например javascript (обратите внимание на main_form.content это id input формы)



Сами бб-коды вставляются так:
<img src='/img/bbc/bold.png' width='16' onClick='".'bbcode("bb", "b")'."' alt='Полужирный' class='img'>
<img src='/img/bbc/italic.png' width='16' onClick='".'bbcode("bb", "i")'."' alt='Курсив' class='img'>
............... итд!

Ну и замена собственно вывода бб-кодов при выводе цитат: (у меня выводит контент переменная $cont - у вас не знаю :))


Ну и по желанию точим под себя...
У меня выглядит так
mEfdoqHc.png


P.S for NWS users by Revenge-R! :)
 
  • Нравится
Реакции: zavu
Родилась тут мысль. Незнаю правда насколько она хороша. Суть в следующем:
Создать "плагин" иль скрипт подобный кнопкам соц сетей вконтакте и одноглазников всяких.
- Чел вставляет код на страничку. Появляется кнопочка "Поделиться в цетатник", жамкает ее и текст (иль выделенный текст) переносится на страничку добавления цитаты - остается ввести защитный код и цитатка опубликована. Думаю насколько это сложно будет осуществить .... и как лучше ... ?

Хотелось бы услышать ваши доводы, господа ...
 
kreator, аааа как типо шаринг(share)?
Ну это в принципе я знаю как это реализовать.
Думаю насколько это сложно будет осуществить .... и как лучше ... ?
Ну брать как и фейсбук передавать цитируемый текст в url (главное обезопасить этот текст).

В принципе это тоже самое что отправить цитату через обычную форму добавления, только с понимание $_GET через url. т.е заполнение форм через GET. Это в принципе не сложно... НО нафиг это нужно?
И + мне будет сделать сложнее... у меня автор и название вынесено в отдельные поля... откуда их брать? (хотя в принципе можно заполнять автоматом - типо "Share Quote" или типа того :))

Типо пример - (желательно лепить с htmlspecialchars)
<?php
if(isset($_GET['status'])){
$status = $_GET['status'];
}else $status='';
?>
<input type="submit" class="loginbtn" value="Share" tabindex="4" style="margin-top: 10px; width: 100px;"/>
<input type="hidden" value="<?= $status ?>" name="status">

Примет с share?status=Блаблабла

В качестве капчи я бы взял reCAPTCHA
 
kreator, ну вот примерное исполнение... дальше делать нехочу...
в отдельный файл share.php
Принимает запросы вида share.php?status=текст! - после ввода рекапчи пишет в базу (рекапчу лей с гугла и кидай в inc/recaptcha/ )
Код:
<?php
if(isset($_GET['status'])){
$status = htmlspecialchars($_GET['status']);
}else $status='';
 
if(!isset($_POST['submit']))
{
echo "<div align=\"center\"><h3>Share Quotes</h3><table><tr><td><form action='' method=post name='main_form'>";
echo "
<input type=\"hidden\" value=\"$status\" name=\"content\" id=\"content\">Цитата: $status
</td><td><strong>Для добавления введите код с картинки:</strong>";
 
require_once('inc/recaptcha/recaptchalib.php');
$publickey = "публичный ключ рекапчи";
echo recaptcha_get_html($publickey);
 
echo "<br><br>
<input type=submit name='submit' value='Share'></form></td></tr></table></div>";
 
}
else
{
if(!empty($_POST['content']) and !empty($_POST["recaptcha_response_field"]))
{
 
if ($_POST["recaptcha_response_field"]) {
require_once('inc/recaptcha/recaptchalib.php');
$privatekey = "приватный ключ рекапчи";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
$_POST['content'] = htmlspecialchars($_POST['content']);
$date = date("20y-m-d H:i");
if (mysql_num_rows(mysql_query("SELECT * FROM `quotes` WHERE `content` = '$_POST[content]' LIMIT 1"))) { echo "<div class='message error'>В БД найдена идентичная запись</div>"; } else {
  $query = mysql_query("INSERT INTO `quotes` VALUES('','','$date','0','$_POST[content]','unchecked')");
if($query) { echo "<div class='message'>Цитата успешно добавлена и появится в цитатнике, после проверки администрацией.</div>"; } }
}
else { echo "<div class='message'>Неверный код проверки.</div>";
}
 
}
} else echo "<div class='message error'>Заполнены не все поля.</div>";
 
}
?>

ЭТО ПРИМЕРНЫЙ ВАРИАНТ реализации! Никого не заставляю им пользоваться! За корявость написания не отвечаю! :lol:
 
Ну собственно почти тоже самое я уже себе написал, правда со стандартной местной капчей.
Сложнее сделать так, чтобы при нажатии на кнопку "Зацытатить" находящейся на странице стороннего сайта, например, отправлялся не весь контент (что легче сделать с многими известными CMS) а именно выделенный текст.
----------------------------
И еще думаю не мешало бы добавить, чтоб GETтекст обрезало, и вставляло только первые "n" символов.
 
Назад
Сверху