Регистрация
Вход через соцсети
Восстановление пароля

Альтернативная форма компонента Публикации. Вывод дерева каталогов.

Новый топик
11.05.2011, 21:58
Ответить | Цитировать
dimidroll
Егоровых Дмитрий
dimidroll

Зарегистрирован:
2007-10-05
Сообщений: 81

Генерирую альтернативную форму публикаций. Задача - отметить разделы, в которых будет отобразаться текущая публикация. Нашел функцию в коде - вывод разделов в textarea (по аналогии компонента "Скидки"). Вставляю код
Код:

".( $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>

".nc_string_field("Name", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_date_field("Date", "", $classID, 1)."<br />
<br />
".nc_string_field("Autor", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_text_field("Text", "", $classID, 1)."<br />
<br />
Выберите разделы, где отобразится статья:
<br>
<select name=f_Subdivisions0 size=10 multiple style='width:100%'>
";
$sections = GetStructure(830,"Checked=1");
$tp = ",$f_Subdivisions,";

foreach ($sections as $row)
{

print "<option value='$row[Subdivision_ID]'";



print ">".str_repeat("&nbsp;", ($row["level"]+1)*4).
"$row[Subdivision_Name]</option>\n";
}

$result .= "
</select>
<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>


разделы отображаются в куче сверху, а не там где нужно. Подскажи в чем может быть проблема?

ася - 97336016
11.05.2011, 22:42
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Вместо print используйте $addForm

Ксю доставляет...
11.05.2011, 22:56
Ответить | Цитировать
dimidroll
Егоровых Дмитрий
dimidroll

Зарегистрирован:
2007-10-05
Сообщений: 81

спасибо, получилось!
НО один момент, опять слегка съезжает надпись "Звездочкой (*) отмечены поля, обязательные для заполнения." оказывается вверху всех полей грустный

Код:

".( $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>

".nc_string_field("Name", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_date_field("Date", "", $classID, 1)."<br />
<br />
".nc_string_field("Autor", "maxlength='255' size='50'", $classID, 1)."<br />
<br />
".nc_text_field("Text", "", $classID, 1)."<br />
<br />
Выберите разделы, где отобразится статья:
<br>
";
$addForm .= "<select name=f_Subdivisions0 size=10 multiple style='width:100%'>";
$sections = GetStructure(830,"Checked=1");
$tp = ",$f_Subdivisions,";

foreach ($sections as $row)
{
$addForm .= "<option value='$row[Subdivision_ID]'";
if (strpos($tp, ",$row[Subdivision_ID],")!==false) $addForm .= " selected";

$addForm .= ">".str_repeat("&nbsp;", ($row["level"]+1)*4).
"$row[Subdivision_Name]</option>\n";
}
$addForm .= "</select>";
echo "

<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>


ася - 97336016
12.05.2011, 10:09
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Как устроен вывод альтернативной формы? - сначала все собирается в переменную $addForm, после чего она выводится:
eval("\$addForm = \"КодФормыДобавления\";");
echo $addForm;

Если в форме будет echo/print, то, естественно, строка, которую они печатают, будет "выше" $addForm.

Замените


Код:
echo "

на
Код:
$addForm .= "


Ксю доставляет...
12.05.2011, 12:43
Ответить | Цитировать
dimidroll
Егоровых Дмитрий
dimidroll

Зарегистрирован:
2007-10-05
Сообщений: 81

каким образом получить значения выбранных элементов? из select и вывести (для примера) на экране. Запутался... Денис спасибо, с формой разобралсяулыбка

ася - 97336016
12.05.2011, 14:40
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

$f_Subdivisions0
в случае с multiple - это массив

Ксю доставляет...
12.05.2011, 23:24
Ответить | Цитировать
dimidroll
Егоровых Дмитрий
dimidroll

Зарегистрирован:
2007-10-05
Сообщений: 81

Цитата:
Как устроен вывод альтернативной формы? - сначала все собирается в переменную $addForm, после чего она выводится:
eval("$addForm = "КодФормыДобавления";");
echo $addForm;

Если в форме будет echo/print, то, естественно, строка, которую они печатают, будет "выше" $addForm.


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

ася - 97336016
13.05.2011, 12:04
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

через echo

Ксю доставляет...
13.05.2011, 18:57
Ответить | Цитировать
dimidroll
Егоровых Дмитрий
dimidroll

Зарегистрирован:
2007-10-05
Сообщений: 81

Цитата:
через echo


Денис, спасибо! Ты МЕГА-мозг!улыбка

ася - 97336016
198 196 2011-05-13 18:57:18 11273
Описание проекта