Обучение/Помощь новичкам | Кнопка ответить php or jquery
Всем привет мастера. У меня пару вопросов. Хочу сделать кнопку ответить но не очень понимаю как сделать так чтобы в форму(в textarea) добавлялся ник пользователя, или там ник в ббкоде(как тут цитаты к примеру) Бб - коды есть на сайте. Мысли в голову не лезут пока. Без понятия как сделать. Подскажите пожалуйста, или лучше на jquery. Там вроде без перезагрузки страницы можно сделать. если кто знает хорошую статью, подкиньте)
Sheyx ,
if(isset($_GET['to'])){
$opponent = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '".num($_GET['to'])."' LIMIT 1"));
echo "<form method='post' action='?text&to=".$opponent['id']."'>";
echo "<input type='text' name='text' value = '$opponent[login], '>";
}
if($myID != $ank['id'])echo "<a href='?to=$ank[id]'>[Отв]</a>";
Если не поймёшь что это и как это катай в лс
if(isset($_GET['to'])){
$opponent = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '".num($_GET['to'])."' LIMIT 1"));
echo "<form method='post' action='?text&to=".$opponent['id']."'>";
echo "<input type='text' name='text' value = '$opponent[login], '>";
}
if($myID != $ank['id'])echo "<a href='?to=$ank[id]'>[Отв]</a>";
Если не поймёшь что это и как это катай в лс
DELETED
5 апреля 2018, в 19:01
Delete
В настройках плагина я выбрал в пункте Выравнивание тулбара: по CSS-настройкам, а для кнопок «Ответить» и «Цитировать» задал стиль CSS:
.comment-toolbar {
font-size:12px;
padding-bottom:5px;
padding-right:10px;
text-align:right;
margin:0px;
}
Теперь пару строк о валидности кода плагина.
Чтобы избежать ошибок валидации нужно в файле cf_comment_toolbar.php в папке установленного плагина найти строчку
$new_content = "<span id="co_".$ID."">".$content."</span>";
и заменить ее на
$new_content = "<div id="co_".$ID."">".$content."</div>";
Т.е. простая замена тега span на div решает проблему. Очень жаль, что разработчики плагинов не заботятся о валидации, в итоге все приходится допиливать вручную.
Добавление кнопки «ответить» без использования плагина, благодаря которому исключается появление дублей replytocom из-за древовидных комментариев.
В файл functions.php необходимо добавить код:
add_filter('comment_text', 'Replys');
function Replys($comment_text) {
if (!is_feed()) {
if (comments_open() && have_comments() && get_comment_type() == 'comment') {
if(get_option('page_comments'))
$comment_ID = esc_url(get_comment_link());
else
$comment_ID = '#comment-' . get_comment_ID();
$comment_author = esc_html(get_comment_author());
$yarr = '<p class="replys"><a href="#comment" onclick='Replys("' . $comment_ID . '", "' . $comment_author . '")' >Ответить</a></p>';
return $comment_text . $yarr;}
else { return $comment_text;}}
else { return $comment_text;}}
Затем создайте файл скрипта, например, назовите его reply.js и вставьте в него следующее содержимое:
function Replys(commentID, author) {
var inReplyTo = ''+author+', ';
var myField;
if (document.getElementById('comment') && document.getElementById('comment').type == 'textarea') {myField = document.getElementById('comment');}
else {return false;}
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = inReplyTo;
myField.focus();}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var cursorPos = endPos;
myField.value = myField.value.substring(0, startPos) + inReplyTo + myField.value.substring(endPos, myField.value.length);
cursorPos += inReplyTo.length;
myField.focus();
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;}
else {myField.value += inReplyTo; myField.focus();}
}
После чего подключите его в заголовке либо в подвале сайта. Дело за малым — настроить внешний вид кнопки с помощью CSS для класса replys. Это может быть полноценная кнопка с фоном и границами или в виде обычной ссылки, как у меня:
.replys {
font-size:12px;
text-align:right;
margin:5px 15px 5px 5px;
}
При нажатии на кнопку страница прокрутится к форме ответа на комментарий, а в текстовое поле textarea добавится имя пользователя к которому обращаетесь. После имени я сделал добавление запятой и пробела, что соответствует правилам пунктуации в русском языке при обращении.
________
посл. ред. 05.04.2018 в 19:05; всего 1 раз(а); by nefakt
DELETED
5 апреля 2018, в 19:19
Delete