Bukvus — отправки текста на почту по Ctrl+Enter
На простах интернета, наткнулся на Bukvus совершенно случайно, подумал что это Orphus, оказалось нет.
По мимо самого JS скрипта, который не сложный т.к. написано с помощью jQuery, есть еще и php, код которого представляю ниже.
Как это чудо перевести в modx формат? Думаю что хранить php файлик и спамить в него запросы не самая лучшая идея, когда есть CMS.
До кучи и код js файлика, для тех, кому не хочется качать архив.
Странно, что нет аналогичного дополнения под modx… хотя может быть и есть, не натыкался.
По мимо самого JS скрипта, который не сложный т.к. написано с помощью jQuery, есть еще и php, код которого представляю ниже.
<?php // jQuery.Bukvus: Nazar Tokar, 2013 //
$to = "your@mail.ru"; // укажите здесь свою почту
function gF($s){
$s = substr((htmlspecialchars($_GET[$s])), 0, 350);
if (strlen($s) > 1) {
return $s;
}
}
$t = array( (gf("txt")), (gf("err")), (gf("url")));
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Bukvus 1.1.0 <noreply@".($_SERVER["HTTP_HOST"]).">\r\n";
$title = "Найдена ошибка";
$mess = $t[0];
if ($t[1]) {
$mess .= "<hr>Комментарий: ".$t[1];
}
$mess .= "<hr>".$t[2];
mail($to, $title, $mess, $headers);
if ($t[0]) {
$t[1] = "ok";
$t[2] = "Спасибо, данные об ошибке отправлены";
}
?>{
"result": "<? echo $t[1]; ?>",
"message": "<? echo $t[2]; ?>"
}
Как это чудо перевести в modx формат? Думаю что хранить php файлик и спамить в него запросы не самая лучшая идея, когда есть CMS.
До кучи и код js файлика, для тех, кому не хочется качать архив.
/**
* jQuery.Bukvus: Nazar Tokar, 2013
**/
(function bukvus(){
jQuery('<div>', {id: 'bukvus'}).prependTo('html');
function gs() { // get selection
var t = "";
if (window.getSelection) {
t = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
t = document.selection.createRange().text;
}
return t;
}
function sm(m){ // show message
jQuery("#bukvus").hide();
jQuery("#bukvus").html(m);
jQuery("#bukvus").show();
setTimeout(function() {
jQuery("#bukvus").hide();
}, 3000);
}
function se(t){ // send error
if (t.length < 4) {
sm("Вы не выбрали текст");
} else if(t.length > 350) {
sm("Слишком много текста, выберите меньше");
} else {
var err = prompt("В чём ошибка?");
jQuery.getJSON("/bukvus/index.php", {
contentType: "text/html; charset=utf-8",
err: err,
url: location.href,
txt: t
}).done(function(data) {
if (data.result == "ok") {
sm(data.message);
} else {
sm(data.error);
}
}).fail(function(){
sm("Ошибка в настройках");
});
}
}
jQuery(document).keydown(function(e){
if (e.keyCode == 13 && e.ctrlKey) { // отправка
if (jQuery('#bukvus').is(':visible')) {
jQuery("#bukvus").hide();
jQuery("#bukvus").html('');
}
se(gs());
}
});
})();
Странно, что нет аналогичного дополнения под modx… хотя может быть и есть, не натыкался.
Комментарии: 2
Есть повод изучить, как оформляются пакеты, тем более, что информация доступна.
Это да, я планирую, но OrphoMan уже вышел =)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.