Коппа — система орфо сообщений

Программисты, программы и программирование.

Коппа — система орфо сообщений

NetWork»

При разработке портала для одного Online издания, была поставлена задача, написания системы, которая даст возможность посетителям сообщать о найденных орфографических ошибках редактору.
Коппа — система орфо сообщений_Untitled-1.jpg
Коппа — система орфо сообщений, (17.03 KiB) Просмотров: 15

первоисточник: http://network.com.kz/javascript/53-koppa.html

Так как в проекте уже использовался jQuery, решено было воспользоваться функциями этого JS фреймворка и решать поставленную задачу с его помощью. Собственно задача решена и небольшой скриптик, который был написан за пару часов, отправляется в свободное плаванье.

Для работы нам нужно:
  1. jQuery оттуда, http://jquery.com/
  2. Коппа отсюда, http://network.com.kz/show/js/koppa/koppa.js
  3. Пишем простенький PHP скрипт для отправки сообщения на эл. почту (скрипт ложим в корень сайта)

    Код: Выделить всё
    <?
    /**
    * Коппа — система орфо сообщений
    *
    * @автор        Хрищатый Максим
    * @копирайты    Copyright (c) 2005-2008, Laboratory Khrishhatogo.
    * @веб-сайт     http://www.laborant.kz
    * @сборка       1.0.1
    */

    #подключаем MySQL
    $link = @mysql_connect("localhost", "имя пользователя", "пароль")
        or die ("Соединение с сервером MySQL не установлено!");

    @mysql_select_db("имя базы",$link)
        or die("Необходимая база данных отсутствует на сервере MySQL!");

    @mysql_query ("SET NAMES cp1251");

    #из грязи в князи
    function windows1251_decode_iconv($str) {
        $str = iconv("utf-8", "windows-1251", $str);

        return $str;
    }

    #обозначение переменных
    if (isset($_SERVER['REMOTE_ADDR'])) $ip = $_SERVER['REMOTE_ADDR'];
    else $ip = "";

    if (isset($_GET['text'])) $text = $_GET['text'];
    else $text = "";

    #обычный 2007-12-21
    $d = date("Y-m-d");
    #обычный час формат [1..24]
    $g = date("G");

    $ok = 0;

    #ЗАПРОС /-> статистика
    $sql = @mysql_query("SELECT u
                         FROM koppa
                         WHERE date = '$d'
                         AND hour = '$g'
                         AND ip = '$ip'");

    if (@mysql_num_rows($sql) == 0) {

            #ЗАПРОС /-> вносим информацию в статистику
            $sql = @mysql_query("INSERT INTO koppa (u,date,hour,ip)
                                 VALUES (
                                 '1','$d','$g','$ip'
                                 )");

              $ok = 1;
    }
    else {
        $malyava = @mysql_fetch_assoc($sql);

        if ($malyava['u'] >= 3) {
            echo "Ваш IP заблокирован за СПАМ!";
        }
        elseif ($malyava['u'] < 3 && $malyava['u'] >= 1) {

            #ЗАПРОС /-> обновляем статистику
            $sql = @mysql_query("UPDATE koppa
                                 SET u = u+1
                                 WHERE date = '$d'
                                 AND hour = '$g'
                                 AND ip = '$ip'");

            $ok = 1;
        }

        @mysql_free_result($sql);
    }

    if ($ok == 1) {
           
        //отправляем собщение
        $to = "ЭЛ. ПОЧТА ВЕБ-МАСТЕРА";
        $subject = "Коппа орфо ошибка";
        $message = windows1251_decode_iconv($text);
        $headers  = "MIME-Version: 1.0" . "\r\n" .
        "Content-type: text/html; charset=windows-1251" . "\r\n" .
        "From: ". $to . "\r\n" .
        "Reply-To: " . $to . "\r\n" .
        "X-Mailer: PHP/" . phpversion();

        mail($to, $subject, $message, $headers);

        echo "Ваше сообщение получено";
    }

    #ЗАПРОС /-> закрываем соединение
    @mysql_close($link);
    ?>

  4. Структура базы MySQL

    Код: Выделить всё
    CREATE TABLE IF NOT EXISTS `koppa` (
      `u` tinyint(1) NOT NULL default '0',
      `date` date NOT NULL default '0000-00-00',
      `hour` tinyint(2) NOT NULL default '0',
      `ip` varchar(16) NOT NULL,
      PRIMARY KEY  (`date`,`hour`,`ip`),
      KEY `u_views` (`u`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

  5. Подключаем

    Код: Выделить всё
    <!-- jQuery -->
    <script src="jquery.js" type="text/javascript"></script>
    <!-- Коппа -->
    <script src="koppa.js" type="text/javascript"></script>

  6. Информируем посетителей

    Не забудьте поместить кнопочку, которая будет информировать посетителей о том, что они могут помочь редакторам при выявлении ошибки на сайте.
    Коппа — система орфо сообщений_Untitled-4.gif
    Коппа — система орфо сообщений
    (1.13 KiB) Просмотров: 97

    А теперь внимание! Когда будите размещать кнопочку не забудьте присвоить тегу img специальный id="koppa"
  7. Заходим на сайт, выделяем текст, нажимаем Shift+Q
Если руки прямые — работать будет
искусство ≠ товар

NetWork
Частый гость
 
Сообщения: 79
С нами с:

Administrator»

Спасибо за информацию!

  1. Есть ли пример реализации системы?
  2. В чем отличия от популярного Орфографа?
Спасибо.
Инициативы COMPORT по развитию Интернет и КазНета:
Каталог веб-ресурсов, Каталог профессионалов Интернет, Профессиональная премия КазНета.

- пишите, мы ответим и поможем
Administrator
Администратор
 
Сообщения: 8077
С нами с:
Откуда: Алматы, Казахстан
Пол: парень

Re:

NetWork»

Administrator писал(а):Спасибо за информацию!

  1. Есть ли пример реализации системы?
  2. В чем отличия от популярного Орфографа?
Спасибо.


1. Пример реализации скоро выйдет в сеть.
2. Что за Орфограф?

Основные отличия этой системы — это кроссбраузерность и независимая от сторонних ресурсов, работа системы.

P.S. Возможно, этой наработкой будет удобно пользоваться тем, кто уже использует в своих проектах jQuery
искусство ≠ товар

NetWork
Частый гость
 
Сообщения: 79
С нами с:

Administrator»

NetWork писал(а):2. Что за Орфограф?

Извините, более правильно "Орфус", http://orphus.ru/

Спасибо.
Инициативы COMPORT по развитию Интернет и КазНета:
Каталог веб-ресурсов, Каталог профессионалов Интернет, Профессиональная премия КазНета.

- пишите, мы ответим и поможем
Administrator
Администратор
 
Сообщения: 8077
С нами с:
Откуда: Алматы, Казахстан
Пол: парень

NetWork»

Administrator писал(а):Извините, более правильно "Орфус", http://orphus.ru/

Про проект знаем, но даже на сайт http://orphus.ru/ не заходили и саму систему не использовали в проектах.
Именно поэтому мне трудно сравнивать проект Коппа и Орфус.
искусство ≠ товар

NetWork
Частый гость
 
Сообщения: 79
С нами с:

Administrator»

Кстати, а почему Коппа? От греческой "каппы"?

NetWork писал(а):мне трудно сравнивать проект Коппа и Орфус

Но разве Вы не планируете сделать из данного продукта популярный сервис или распространенный продукт? Для этого необходимо знать конкурентов. Т.к. все потенциальные пользователи Вашего скрипта будут сравнивать Вас с Орфусом.

Спасибо.
Инициативы COMPORT по развитию Интернет и КазНета:
Каталог веб-ресурсов, Каталог профессионалов Интернет, Профессиональная премия КазНета.

- пишите, мы ответим и поможем
Administrator
Администратор
 
Сообщения: 8077
С нами с:
Откуда: Алматы, Казахстан
Пол: парень

NetWork»

Administrator писал(а):Но разве Вы не планируете сделать из данного продукта популярный сервис или распространенный продукт? Для этого необходимо знать конкурентов. Т.к. все потенциальные пользователи Вашего скрипта будут сравнивать Вас с Орфусом.

Пусть сравнивают, я ведь не могу запретить им.

Если серьёзно, то мне неважно популярен сервис или нет. В команде мы относимся к нашим проектам как к детям.

Когда муж и жена ждут рождения ребенка, они начинают думать о том, в какую школу будет ходить их ребёнок, кем он будет работать, когда вырастет и будет ли их он успешен в жизни. Но вот ребёнок родился, он идёт в первый класс и вроде всё идёт нормально, но вот он получает двойки в школе, прогуливает уроки в институте, работает за мизерные деньги, курить и злоупотребляет алкоголем. У родителей горе, но ведь они не перестали любить своёго ребёнка. Для них он также дорог как 30 лет назад.
искусство ≠ товар

NetWork
Частый гость
 
Сообщения: 79
С нами с:

Administrator»

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

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

Спасибо.
Инициативы COMPORT по развитию Интернет и КазНета:
Каталог веб-ресурсов, Каталог профессионалов Интернет, Профессиональная премия КазНета.

- пишите, мы ответим и поможем
Administrator
Администратор
 
Сообщения: 8077
С нами с:
Откуда: Алматы, Казахстан
Пол: парень


Вернуться в Программирование — Programming

Кто сейчас на конференции

Сейчас этот форум просматривают: Alexa [Bot] и гости: 0