ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList

Страниц (13): В начало « ... 5 6 7 8 [9] 10 11 12 13 »

> Найдено сообщений: 186
Flat Отправлено: 26 сентября 2018 — 09:15 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
Я грешу на 2мода, мод Группы, и мод Расширенные почтовые функции, вот они могли создать проблему с отправкой писем из под гостя.

Бегло просмотрел. Там долго надо разбираться. Плохо то, что все эти моды жёстко прописываются в системе, и в результате получается совсем другой движок.. Одним словом отсутствует определённый стандарт, и у всех разные движки. Моды часто меняют само ядро форума, а это плохо..
Flat Отправлено: 26 сентября 2018 — 08:38 • Тема: Размышлизмы о движке • Форум: О жизни

Ответов: 64
Просмотров: 33343
NordWest пишет:
Если я правильно понял вашу идею, то вы разбиваете шаблон на блоки, которые загружаете в память в виде текстового массива. Затем движок имеет возможность манипулировать этими блоками как пожелает программист.

Всё верно.
NordWest пишет:
И ещё... представьте, что вы написали функцию, которая из предложенного вами массива формирует код и всё успешно работает. Потом вам понадобилось внести изменения в середине шаблона и нумерация строк (а следовательно и индексация массива) у вас изменится. Что в этом случае произойдет. Нужно будет полностью переиндексировать функцию вывода причем малейшая ошибка будет приводить к тому, что дизайн будет просто рассыпаться.

Я и сам уже думал об этом..
Первоначальный вариант, который я затем переделал на предложенный, был похож на темплейты из форумного движка SMF. Там они реализованы в виде php-шных функций. Вот пример первоначального(первого) варианта:
CODE:
function exbb_showLogoStrip()
{
global $Config, $ContentBuf, $Skin;
$ContentBuf.='<table width="100%" id="logostrip" cellspacing="0" cellpadding="0"><tr><td><a href="index.php" title="'.$Config[1].'"><img src="./templates/'.$Skin.'/im/logo.gif" alt="'.$Config[1].'" width="207" height="52" border="0" /></a></td><td valign="bottom" align="right"><a href="index.php" style="margin-right:20px;color:#ffffff">'.$Config[1].'</a></td></tr></table>';
}

Так как вставить что-либо в такой шаблон затруднительно, то я пришёл к вышеозвученному решению в виде функции:
CODE:
function exbb_showLogoStrip()
{
global $TemplatesPath, $Config, $ContentBuf, $Skin;
$tpl=file($TemplatesPath.$Skin.'/logostrip.html');
$ContentBuf.=$tpl[0].$Config[1].$tpl[1].$Skin.$tpl[2].$Config[1].$tpl[3].$Config[1].$tpl[4];
}

и отдельного файла шаблона, который можно скачать, изменить, и уже изменённый загрузить обратно в файл.
Вроде бы всё в порядке? Однако меня терзают такие же сомнения, которые терзают и вас.. Действительно, эти оба файла жёстко связаны с друг другом, и любой их разрыв кажется неправильным.. Но менять шаблоны ведь надо? Недавний случай с кнопкой показал это..
Единственный вариант в этом случае менять всю функцию первого варианта на другую через config файлы, при этом старая функция работать перестанет, а вывод пойдёт через новую. А старая пусть валяется в коде, может когда-нибудь пригодится если откатить новый мод назад.. Так что вы абсолютно правы, - менять-то придётся оба файла, а это ой как неудобно! Так что идей-ка то сыровата..
Flat Отправлено: 25 сентября 2018 — 09:14 • Тема: Размышлизмы о движке • Форум: О жизни

Ответов: 64
Просмотров: 33343
Для тех кому интересно прочитайте статью "Моё разочарование в софте" на хабре:здесь
Проблема в том, что фреймворки с каждым днём становятся всё сложней, глючней, и медленней. Причину я вижу именно в концепции опп, которая на аппаратном уровне задействует механизмы раздувающие код до ужасающих размеров, хотя программисту это и не видно, поэтому всё как бы нормально(для программиста). А для потребителя наступает полный ужас. Вы хотите жить в этом ужасе? Я лично - нет. Вам может лично не нужен движок на 100% свободный от ооп, потому что вам кажется что ооп лично вам что-то такое предоставит.. Но предоставить оно может только тормоза и ещё раз тормоза, и в итоге ваш скрипт просто отключат от сервера на котором он крутится по исчерпании лимита времени его работы.. Зато это может понадобится другим, которым важна простота, стабильность в работе и скорость, а этого ой как недостаёт в современном мире. Пускай таких как я одиночек считают ретроградами, но я уверен - за нами будущее, ибо весь этот софт напичканный непонятно чем, временным, вскоре исчезнет потому-что идёт тупиковым путём, а вещи сделанные с прицелом на будущее, "не модные" останутся.
Flat Отправлено: 25 сентября 2018 — 08:26 • Тема: Размышлизмы о движке • Форум: О жизни

