Forumlar / National / Russian / Тех. поддержка / Как перенести плагин в index.tpl

g.galashev
#1 2012-08-10 05:45

Здравствуйте!

Есть такой плагин Contactus. Представляет из себя форму для отправки сообщения на имэйл. Он открывается в отдельном окне /plug.php?e=contactus

Я взял плагин recentitems, который подключается в index.tpl и засунул туда php-код из плагина contactus, естественно поменяв названия. Но он у меня в index.tpl не пашет, пишет "Fatal error : Wrong URL." и сайт больше не работает. Сайт начинает работать только после перезаливки БД. Не подскажете, как перенести грамотно данный плагин в index.tpl? Может быть нормальная статья, где описано, как работают те или иные плагигы, под LDU когда-то было, здесь же не могу что-то найти.

Спасибо.

esclkm
#2 2012-08-10 06:17

в индекс части не объявлена константа COT_PLUG

и какая версия??

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
g.galashev
#3 2012-08-10 06:53

извини, не совсем понял, что нужно сделать

вот мой плагин, так сказать...) http://files.mail.ru/IMM9PI  Я его совсем чуть-чуть видоизменил от стандартного Contactus, он нормально работает на отдельной странице, а вот чего в нём не хватает, чтобы он в index.tpl заработал?

Движок у меня 0.6.24

esclkm
#4 2012-08-10 07:43

нужен файл с хуком index.tags

ибез defined("COT_PLUG") or die();

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
g.galashev
#5 2012-08-10 08:16

Если ты имеешь ввиду эту строчку defined('SED_CODE') or die('Wrong URL'); , то она и в других плагинах имеется, допустим в recentitems

а поподробнее можно про файл с хуком index.tags

я вроде всё оформил, как в плагине recentitems

чуть подробнее, пожалуйста

esclkm
#6 2012-08-10 08:21

код и имя файла в студию

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
g.galashev
#7 2012-08-10 08:28

весь плагин лежит здесь http://files.mail.ru/XO4HJA

я его немного подправил, теперь ошибки не возникает, просто на заглавной странице ничего не появляется, хотя я в index.tpl вставляю  {PLUGIN_CONTACTIN}

вот код плагина

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=contactin
Part=main
File=contactin
Hooks=index.tags
Tags=index.tpl:{PLUGIN_CONTACTIN}
Order=10
[END_SED_EXTPLUGIN]
==================== */



defined('SED_CODE') or die('Wrong URL');

$a = sed_import('a','P','ALP');
$subject = sed_import('subject','P','INT');
$message = sed_import('message','P','TXT');
$name = sed_import('name','P','STX');
$phone = sed_import('phone','P','STX');
$email = sed_import('email','P','STX');

$plugin_title = $L['plu_title'];


if ($a=="send") {

if (!is_numeric($subject) || empty($message) || empty($name) ||empty($phone))
{ $error = $L['plu_empty']."<br />\n"; }


if (empty($error))
{

$rectr =$cfg['plugin']['contactus']['email'];
$cfgsubjects = explode(";", $cfg['plugin']['contactus']['subjects']);
$subrt = trim($cfgsubjects[$subject]);

$headers = ("From: ".$name." <".$email."> tel: ".$phone."\n");
$body = $L['plu_notice']." ".$name."\n";
$body .= $L['plu_message'].": \n\n".$message;
sed_mail($rectr, $subrt, $body, $headers);

$ok = $L['plu_ok'];
unset($phone, $subject, $message, $name, $email);
}

}

if (!empty($error)) { $plugin_body .= "<span style=\"color: #FF0000;\">".$error."</span><br />"; }
if (!empty($ok)) { $plugin_body .= "<span style=\"color: #33CC33;\">".$ok."</span><br />"; }

$plugin_body .= "<form action=\"plug.php?e=contactus\" method=\"post\">\n";



$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_subject']."</label>";

//Build subjects array and selectbox

