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

Дублирование в админке при вставке php кода

Новый топик
15.10.2008, 07:33
Ответить | Цитировать
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

Версия 3.12

В компоненте в текстовом поле (Объект в списке)
я вставил такой код
";
// здесь сделаем нумерацию строк,
// каждая строка содержит два столбца
// все это надо, чтобы реализовать дизайн (вывод креста)
if ($f_RowNum+1 & 1) {$table_row_num +=1 ;}
$result .=
"
Дальше идет вывод через .opt с с ипользованием этой переменной.
На страницах сайта все работает.

В админке, при просмотре раздела(вкладка редактирование), который использует данный компонент, происходит дублирование объектов - выводятся они по два раза.

Уберешь php код дублирование исчезает....

В чем проблема?

15.10.2008, 11:59
Ответить | Цитировать
VlastV
qb.digital

Зарегистрирован:
2005-11-02
Сообщений: 202

Покажите полный код в "Объект в списке"

Разработка сайтов на CMS NetCat. Портфолио http://vlastv.ru/ E-mail: me [at] vlastv [dot] ru ; ICQ: 66117050
15.10.2008, 13:45
Ответить | Цитировать
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

VlastV писал(а):
Покажите полный код в "Объект в списке"

VlastV писал(а):
Покажите полный код в "Объект в списке"


Код:
";
// здесь сделаем нумерацию строк,
// каждая строка содержит два столбца
// все это надо, чтобы реализовать дизайн (вывод креста)
if ($f_RowNum+1 & 1) {$table_row_num +=1 ;}
$result .=
"


".opt_case($f_RowNum+1 & 1, "<tr><td width=50% valign=top ".opt_case($table_row_num & 1,"class='nc_td_1'","class='nc_td_3'" )." >","<td width=50% ".opt_case($table_row_num & 1,"class='nc_td_2'","class='nc_td_4'" )." valign=top>") ."
$f_AdminButtons

<div class='nc_row'>
".opt( $cc_settings[Group]=='date'&& $groupHeader=( $curDep == $f_Date_day ? NULL : $curDep=$f_Date_day ) , "<h4 class='nc_group'>$groupHeader.$f_Date_month.$f_Date_year</h4>" )
.opt( $cc_settings[Group]=='month'&& $groupHeader=( $curDep == $f_Date_month ? NULL : $curDep=$f_Date_month ) , "<h4 class='nc_group'>$groupHeader.$f_Date_year</h4>" )."

".opt( $cc_settings[DateStyle]!='disable' , "<div class='nc_datetime'>".
opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "<a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>").
opt( $cc_settings[DateStyle]!='time' , "<span class='nc_date'>$f_Date_day.$f_Date_month.$f_Date_year </span>" ).
opt( $cc_settings[DateStyle]!='date' , "<span class='nc_time'>$f_Date_hours:$f_Date_minutes </span>" ).
opt( $cc_settings[FullLink]=='date' && ($f_Text || $f_ExtLink) , "</a>" )."</div>"
)."
<br>
<span class='nc_title'>".opt_case($cc_settings[FullLink]=='title' && ($f_Text || $f_ExtLink) , "<a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>$f_Title</a>" , "$f_Title")."</span>
".opt( $f_Picture , "<img class='nc_row_img' src='$f_Picture' alt='$f_Picture' />" )
.opt( $f_Announce , "<p class='nc_announce'>$f_Announce</p>" )
.opt( $f_SourceTitle || $f_SourceLink ,
"<div class='nc_source'><span>Источник: </span>".opt_case( $f_SourceTitle && $f_SourceLink , "<a href='$f_SourceLink'>$f_SourceTitle</a>",
opt_case( !$f_SourceLink,$f_SourceTitle , "<a href='$f_SourceLink'>$f_SourceLink</a>" )
)."</div>")."