Ответов: 64
Просмотров: 33343
1Bot пишет:
Что только люди не придумают, лишь бы MVC не использовать.

Концепция "модель-вид-контролёр" это чистая оопная концепция, а меня от ооп воротит: слишком много передумано по этому поводу. Поверьте: Гради Буча я читал, и много чего ещё. ООП это мода. Она пройдёт. И кстати уже проходит, так как многие уже поняли его недостатки. Увы, новый двиг будет без ооп, но с нечто более важным чего нет в других.. Keep it simple, stupid. - это так называемый kees-принцип, как можно более проще, но не более того.
Что касается темплейтов, то я ещё в поиске, хотя сильно соблазняет предложенный вариант, из-за возможности изменений сторонними функциями, и похоже, что это преимущество перевесит все сомнения.
Flat Отправлено: 24 сентября 2018 — 09:58 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
Даже если всё заработает как надо, мне то от этого легче не станет, от этого работать именно на моём движке не будет.

А у вас какая версия форума стоит?
Flat Отправлено: 24 сентября 2018 — 09:32 • Тема: Размышлизмы о движке • Форум: О жизни

Ответов: 64
Просмотров: 33343
Parapsixolog пишет:
я не совсем уловил, как это будет реализоваться на практике

А вот так и будет, как я написал. Более того я часть такого уже реализовал в функциях вывода шапки форума, логоменю и меню пользователя. Работа над новым ядром идёт полным ходом, и мне всё настолько нравится и я настолько понял как всё должно быть, что особых задержек быть не должно, так как концепция ясна. Причём меню выводится через config файлы, поэтому через админку можно менять взаимное расположение пунктов меню, удалять, изменять, добавлять новые пункты.. Более того, ввёл языковую поддержку, как в этом движке, однако опять по другому.. Теперь пользователь может выбирать любой установленный язык интерфейса форума, а админ может из админки запрещать выбор пользователю или разрешать его. Да, пришлось пойти на усложнение кода из-за темплейтов и языков, но сегодня без этого никуда. Делать так делать.
NordWest пишет:
Там не каша - там чистый HTML с вкраплениями PHP.

А вот эти-то вкрапления и губят всю малину. Попробуйте изменить функцию без изменения темплейта если там будут затронуты общие переменные. Если отделить мух от котлет, то это станет возможным.
NordWest пишет:
При желании код PHP легко убирается из шаблонов в код движка без всяких нововведений, а потому считаю данную проблему надуманной.

Ну, без плясок с бубном не получится. Самая главная проблема в том, что файлы шаблонов невозможно модифицировать сторонними функциями, например функциями из плагина. Сейчас это невозможно. Приведу пример. Вот мы тут с Parapsixolog , разбирали одну задачу. Нужно было вставить фиксированную кнопку в page_tail.php. Нужно было вставить в него блок <div>. Сейчас это пришлось вставлять руками и лезть в сырой код. И ладно, что Parapsixolog , имеет опыт подобного, и не боится туда лезть, а представим менее опытного человека?. Если бы код и данные были разделены, то я бы написал функцию, которая сама бы изменила этот шаблон, а юзеру достаточно было бы скачать плагин. Поэтому имеет смысл это осуществить.
Flat Отправлено: 23 сентября 2018 — 08:16 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
такой вот строки нет:

Есть такая строка в том варианте файла mailform.tpl, который я приводил выше, а не в"чистом" файле движка. Вот в том моём варианте эта строка есть. Её находим и меняем. Я предупреждал:
Flat пишет:
Меняем всё что там находится на мой вариант, который я приводил выше.

