|
|
15.06.2012, 13:20
|
|
Евгений
Зарегистрирован: 2012-05-22
Сообщений: 31
|
Необходимо организовать форму, которую пользователь может заполнить только один раз.
Нашел код функции, чтобы ограничить пользователя в добавлении:
Код:".opt($check='".listQuery("SELECT User_ID FROM Message68 WHERE User_ID=$AUTH_USER_ID LIMIT 1","\$data[User_ID]")."',"")."
".opt_case($check,"форма добавления НЕ показывается","форма показывается")."
И соответственно сама форма:
Код:";
if ($action!='add') return;
global $LinkID;
$firm_sql = "SELECT a.Checked, a.Sub_Class_ID,a.Class_ID FROM Sub_Class as a WHERE a.Sub_Class_ID='".$cc_settings['CategoryCC']."'";
$resCategory = mysql_query($firm_sql, $LinkID);
list($useCategory,$CategoryCC,$CategoryClass) = mysql_fetch_row($resCategory);
echo"
".( $warnText ? "<div class='warnText'>$warnText</div>" : NULL )."
<form name='adminForm' id='adminForm' enctype='multipart/form-data' method='post' action='/netcat/add.php'>
<div id='nc_moderate_form'><div class='nc_clear'></div>
<input name='admin_mode' type='hidden' value='$admin_mode' />
".( $nc_core->token->is_use($action) ? $nc_core->token->get_input() : "")."
<input name='catalogue' type='hidden' value='$catalogue' />
<input name='cc' type='hidden' value='$cc' />
<input name='sub' type='hidden' value='$sub' />
<input name='posting' type='hidden' value='1' />
<input name='curPos' type='hidden' value='$curPos' />
<input name='f_Parent_Message_ID' type='hidden' value='$f_Parent_Message_ID' />
".( $admin_mode && !$systemTableID ? "".($moderationID==1 && !isset($f_Checked) ? opt($f_Checked=1,"") : "")."
<div id='nc_moderate_settings'>
".($admin_mode ? "<div class='left'>
".CONTROL_CONTENT_SUBDIVISION_FUNCS_MAINDATA_KEYWORD." <input name='f_Keyword' type='text' size='20' maxlength='255' value='".$f_Keyword."'>
</div>
<div class='left'>
<img src='/netcat/admin/images/prior.gif' width='16' height='16' align='left' alt='Приоритет' title='Приоритет' />
<input name='f_Priority' type='text' size='3' maxlength='3' value='".$f_Priority."' />
</div>" : "")."
".(CheckUserRights( $current_cc['Sub_Class_ID'], "moderate", $posting )? "
<div class='left_checkbox'>
<input id='chk' name='f_Checked' type='checkbox' value='1' ".($f_Checked ? "checked='checked'" : "")." /> <label for='chk'>".NETCAT_MODERATION_TURNON."</label>
</div>"
: "<input id='chk' name='f_Checked' type='hidden' value='".($f_Checked ? 1 : 0)."' />")."
</div>
" : NULL )." <div class='nc_clear'></div>
</div>
".($useCategory ? "
<select name='f_CategoryID'>
<option value=''>-- Выберите категорию --</option>
".opt($GLOBALS[f_CategoryID]=$f_CategoryID,"")."
".listQuery("SELECT Message_ID, Name FROM Message$CategoryClass WHERE Sub_Class_ID='$CategoryCC' ORDER BY Priority DESC","<option value='\$data[Message_ID]'\".opt(\$GLOBALS[f_CategoryID]==\$data[Message_ID],\" selected\").\">\$data[Name]</option>")."
</select><br><br>
":"
<input type='hidden' name='f_CategoryID' value='$f_CategoryID'>
")."
".nc_string_field("Name", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Sphere", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_text_field("Goods", "", $classID, 1)."<br />
<br />
".nc_text_field("Description", "", $classID, 1)."<br />
<br />
".nc_string_field("Address", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Phone", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Fax", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Web", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Email", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_string_field("Tovarss", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_file_field("Logo", "size='50'", $classID, 1)."<br />
<br />
".(!$AUTH_USER_ID && $current_cc['UseCaptcha'] && $MODULE_VARS['captcha'] ? nc_captcha_formfield()."<br/><br/>".NETCAT_MODERATION_CAPTCHA." (*):<br/><input type='text' name='nc_captcha_code' size='10'><br/><br/>" : "")."
<br/>".NETCAT_MODERATION_INFO_REQFIELDS."<br/><br/>
".nc_submit_button(NETCAT_MODERATION_BUTTON_ADD)."
</form>
Как их совместить для работы?
|
|
|
18.06.2012, 14:16
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Цитата:Нашел код функции, чтобы ограничить пользователя в добавлении:
Код:".opt($check='".listQuery("SELECT User_ID FROM Message68 WHERE User_ID=$AUTH_USER_ID LIMIT 1","$data[User_ID]")."',"")."
".opt_case($check,"форма добавления НЕ показывается","форма показывается")."
Смущает слово "нашел"... Вы всегда софт пишите собирая готовые чужие куски кода? В том, что вы нашли логики нет. Если у вас определена переменная $AUTH_USER_ID, то юзер уже авторизован, соотв-но ему уже не надо форму выводить. Какой смысл в отдельном sql запросе? Вам надо сократить до:Код:".($AUTH_USER_ID?"форма добавления НЕ показывается":"форма показывается")."
Более того, более грамотным решением было бы дополнптельно проверять зарегистрирован юзер или нет в "Условиях добавления", если такой пролверки не будет, то юзер может сам составить код формы и повторно ее отправить.
Цитата:И соответственно сама форма:
Код:";
if ($action!='add') return;
global $LinkID;
$firm_sql = "SELECT a.Checked, a.Sub_Class_ID,a.Class_ID FROM Sub_Class as a WHERE a.Sub_Class_ID='".$cc_settings['CategoryCC']."'";
$resCategory = mysql_query($firm_sql, $LinkID);
list($useCategory,$CategoryCC,$CategoryClass) = mysql_fetch_row($resCategory);
echo"
Замените на Код: ".opt(list($useCategory,$CategoryCC,$CategoryClass)=$db->get_row("SELECT a.Checked, a.Sub_Class_ID,a.Class_ID FROM Sub_Class as a WHERE a.Sub_Class_ID=".(int)$cc_settings['CategoryCC'],ARRAY_N),null)."
Цитата:Как их совместить для работы?
Просто тупо вставляете вместо фразы "форма показывается" эту форму.
Temet nosce...
|
|
|
22.06.2012, 16:46
|
|
Евгений
Зарегистрирован: 2012-05-22
Сообщений: 31
|
Странно, либо я изначально не заметил, либо что-то переглючило и скрытие перестало работать. Сейчас в любом случае он не выводит необходимое, независимо от того, есть у пользователя записи или нет.
Что может быть не так?
|
|
|
22.06.2012, 18:30
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Цитата:Что может быть не так?
Ну как минимум надо выложить свой код на форум, чтобы было понятно, че вы там намудрили.
Temet nosce...
|
|
|
03.07.2012, 17:02
|
|
Евгений
Зарегистрирован: 2012-05-22
Сообщений: 31
|
Возвращаюсь к теме. Вопрос по прежнему актуален.
Очевидно, меня не совсем правильно поняли. Мне необходимо скрывать форму от тех, кто её уже заполнял, в случае же с:
Код:".($AUTH_USER_ID?"форма добавления НЕ показывается":"форма показывается")."
Мы получаем, что форма скрывается от всех зарегестрированных.
Вариант:
Код:".opt($check='".listQuery("SELECT User_ID FROM Message68 WHERE User_ID=$AUTH_USER_ID LIMIT 1","$data[User_ID]")."',"")."
".opt_case($check,"форма добавления НЕ показывается","форма показывается")."
Работает аналогично, хотя по коду я вижу, что вроде адекватно запрос прописан. Естественно код компонента проставлен свой.
|
|
|
04.07.2012, 09:48
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Код:".($db->get_var("SELECT User_ID FROM Message68 WHERE User_ID=$AUTH_USER_ID LIMIT 1")?"форма добавления НЕ показывается":"форма показывается")."
Temet nosce...
|
|
|
04.07.2012, 11:11
|
|
Евгений
Зарегистрирован: 2012-05-22
Сообщений: 31
|
Спасибо, вроде все верно теперь работает.
|