Вы не зашли.
ога, понял
$tvars['vars']['test'] = $*;
только как через эту функцию вывести все $mass['text'];
их надо както разбить или переписать?
да, заработало/ спасибо.
<?php
global $twig, $template, $SYSTEM_FLAGS, $mysql;
$query = 'SELECT * FROM '.prefix.'_hot ORDER BY id DESC';
foreach ($mysql->select($query) as $row) {
$mass []= array(
'id' => $row['id'],
'text' => $row['text'],
'cd1' => $row['cd1'],
'cd2' => $row['cd2'],
);
}
$u="321";
class PluginStaticFilter extends StaticFilter {
function showStatic($staticID, $SQLnstatic, &$tvars) {
$tvars['vars']['test'] = $u;
}
}
register_filter('static','test', new PluginStaticFilter);
?>
фишка в том что внутри класса, я как понял, mysql запрос неработает. как передать в класс массив и как его правильно вывести?
мне нужно вывести все ячейки "text" заключив каждую в <div class="cl">
т.е. десять записей - 10 дивов.
всмысле вот эта связка?
class PluginStaticFilter extends StaticFilter {
function showStatic($staticID, $SQLnstatic, &$tvars) {
// ВАШ КОД
$tvars['vars']['test'] = $*;
}
}
register_filter('static','test', new PluginStaticFilter);
что такое $staticID, $SQLnstatic?
staticID понятно, я через phpMyAdmin могу узнать
но что-то у меня неполучается.
что ещё надо добавить.
в плагине .tpl ненужен?
салам!
На главной странице сайта отображается статика (стоит плагин). В статике переменные ads_pro и top_news. Нужно похожим образом вывести несколько элементов из таблицы MySQL. Впринципе это реализуемо через ads_pro php кодом, но в таком случае там засветятся логин и пароль к базе. Плагин написать который на отдельной странице всё будет выводить - нет проблем, но мне нужно потом это вывести блоком на главной - которая статика. Как зарегистрировать результаты плагина в переменную допустим {abc1} и вывести её на главной? Или можно проще?
всап...
есть одна форма в плагине (.tpl + .php)
.php
if($_REQUEST['submit']) {
получаем данные, проверяем
i=1 если всё ок
i=2 если нет
switch(i) {
сase 1:
добавляем данные
@header("Location: /www.____.ru/");
break;
case 2:
break;
}
}
чёто непашет @header
и при неправильном заполнении формы надо както оставить страницу с заполненными полями.
впринципе правильность полей проверяется ещё и js'ом и кнопка добавить становится активной только когда всё правильно
но капчу я невьехал как им проверить
обьясните пожалуйста что тут нетак.
в таком случае надо както её яваскриптом проверять?
как это сделать (капча родная)
есть форма .tpl + .php проверка сначяала через js (если всё правильно - становится активной кнопка "submit"), потом через .php.
но черес js не проверятся капча.
как грамотнее сделать срабатываение, хочу редирект после нажания на "странца отпрапвлена" с которой автоматический переход на главную через 10сек.
но в случае неправильной капчи надо както чтобы форма не сбросилась, а вылезло сообщение про капчу.
распишите если возможно кусками кода.
или может лучше сделать не так.
аа, всё сорри разобрался сам.
посавил просто этот if вначало кода, а вывод уже после него
if($_REQUEST['submit']){
$ids = implode( ',', $_POST['id'] );
$query = 'DELETE FROM '.prefix.'_table WHERE id IN ('.$ids.')';
$mysql->select($query);
}
вобщем есть плагин - выводит данные из таблицы MySQL с чекбоксом после каждой записи.
при субмите формы удаляет отмеченные записи.
всё работает, после нажатия submit страница перезагружается но выводит те записи которые удалены. при последующей перезагрузке страницы они естественно исчезают т.к. их в таблице уже нет. как правильнее это обойти? может повесить ещё чтонибудь на sumbit?
так как страничку зарезервировать и настроить вывод? в каких плагинах такое используется?
гы, полез я туду через оперовский драгонфлай.
запрос отсылается правильно впринципе как на test.php так и на любую созданную там страницу. только не поступает ответ я как понял
ну создаю я .php в папке с плагинам и ориенитрую на него запрос
в нём для проверки такой код:
<?php
list($capacity, $type, $kcostf, $kcostt) = explode('undefined', $_REQUEST['username']);
echo $capacity;
?>
чего нехватает почему не работает?
вобщем, сделал я себе поиск,всё работает но вот беда - после нажатия кнопки "submit" страница перезагружается выводит результат а значения в форме введёные сбиваются и исчезают.
какой самый прямой способ это дело организовать (в форме есть текстовые поля и <input>'ы c <option>'ами ).
у меня есть реализация этой идеи но не в плагине, а в связке .html .php которая на вашем двиге работает:
.html
<script>
$del="/";
$(document).ready(function(){
$('#myForm').submit(function(){
$.ajax({
type: "POST",
url: "{admin_url}/plugins/test/test.php",
data: "username="+$("#inp1" ).val() + $("#del").val() + $("#inp2").val()+ $("#del").val()+ $("#inp3").val()+ $("#del").val()+ $("#inp4").val(),
success: function(html){
$("#content").html(html);
}
});
return false;
});
});
</script>
ну и тут форма id="myForm"
.php
list($srch1, $srch2, $srch3, $srch4) = explode('undefined', $_REQUEST['username']);
explode('undefined'... - это потомучто $del="/"; неработает, но смысл я думаю понятен.
я щас попытался это всё в плагин перенсти
то что в .html воткнуть в .tpl но .php плагина никак нехочет эти переменные вылавливать.
может я путь к нему неправильно написал, в чём может быть проблема? (jquery я подключил)
или это можно легче решить?
всап пагни,
вобщем решил что-то вроде личного кабинета для пользователя запилить, т.е. тех кто не залогинен - непускать
впринципе с uprofile'я упёр скрипт
if (!is_array($userROW)) {
msg(array("type" => "error", "text" => $lang['uprofile:msge_notlogged']));
return;
}
перед этим в глобале соответственно $userROW обазначил.
вроде всё работает, но чует моё сердце что чегото нехватает. так пойдёт или нет?
и как мне замутить переменную содержащую в себе имя user'a?
всё заработало, спасибо.
вроде переменная задана, не через шаблонизатор у меня такой код прокатывал
.tpl
<form action="" method="post">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
{% for entry in entries %}
{{entry.a}}
{{entry.b}}
{% endfor %}
.php
<?php
if (!defined('NGCMS'))
exit('HAL');
register_plugin_page('test','','plugin_test');
function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
$SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
$tpath = locatePluginTemplates(array('test'), 'test', 1);
if($_REQUEST['submit']){
$a=$_POST['a'];
$b=$_POST['b'];
print $a;
$query = 'SELECT * FROM '.prefix.'_adds WHERE a="$a"';
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b'] );
}
}
$tVars = array( 'entries' => $tRecs );
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
чегото нехватает помоему, записи со значением=1 есть, print срабатывает, но результаты не выводятся
если if($_REQUEST['submit']) убрать и вместо переменной в запрос "1" вбить всё выводится
я просто не везжаю как мне зарегистрировать результаты поиска элементом и вывести его
вечер в хату уважаемые.
есть таблица в мускуле "ng_adds", в ней два столбца "A" и "B" внутри произвольная фигня.
хочу сделать поиск типа: SELECT FROM ng_adds where A="значение1" AND B="значение2"
"значение1" и "значение2" из формы поиска берётся.
логичнее было-бы сразу после нажатия кнопки submit ниже формы выводить таблицу с результатами. и при повторном нажатии кнопки submit получать значения снова и таблицу менять.
с AJAX'ом заморачиваться нехочу, в дефолтном search.php без аякса всё сделано, но я там непонял фишки с подключением news.php.
мне помоему с такими подключениями заморачиваться не прийдётся.
вобщем пилю плагин
- в .tpl сую форму c инпутами "значение1" и "значение2"
- в .php их
if($_REQUEST['submit']){
query= 'SELECT FROM ng_adds where A=$_POST ['значение1"] AND B=$_POST ['значение2"]';
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b'] );
}
$tVars = array(
'entries' => $tRecs
);
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
но как мне результат вывести сразу, ниже формы, допусти в div'е каком-нибудь?
всё, сорри за флуд, разобрался.
заработало.
но это помоему неправильно и ситуация такая - форм 8 штук, они в табах яваскриптовских, как правильнее прикрутить к каждой форме по капче?
$_SESSION['captcha'] = rand(00000, 99999);
$tvars['vars']['captcha'] = '';
$tvars['regx']["'\[captcha\](.*?)\[/captcha\]'si"] = '$1';
добавил в .php
капчп начала генерироваться, но когда я нажимаю submit, то генерируется новый код и он соответственно несовпадает ниразу с тем что ввёл юзер
добавил в .tpl
<img src="{admin_url}/captcha.php">
<input class="important" type="text" name="vcode" maxlength="5" size="30" />
и в .php проверку
$captcha = $_REQUEST['vcode']; if (!$captcha || ($_SESSION['captcha'] != $captcha)) {$i=2; echo "ошибка в поле captcha";}
но помоему я херню написал, и генерирует она тока 22915 с разным фоном
есть две формы
<form action="" method="post">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
<form action="" method="post">
<select name="c">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="d">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit" value="Разместить" />
</form>
<?php
if (!defined('NGCMS'))
exit('HAL');
register_plugin_page('test','','plugin_test');
function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
$SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
$tpath = locatePluginTemplates(array('test'), 'test', 1);
if($_REQUEST['submit']){
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
$d=$_POST['d'];
print 'Форма отправлена';
//form1
if( isset($a) && isset($b) )
$mysql->query('INSERT INTO '.prefix.'_adds
(a,
b)
VALUES
( '.db_squote($a).',
'.db_squote($a).',
)
');
//form2
if(isset($c) && isset($d))
$mysql->query('INSERT INTO '.prefix.'_adds2
(c,
d)
VALUES
( '.db_squote($c).',
'.db_squote($d).',
)
');
}
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
как к ним приделать встроеную капчу (к каждой форме по капче)
и сделать по нажатию кнопки переход на страницу, с результатом типа "всё сработало" или - "несработало".
<?php
if (!defined('NGCMS'))
exit('HAL');
register_plugin_page('test','','plugin_test');
function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
$SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
$tpath = locatePluginTemplates(array('test'), 'test', 1);
$tRecs = array();
$query = 'SELECT a, b FROM '.prefix.'_adds';
foreach ($mysql->select($query) as $row) {
$tRecs []= array(
'a' => $row['a'],
'b' => $row['b']
);
}
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
?>
сделал так - неработает.
как правильно использовать trecs?
я продалжаю разбираться.
нужно настроить вывод.
я седлал
.php
<?php
if (!defined('NGCMS'))
exit('HAL');
register_plugin_page('test','','plugin_test');
function plugin_test()
{global $twig, $template, $SYSTEM_FLAGS, $mysql;
$SYSTEM_FLAGS['info']['title']['group'] = 'Проверка тестовой страницы';
$tpath = locatePluginTemplates(array('test'), 'test', 1);
$query = 'SELECT a, b FROM '.prefix.'_adds';
foreach ($mysql->select($query) as $row) {
$tVars = array(
'a' => $row['a'],
'b' => $row['b']
);}
$xt = $twig->loadTemplate($tpath['test'].'test.tpl');
$template['vars']['mainblock'] = $xt->render($tVars);
}
?>
.tpl
{{a}}{{b}}
выводит только последние значения из таблицы.
a и b надо както array'ами задать?
настроить путь к создаваемой странице каким способом можно? (хочу чтоб красиво /test/ а не /plugin/test/)
спасибо, всё работает