просто вы уже меняли в повторно изменённом файле вот и вышла неувязочка.
Так, чтобы больше не было разночтений приведу уже изменённый вариант этого файла:
CODE:
<?php
echo <<<DATA
<br>
<div id="navstrip" align="left">
<img src="./templates/InvisionExBB/im/nav.gif" border="0" alt="&gt;" />&nbsp;<a href="index.php">{$fm->exbb['boardname']}</a>&nbsp;&raquo;&nbsp;{$fm->LANG['MailByBoard']}
</div>
<br>
<form method="post" action="tools.php">
<input type="hidden" name="action" value="mail">
<input type="hidden" name="dosend" value="yes">
<input type="hidden" name="admin" value="1">
<input type="hidden" name="member" value="{$user_id}">
<table cellspacing="1" cellpadding="4" border="0" align="center" class="tableborder" width="70%">
<tr>
<td class="maintitle" colspan="2"><img src="./templates/InvisionExBB/im/nav_m.gif" border="0" alt="&gt;" width="8" height="8" />&nbsp;{$fm->LANG['SendMailTo']} {$user['name']}</td>
</tr>
<tr>
<td class="pformleft" align="right"><b>{$fm->LANG['Topic']}</b></td>
<td class="pformright"><input type="text" name="subject" size="45" maxlength="100" tabindex="2" value="" /></td>
</tr>
<tr>
<td class="pformleft" align="right" valign="top"><b>{$fm->LANG['EmailMessage']}</b></td>
<td class="pformright"><textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3"></textarea></td>
</tr>
DATA;
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0 && isset($fm->input['admin']))
{
echo <<<DATA
<tr>
<td class="pformleft"><b>{$fm->LANG['CaptchaCode']}</b><br /><span class="desc">{$fm->LANG['CaptchaBroken']}</span></td>
<td class="pformright"><img src="regimage.php" border="0" alt="captcha"></td>
</tr>
<tr>
<td class="pformleft"><b>{$fm->LANG['CaptchaСonfirm']}</b><br /><span class="desc">{$fm->LANG['CaptchaNote']}</span></td>
<td class="pformright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}
echo <<<DATA
<tr>
<td class="darkrow2" align="center" colspan="2"><input type="submit" value="{$fm->LANG['Send']}" name="submit" /></td>
</tr>
</table>
</form>
DATA;
?>

Также приведу полностью код функции отправки сообщений из tools.php:
CODE:
function mailtouser() {
global $fm;

if ($fm->exbb['emailfunctions'] !== TRUE) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['MailFunctionClosed']);
}

if ($fm->user['id'] === 0 && !isset($fm->input['admin'])) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['GuestMail']);
}

$users = $fm->_Read(FM_USERS);
if (($user_id = $fm->_Intval('member')) === 0 || !isset($users[$user_id])) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['CorrectPost']);
}
unset($users);

$user = $fm->_Getmember($user_id);
if ($fm->_Boolean($fm->input, 'dosend') === TRUE) {
if (!defined('IS_ADMIN')) {
if (isset($_SESSION['lastposttime']) && ($_SESSION['lastposttime'] + $fm->exbb['flood_limit']) > $fm->_Nowtime) {
$fm->_Message($fm->LANG['MainMsg'],sprintf($fm->LANG['FloodLimitNew'],$fm->exbb['flood_limit']));
}
$_SESSION['lastposttime'] = $fm->_Nowtime;
}

if ($fm->_String('subject') === '' || $fm->_String('message') === '') {
$fm->_Message($fm->LANG['MailByBoard'],$fm->LANG['NoEmptyFields']);
}

$fm->input['subject'] = $fm->bads_filter(substr($fm->input['subject'],0,255));
$fm->input['message'] = $fm->bads_filter($fm->input['message']);

if (isset($fm->input['admin']) && $fm->user['id'] === 0 && $fm->exbb['anti_bot'] && ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']))
{
$fm->_Message($fm->LANG['Registration'],$fm->LANG['CaptchaError']);
}
unset($_SESSION['captcha']);

$email = sprintf($fm->LANG['EmailByBordText'],
$user['name'],
$fm->user['name'],
$fm->exbb['boardname'],
$fm->exbb['boardurl']).$fm->input['message'];
$fm->_Mail($fm->exbb['boardname'],
(!empty($fm->user['mail']))?$fm->user['mail']:'',$user['mail'],$fm->input['subject'],$email);
$fm->_Message($fm->LANG['MailByBoard'],$fm->LANG['SendMailOk'],'index.php');
} else {
$fm->_Title = ' :: '.$fm->LANG['MailByBoard'];
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/mailform.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');
}
}