$cfgsubjects = explode(";", $cfg['plugin']['contactus']['subjects']);
$plugin_body .= "<select name=\"subject\">\n";
$iii=0;
foreach($cfgsubjects as $x) {
if (!empty($x)) {
$subjects[$iii] = trim($x);
if ($iii==$subject || (empty($subject) && $iii==0)) {
$plugin_body .= "<option value=\"".$iii."\" selected=\"selected\">".$subjects[$iii]."</option>\n";
} else {
$plugin_body .= "<option value=\"".$iii."\">".$subjects[$iii]."</option>\n";
}
$iii++;
}
}
$plugin_body .= "</select>\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_sendername']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"name\" value=\"".sed_cc($name)."\" size=\"32\" maxlength=\"64\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_senderphone']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"phone\" value=\"".sed_cc($phone)."\" size=\"32\" maxlength=\"64\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_sendermail']."</label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"email\" value=\"".sed_cc($email)."\" size=\"32\" maxlength=\"64\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_message']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<textarea cols=\"48\" rows=\"8\" name=\"message\">".sed_cc($message)."</textarea>\n";
$plugin_body .= "</div>\n";
$plugin_body .= "</fieldset>\n";
$plugin_body .= "<br />\n";
$plugin_body .= "<input type=\"hidden\" name=\"a\" value=\"send\" />\n";
$plugin_body .= "<input type=\"submit\" class=\"submit-l\" value=\"".$L['plu_send']."\" />\n";
$plugin_body .= "\n";
$plugin_body .= "</form>\n";

?> 

 


Bu konu g.galashev tarafından düzenlendi(2012-08-10 08:39, 11 yıllar önce)
esclkm
#8 2012-08-10 08:59

а имя файла

$plugin_body - ничего не выводит

вначале ее очистите -н на всякий случай : unset($plugin_body);

а в конце

$t->assign('PLUGIN_CONTACTIN', $plugin_body); - так появится необходимый вам тег

эта часть вам так же я думаю не надо : if ($a=="send")

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
g.galashev
#9 2012-08-10 09:14

спасибо, большое, не хватало $t->assign('PLUGIN_CONTACTIN', $plugin_body);

Added 1 hours later:

ещё вопрос появился:

у меня есть подписи к текстовым полям, они берутся из языкового файла, например:

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_sendername']."<span class='form-required' title='reqred'> *</span></label>\n";

Так вот, $L['plu_sendername'] на странице /plug.php?e=contactus выводит название тестового поля и *, а на заглавной странице - только *

Почему $L['plu_sendername'] в случае вывода плагина в index.tpl не может подцепить текст из языкового файла?

Added 8 hours later:

up


Bu konu g.galashev tarafından düzenlendi(2012-08-10 17:48, 11 yıllar önce)
esclkm
#10 2012-08-10 19:37

не апайте каждые 5 минут. это дурной тон.

просто надо require_once сделать для языкового файла

для всех хуков ктоме standalone - ни темлейты ни языки автоматом не подключаются

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
g.galashev
#11 2012-08-11 05:47

спасибо!

Added 11 hours later:

При переносе этого плагтна в инет вылез косяк. На локалхосте это плагин рисует форму, а в инете на сервере - не рисует, там ничего не выводится, во фрагмент кода плагина из кода который рисует форму в постах выше:

 

 

$plugin_body .= "<form action=\"plug.php?e=contactus\" method=\"post\">\n";



$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_subject']."</label>";

//Build subjects array and selectbox

$cfgsubjects = explode(";", $cfg['plugin']['contactus']['subjects']);
$plugin_body .= "<select name=\"subject\">\n";
$iii=0;
foreach($cfgsubjects as $x) {
if (!empty($x)) {
$subjects[$iii] = trim($x);
if ($iii==$subject || (empty($subject) && $iii==0)) {
$plugin_body .= "<option value=\"".$iii."\" selected=\"selected\">".$subjects[$iii]."</option>\n";
} else {
$plugin_body .= "<option value=\"".$iii."\">".$subjects[$iii]."</option>\n";

и т.д.

 

По какой причине может не выводиться форма?


Bu konu g.galashev tarafından düzenlendi(2012-08-11 16:22, 11 yıllar önce)