".opt( $cc_settings['ShowComments'] && $cc_settings['CommentsSUB'] && $cc_settings['CommentsCC'] , "<div class='nc_comments_count'><span>Комментарии: </span>".(int)s_list_class($cc_settings[CommentsSUB], $cc_settings[CommentsCC], "&scID=$cc&objID=$f_RowID&CountComments=1", true)."</div>" )."

".opt($cc_settings[FullLink]=='more' && ($f_Text || $f_ExtLink) , "<span class='nc_more'><a href='".opt_case($f_Text,$fullLink,$f_ExtLink)."'>подробнее...</a></span>")."
<div style='clear:both'></div>

</div>
".opt_case($f_RowNum+1 & 1, "</td>","</td></tr>")."



15.10.2008, 15:35
Ответить | Цитировать
VlastV
qb.digital

Зарегистрирован:
2005-11-02
Сообщений: 202

А нельзя просто сделать, в префиксе:
Код:
<table><tr>

В суффиксе:
Код:
</tr></table>

А в списке:
Код:

" . ($f_RowNum && $f_RowNum % 2 == 0, "</tr><tr>" : null) . "
<td>
INFO
<td>



Разработка сайтов на CMS NetCat. Портфолио http://vlastv.ru/ E-mail: me [at] vlastv [dot] ru ; ICQ: 66117050
15.10.2008, 16:30
Ответить | Цитировать
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

VlastV писал(а):
А нельзя просто сделать, в префиксе:
Код:
<table><tr>

В суффиксе:
Код:
</tr></table>

А в списке:
Код:

" . ($f_RowNum && $f_RowNum % 2 == 0, "</tr><tr>" : null) . "
<td>
INFO
<td>



Я не совсем понял, что это даст....
Проблема то не в том, чтобы вывести в две колонки....
Оно работает нормально... и в моем примере...

Суть в том что дизайнер нарисовал так, что мне нужно для каждой td свой css- класс
применить....

Грубо говоря в каждую из четырех td таблицы 2 на 2, нужно вставить оригинальную картинку.


так вот извратившись
".opt_case($f_RowNum+1 & 1, "<tr><td width=50% valign=top ".opt_case($table_row_num &
1,"class='nc_td_1'","class='nc_td_3'" )." >","<td width=50% ".opt_case($table_row_num &
1,"class='nc_td_2'","class='nc_td_4'" )." valign=top>") ."

(по сути я смотрю не только четность ячейки td но и в какой строке таблицы она находится)

я могу отследить каждую из четырех td и применить к ней свой класс

16.10.2008, 05:58
Ответить | Цитировать
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

Я даже под другому несколько вопрос задам, неважно в общем-то какую задачу я решаю.

Проблема в том, что есть компонент, рабочий, он был по умолчанию в системе, когда ставишь,
3.12, есть в ней компонент Новости.

Если я в этом компоненте, ничего больше не меняя, вставлю любой php код (с возвратом $result.=), в блоке вывода объекта, то получу дублирование объектов в админке.

То есть это принципиальный вопрос : почему так получается и как с этим бороться ?

16.10.2008, 07:33
Ответить | Цитировать
vitema

Зарегистрирован:
2008-10-12
Сообщений: 11

Вопрос по php коду остался открытым.

Свою проблему я решил, простым и топорным способом, при условии, что всегда надо выводить по 4 новости.
В блоке объект в списке

".opt($f_RowNum==0, "<tr><td width=50% valign=top class='nc_td_1'>") ."
".opt($f_RowNum==1, "<td width=50% valign=top class='nc_td_2'>") ."
".opt($f_RowNum==2, "<tr><td width=50% valign=top class='nc_td_3'>") ."
".opt($f_RowNum==3, "<td width=50% valign=top class='nc_td_4'>") ."

вывод новости


".opt_case($f_RowNum+1 & 1, "</td>","</td></tr>")."
198 196 2008-10-16 07:33:31 7561
Описание проекта