Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Источники значений & в интернет-магазине "

Автор diii3Раздел Шаблоны XSLT

Ответов: 2
Просмотров: 2884
Последний ответ 10 Ноября 2012, 22:04:18
от diii3
Проблема с модулем "Обратная связь-->Шабло&

Автор don_basilioРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 3036
Последний ответ 14 Ноября 2011, 20:13:47
от don_basilio
Реализация калькулятора на UMI

Автор muralexРаздел Разработка модулей

Ответов: 6
Просмотров: 6480
Последний ответ 25 Апреля 2013, 07:06:20
от admin
Реализация фильтра

Автор SumrakrndРаздел Шаблоны XSLT

Ответов: 28
Просмотров: 4923
Последний ответ 06 Марта 2016, 19:23:50
от aghigay
Warning: DOMDocument::load(): Entity 'settings-page-id' not def "

Автор BabajkaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2741
Последний ответ 31 Августа 2012, 09:22:05
от Babajka

0 Пользователей и 1 Гость просматривают эту тему.

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Если admin не возражает, завел тему не имеющую прямого отношения к umi, но думаю многим пригодится.
У кого будут какие мысли? Хочу без привлечения сторонних плагинов, какой-то самодельный. К плагинам нужно ставить консоли и т.д.
Хочется небольшой, чтобы только отправлял на почту адрес странички, где ошибка, ну можно еще выделенный текст.
сразу возникло несколько вопросов:
Как из Js передать выделенный текст и адрес страницы
Куда передавать: в шаблоны (зачем?) или в php, который сразу отправит письмо. Как обезопасить все это дело от спама
« Последнее редактирование: 02 Мая 2012, 13:24:38 от KTI »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
говоря о том, что хотелось бы создать свой плагин, рассматривали ли вы orphus?

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Накалякал сам, вот что получилось:
1. в страничку (у меня object-view) вставляем кнопку (оформляем ее стилями)

<div id="error">
  <a href="javascript:error_on_page()" class="red_button">
<span class="caption">Сообщить об ошибке в описании</span>
  </a>
</div>
2. сам js код:
function error_on_page(){
var text = $.trim(get_selection()).substring(0,500);
if (text == '') {alert('Выделите некорректный текст мышкой');return;}
if(confirm('Хотите сообщить об ошибке: '+(text!=''?('\n\nНекорректный текст:\n\n"'+text+'"\n'):''))) {
$.ajax({
type: 'POST',
url: '/mail.php',
data: {message:text, page : location.href},
success: function(data){
if( data == 'success') {
alert("Спасибо!");
// как-то сообщаем, что все ок
} else {
alert("Спасибо!");
// не все ок, но все равно спасибо
}
},
error:function(){
alert("Спасибо!");
// тоже не все ок
}
});
}
};

function get_selection() {
if (window.getSelection) {
return window.getSelection();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
3. файл mail.php (кинул в корень сайта, не опасно?)
<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$message =  substr(htmlspecialchars(trim($_POST['message'])), 0, 500);
$page =  substr(htmlspecialchars(trim($_POST['page'])), 0, 500);
$headers = "Content-type: text/plain; charset=UTF-8\r\n";
$to1 = 'email_before'; // email до собаки
$to2 = 'email_after'; // email после собаки
$from = 'SITE';
if (!empty($message)) {
$sendMessage = 
'страница: '.$page.'
текст: '.$message.'

IP : '.$_SERVER[REMOTE_ADDR];

mail($to1.'@'.$to2, $message, $sendMessage, $headers);
echo('success');
} else {
echo('empty');
}
exit;
}
//не ajax запрос
echo 'not_ajax';
?>

Вроде работает, меня в принципе устраивает (функционал)
Жду критики, по поводу безопасности. Какие подводные камни могут быть