#!/usr/bin/php $utime and `creator` != '$uname'"; $r = mysql_query($sql); if ($r) { if (!mysql_num_rows($r)) { info("Новых заметок пока нет. Ждёмс!"); return true; } info("Есть новые заметки!!! Вот они: "); while ($note = mysql_fetch_array($r)) { cwrite($note['id'] . ". ", mc(CL_CIAN)); cwrite($note['creator'] . ": ", mc(CL_BLUE)); cwriteln($note['text'] . " (".get_time_date($note['cr_time']).")", mc(CL_GREEN)); } } else return false; } function make_readed($note_id = "*") { if ($note_id == "*" || $note_id == "") { info("Все новые заметки помечены, как прочитанные. Ждём новых прикольных штук )"); update_user_time(); return true; } } function get_note_creator($note_id) { $note_id = (int)$note_id; connect_to_db(); $n = mysql_fetch_array(mysql_query("SELECT * FROM `notes` WHERE `id` = $note_id")); return $n['creator']; } function note_exists($note_id) { connect_to_db(); $note_id = (int)$note_id; $r = mysql_query("SELECT * FROM `notes` WHERE `id` = $note_id"); if ($r) { return mysql_num_rows($r); } else return false; } function rm_note($note_id) { $note_id = (int)$note_id; if ($note_id == 0) { error("Не указан индекс заметки, которую нужно удалить."); return false; } if (!note_exists($note_id)) { error("Заметки с индексом $note_id не существует, поэтому она не может быть удалена."); return false; } if (get_note_creator($note_id) == get_user_name()) { if (mysql_query("DELETE FROM `notes` WHERE `id` = $note_id")) { info("Заметка с индексом $note_id успешно удалена!"); return true; } else { error("Ошибка при удалении заметки: " . mysql_error()); return false; } } else { error("Вы не являетесь создателем этой заметки, поэтому не можете её удалить..."); return false; } } function view_user_info($user_name = "") { if ($user_name == "") $user_name = get_user_name(); info("Пользователь $user_name в последний разпроверял заметки вот когда: " . get_time_date(get_user_last_login($user_name))); } function parse_command($command_line) { $p = explode(" ", $command_line); $p_count = count($p) - 1; //количество параметров $p_all = ""; //все параметры for ($i=1; $i<=$p_count; $i++) { $p_all .= $p[$i] . " "; } $p_all = trim($p_all); $cmd = $p[0]; //первой идёт команда. ок. // switch (strtolower($cmd)) { case "echo": writeln($p_all); break; case "exit": case ".": { cwriteln("Bye-bye! ;)", mc(CL_RED)); writeln(); exit; break; } case "get_user_name": writeln("You user-name is: " . get_user_name()); break; case "get_user_time": @view_user_info($p[1]); break; case "whoami": writeln(get_user_name()); break; case "help": case "?": print_help(); break; case "test_db": test_db(); break; case "add": { @add_note($p_all, get_user_name(), false); break; } case "list": { list_notes(); break; } case "check": case "check_new": case "check_new_notes": { check_new_notes(); break; } case "mc": case "done": case "uncheck": case "readed": { //mc = make readed @make_readed($p[1]); break; } case "del": case "remove": case "rm": { @rm_note($p[1]); break; } default: error("Неизвестная команда..."); break; } } function print_help() { cwriteln("Mini-manual for mini-svn :)", mc(CL_WHITE)); // cwrite(" get_user_name", mc(CL_YELLOW)); cwriteln(" -- получить имя текущего пользователя.", mc(CL_GREEN)); // cwrite(" test_db", mc(CL_YELLOW)); cwriteln(" -- проверить коннект с MySQL сервером и базой.", mc(CL_GREEN)); // cwrite(" add <текст заметки>", mc(CL_YELLOW)); cwriteln(" -- добавить новую заметку. Текст заметки можно писать без кавычек. Но спец. символы оболочки нужно экранировать, если передаётся в качестве параметра.", mc(CL_GREEN)); // cwrite(" list", mc(CL_YELLOW)); cwriteln(" -- просмотр ВСЕХ заметок.", mc(CL_GREEN)); // cwrite(" check", mc(CL_YELLOW)); cwriteln(" -- проверить наличие новых заметок, которые ЭТОТ пользователь ещё не прочёл.", mc(CL_GREEN)); // cwrite(" del, rm ", mc(CL_YELLOW)); cwriteln(" -- удалить заметку по её индексу. Удалится, если пользователь является её создателем.", mc(CL_GREEN)); // cwrite(" done, mc, uncheck, readed", mc(CL_YELLOW)); cwriteln(" -- любая из этих команд помечает заметки для текущего пользователя, как прочитанные.", mc(CL_GREEN)); } function enter_in_interactive_mode() { while (true) { cwrite("Input command: ", mc(CL_YELLOW)); $input_str = creadln(mc(CL_GREEN)); parse_command($input_str); } } function parse_args() { global $argc, $argv; if ($argc == 1) enter_in_interactive_mode(); if ($argc > 1) { $command_line = ""; for ($i = 2; $i<=$argc; $i++) { $command_line .= $argv[$i-1] . " "; } parse_command(trim($command_line)); } } /* begin :) */ parse_args(); ?>