Parapsixolog пишет:
Сейчас я включил, форма появилась (без каптчи)

Интересненько.. У меня каптча появляется и всё работает. Никаких предупреждений нет. Посмотрите-ка есть ли у вас файл regimage.php?
Всё ли вы сделали по инструкции? Ещё раз проверьте все шаги.
Может тот ваш мод вносит какие-то новые зависимости? Попробуйте поставить чистый exbb fm 1.0 rc1 и ввести изменения предложенные мной, должно всё работать.
Flat Отправлено: 22 сентября 2018 — 12:10 • Тема: Размышлизмы о движке • Форум: О жизни

Ответов: 64
Просмотров: 33343
Давайте немного поразмышляем..
Пока конкретно о такой вещи, как шаблонизация. Для кого тема скучная, а по мне так наоборот..
Много чего я читал на просторах и-нета про шаблоны и шаблонизацию. говорят, что нужно, просто обязательно отделять форму от содержания для того, чтобы верстальщикам было легче верстать, а пэхэпэтчикам кодить))
Однако посмотрите каким образом всё это реализовано в существующих шаблонизаторах. Взять тот же движок exbb. Посмотрите там: отделена ли там сущность от формы? Да любой шаблонизатор возьмите..
Вот часть кода из одного шаблона exbb:
CODE:
<td align="center">{$GLOBALS['fm']->_Counters}<br />

Как хорошо видно переменные php прекрасно уживаются в шаблоне вместе с html тегами. Казалось бы - а куда деваться? Везде так.. Так-то так, да можно и по другому..
Откройте этот шаблон в любом редакторе исходного кода и вы не увидите никакой подсветки html. Можно сказать: ну создай свои темы подсветки для файлов типа .tpl Дык ведь даже это дело не каждому по плечу.
Итак две проблемы налицо:
1) Отсутствует подсветка тэгов в стандартных общедоступных редакторах.
2) Код html по прежнему перемешан с кодом php.
Предлагаю совершенно другой подход. Во-всяком случае я такого на просторах и-нета ещё не встречал. Меня интересует мнение знакомых с данной проблематикой людей, да и просто заинтересованных лиц. Прошу высказать свои мнения и соображения по данному вопросу.
Суть предложения.
В файле с шаблоном не должно быть вообще никаких переменных, условий и вообще НИКАКОГО кода php! Там должен находится только ЧИСТЫЙ html!
Скажете - утопия, как вообще возможно в него что-либо вставлять? Отвечу всё довольно просто реализуется, и мечта о разделении формы и содержания может быть осуществлена хотя бы в новом движке.
Итак, например имеем файл tpl.php с нашим шаблоном. Заметьте расширение - не tpl, а php! Это важный момент! Реализуется он так:
CODE:
<?php if (!defined('EXBB_OK')){die('Access denied!');}?>
<table width="100%" id="logostrip" cellspacing="0" cellpadding="0"><tr><td><a href="index.php" title="
"><img src="./templates/
/im/logo.gif" alt="
" width="207" height="52" border="0" /></a></td><td valign="bottom" align="right"><a href="index.php" style="margin-right:20px;color:#ffffff">
</a></td></tr></table>

Это из шаблона этого движка, но реализованного по своему.
Каждая часть на своей строке. В редакторах подобный html отлично подсвечивается. Никакого php и в помине..
Теперь как происходит вставка. Имеем например функцию:
CODE:
<?php if (!defined('EXBB_OK')){die('Access denied!');}
function exbb_showLogoStrip()
{
global $Config, $ContentBuf, $TemplatesPath;
require_once($TemplatesPath.'tpl.php');
$tpl=exbb_getArr($TemplatesPath.'tpl.php');

$ContentBuf.=$tpl[0].$Config[1].$tpl[1].$Config[4].$tpl[2].$Config[1].$tpl[3].$Config[1].$tpl[4];
}
?>

Как видим и здесь только PHP и никакого html. Итак код и данные полностью разделены!
Что это еще даёт?
А это даёт то, что теперь сторонний код может с лёгкостью ИЗМЕНЯТЬ шаблоны! Иногда прямо "на лету". Ещё этот способ в разы быстрее, чем в существующих шаблонизаторах..
Когда эта идея впервые пришла мне в голову, то я сразу понял: так оно и должно быть! И никак иначе.. А вы как думаете?
Flat Отправлено: 22 сентября 2018 — 09:44 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
А для гостей страница отправки e-mail вообще не открывается, пишет:

Насчёт этого: у меня такого не вылазило. Если что проверьте включена ли эта функция в админке. Странно почему не склеились эти мои 2 сообщения?
Flat Отправлено: 22 сентября 2018 — 09:33 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog , - это моя недоработка - не протестил отправку письма, делал в попыхах. Посмотрел что форма работает и всё. Теперь всё решил.

1) Обязательно закинте, если не закинули ещё, строчки в LANG файл о чём я писал выше.

2) В папке templates/ваш_скин открываем файл mailform.tpl. Меняем всё что там находится на мой вариант, который я приводил выше. Затем, уже в изменённом файле ищем строку:
CODE:
<input type="hidden" name="dosend" value="yes">

и после неё вставляем:
CODE:
<input type="hidden" name="admin" value="1">

Затем находим строку:
CODE:
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0)

и меняем её на строку:
CODE:
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0 && isset($fm->input['admin']))

С этим файлом закончили.

3) Открываем первоначальный(не изменённый как выше) tools.php, и производим следующие изменения.
Находим строку:
CODE:
if ($fm->user['id'] === 0) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['GuestMail']);
}

и меняем её на:
CODE:
if ($fm->user['id'] === 0 && !isset($fm->input['admin'])) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['GuestMail']);
}

Находим строку:
CODE:
$fm->input['subject'] = $fm->bads_filter(substr($fm->input['subject'],0,255));
$fm->input['message'] = $fm->bads_filter($fm->input['message']);

и после неё вставляем:
CODE:
if (isset($fm->input['admin']) && $fm->user['id'] === 0 && $fm->exbb['anti_bot'] && ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']))
{
$fm->_Message($fm->LANG['Registration'],$fm->LANG['CaptchaError']);
}
unset($_SESSION['captcha']);

это несколько изменённый предыдущий вариант.
Затем находим строку:
CODE:
$fm->_Mail($fm->exbb['boardname'],$fm->user['mail'],$user['mail'],$fm->input['subject'],$email);

и меняем её на:
CODE:
$fm->_Mail($fm->exbb['boardname'],
(!empty($fm->user['mail']))?$fm->user['mail']:'',$user['mail'],$fm->input['subject'],$email);

Вроде бы и всё. Я всё протестировал - письма отправляются. Никаких ошибок не появляется. Каптча для гостей выводится и проверяется(с фиксированной кнопки). Если ещё какой-либо косяк выявится, то пишите. Но вроде бы всё работает как часики. Может даже и у себя это оставлю))
Flat Отправлено: 21 сентября 2018 — 08:32 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
Только затем, что бы вывести форму написания письма администратору в отдельное окно, и оставить формы e-mail на самом форуме неизменными.

Всё оказалось намного проще чем я думал.
Инструкция:

1) Открываем в папке include файл page_tail.php. Перед тегом </body> вставляем строчки:
CODE:
<div style="opacity: 0.7; margin: 0px; background: e6eeee; z-index: 2; position: fixed; height: 100%; right: 90%; top: 95%;"> <a href="tools.php?action=mail&member=1&admin=1">
<img src="./templates/InvisionExBB/im/email.gif"
border=0 alt="Написать администратору" title="Написать администратору" /></a>
</div>

В ссылке на картинку добавьте свою папку со скином. А также сделайте свою картинку кнопки. Я взял кнопку стандартную чтобы было видно что скрипт работает.

2) Берём вышепреведённый несколькими постами выше мой вариант файла mailform.tpl. Находим в нём строчку:
CODE:
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0)

и меняем её на строку:
CODE:
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0 && $fm->input['admin']===1)


3) Файл tools.php переделываем как я уже писал выше.
Всё.
Теперь гости могут отправлять только с фиксированной кнопки и только администратору.
Протестите у себя(у меня всё работает) и если что пишите.
Flat Отправлено: 20 сентября 2018 — 09:27 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
я хотел, что бы слева, в нижнем углу, была небольшая, полупрозрачная кнопка "Написать нам".

В этом проблемы не вижу.

Parapsixolog пишет:
При нажатии на которую открывалось окно по типу http://exbb.info/community/tools...ail&member=1 То есть только для администратора. И что бы гости тоже могли написать ему, введя каптчу.

Всё понятно.
Parapsixolog пишет:
То есть, как я понимаю, надо сделать копию файла tools.php, переименовать его, внести ваши правки, удалить всё не нужное, что не нужно для отправки письма.

Зачем такие сложности? Хотя в принципе можно и так, но там надо будет подключить отдельный темплэйт под другим именем(тот, что я выше привёл). Можно через сессию попробовать. Покумекаю, отпишусь.
Parapsixolog пишет:
Да, и ещё одно. Лучше было бы не вносить правку в tools.php, а взять готовый скрипт обратной связи работающий по SMTP Только внести в этот скрипт каптчу работающею только для гостей.

Так этот скрипт надо ещё написать или найти готовый. Я в и-нете видел варианты. Пока надо через стандартный сделать, а уж потом можно заменить на любой скрипт.
Flat Отправлено: 19 сентября 2018 — 08:16 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Ещё момент забыл. Вы хотели, чтобы письмо отправлялось только администратору через другую кнопку? Я сделал что письмо отправляется с той кнопки, которая уже присутствует под каждым постом, так что письмо отправляется конкретному юзеру под чьим постом находится кнопка отправки. Однако исправить этот момент легко. Если не получится, то пишите сюда, исправим. Основное сделано, там уже лёгкие моменты остались, на вроде добавления новой кнопки, которая ведёт на данную страничку отправки..
Flat Отправлено: 18 сентября 2018 — 17:14 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Посмотрел я код и сделал, то что вы хотели. Открыл для себя много нового, так что время зря не потратил. Последовательность действий следующая:
1) В папке languages/russian открываем файл lang_front_tools.php. Перед строчкой ?> вставляем:

CODE:
$this->LANG['CaptchaError'] = 'Не введен или введен неверный защитный код!';
$this->LANG['CaptchaCodeForm'] = 'Защитный код формы';
$this->LANG['CaptchaCode'] = 'Защитный код регистрации';
$this->LANG['CaptchaBroken'] = 'Если Вы не видете код на картинке, то перегрузите окно браузера (Ctrl+R)';
$this->LANG['CaptchaСonfirm'] = 'Подтвердите защитный код';
$this->LANG['CaptchaNote'] = 'Введите код показанный на картинке справа.';


Предварительно выставите правильную кодировку в своём редакторе.

2) В папке templates/ваш_скин открываем файл mailform.tpl. Меняем всё что там находится на это:

CODE:
<?php
echo <<<DATA
<br>
<div id="navstrip" align="left">
<img src="./templates/InvisionExBB/im/nav.gif" border="0" alt="&gt;" />&nbsp;<a href="index.php">{$fm->exbb['boardname']}</a>&nbsp;&raquo;&nbsp;{$fm->LANG['MailByBoard']}
</div>
<br>
<form method="post" action="tools.php">
<input type="hidden" name="action" value="mail">
<input type="hidden" name="dosend" value="yes">
<input type="hidden" name="member" value="{$user_id}">
<table cellspacing="1" cellpadding="4" border="0" align="center" class="tableborder" width="70%">
<tr>
<td class="maintitle" colspan="2"><img src="./templates/InvisionExBB/im/nav_m.gif" border="0" alt="&gt;" width="8" height="8" />&nbsp;{$fm->LANG['SendMailTo']} {$user['name']}</td>
</tr>
<tr>
<td class="pformleft" align="right"><b>{$fm->LANG['Topic']}</b></td>
<td class="pformright"><input type="text" name="subject" size="45" maxlength="100" tabindex="2" value="" /></td>
</tr>
<tr>
<td class="pformleft" align="right" valign="top"><b>{$fm->LANG['EmailMessage']}</b></td>
<td class="pformright"><textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3"></textarea></td>
</tr>
DATA;
if($fm->exbb['anti_bot'] === TRUE && $fm->user['id'] === 0)
{
echo <<<DATA
<tr>
<td class="pformleft"><b>{$fm->LANG['CaptchaCode']}</b><br /><span class="desc">{$fm->LANG['CaptchaBroken']}</span></td>
<td class="pformright"><img src="regimage.php" border="0" alt="captcha"></td>
</tr>
<tr>
<td class="pformleft"><b>{$fm->LANG['CaptchaСonfirm']}</b><br /><span class="desc">{$fm->LANG['CaptchaNote']}</span></td>
<td class="pformright"><input type="text" style="width: 130px" name="captcha" size="13" maxlength="10"></td>
</tr>
DATA;
}
echo <<<DATA
<tr>
<td class="darkrow2" align="center" colspan="2"><input type="submit" value="{$fm->LANG['Send']}" name="submit" /></td>
</tr>
</table>
</form>
DATA;
?>


После вставки обратите внимание на расположение завершителя DATA; Он должен находится в первом столбце(в начале строки без отступов) иначе работать не будет. Если необходимо подкорректируйте этот момент.

3) открываем файл tools.php. Находим функцию mailtouser(). Находим строку:

CODE:
if ($fm->user['id'] === 0) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['GuestMail']);

и закомментируем её:

CODE:
/*if ($fm->user['id'] === 0) {
$fm->_Message($fm->LANG['MainMsg'],$fm->LANG['GuestMail']);
}*/


Находим строку:

CODE:
$fm->input['subject'] = $fm->bads_filter(substr($fm->input['subject'],0,255));
$fm->input['message'] = $fm->bads_filter($fm->input['message']);


и после неё вставляем код:

CODE:
if ($fm->exbb['anti_bot'] && ($fm->input['captcha'] == '' || !isset($_SESSION['captcha']) || $fm->input['captcha'] !== $_SESSION['captcha']))
{
$fm->_Message($fm->LANG['Registration'],$fm->LANG['CaptchaError']);
}
unset($_SESSION['captcha']);


Если всё сделали правильно, то всё будет работать. Я протестил у себя - всё работает. Зарегестрированные пользователи без капчи, гости с каптчей. Каптча проверяется.

---------------

Вообще есть над чем поразмыслить, не правда ли?. На других форумах такой бодяги нет.. Там закинул плагин в папку сплагинами и подключил через админцентр, а здесь вот так приходится ручками, ручками править.. Если по уму, то я бы написал плагин, положил бы его в архив и отправил пользователю. Пользователю достаточно было бы его распаковать в папку с плагинами и запустить через админпанель. Плагин бы сам всё прописал где нужно. А зачем же тогда компы придумали? Правильно: для автоматизации рутинных операций.. Не надоело ещё?.. Мне лично надоело.
Flat Отправлено: 18 сентября 2018 — 10:05 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение

Ответов: 61
Просмотров: 26381
Parapsixolog пишет:
а часть вообще не доходят

Проблема ещё может быть вот в чём. Сейчас некоторые страны блокируют отправку писем на нежелательные с их точки зрения почтовые сервисы. Например, в чёрный список попали mail.ru и yandex. Раньше до известных событий всё было нормально. Я пользуюсь в таких случаях аккаунтом на gmail.com. Гугл блокировать никто не будет естественно. Так что причина может быть и в этом. Говорю по опыту, так как сам не могу зарегиться на некоторых форумах, а через гугл-аккаунт проходит.
Parapsixolog пишет:
а форум то хорош

Хорош-то хорош, и всё вроде работает, и много багов уже исправлено, но вот единственная проблема с модификациями, это отпугивает многих.
Parapsixolog пишет:
Единственное, я не знаю, как сделать полупрозрачную кнопку по типу что сейчас в нижнем правом углу сайта "вверх".

Полупрозрачность делается через свойства css через свойство opacity. В данном случае это реализовано так:
CODE:
<div class="button-up" style="opacity: 0.7; height: 100%; position: fixed; right: 0px; top: 95%; cursor: pointer; text-align: center; color: rgb(211, 219, 228); font-weight: bold; display: block; background: none;"><img src="./javascript/up-arrow.png"></div>

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

Да именно в tools.php. Свою форму не нужно, здесь достаточно некоторые изменения ввести, тогда и дизайн будет тот же самый. Вечером посмотрю, что можно сделать.

Страниц (13): В начало « ... 5 6 7 8 [9] 10 11 12 13 »

Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0598]     [ ]