Речь идет о доработке viewforum.php - обозначение вложения в начале заголовка топика.
В массиве переменных для tpl-файла при установке мода добавляется такая строка:
- Код: Выделить всё
'TOPIC_ATTACHMENT_IMG' => topic_attachment_image($topic_rowset[$i]['topic_attachment']),
Мне нужно сделать в этом же массиве 'TOPIC_ATTACHMENT_TXT' по условию: если 'TOPIC_ATTACHMENT_IMG' равен '' (пустое место, нет "скрепки"), то и 'TOPIC_ATTACHMENT_TXT' - пуст. Если же 'TOPIC_ATTACHMENT_IMG' означает вывод "скрепки", то 'TOPIC_ATTACHMENT_TXT' это некий символ (неважно сейчас как он получается, пусть пока будет $lang['Symbol_attachment'].
Первый вариант - самый громоздкий. Перед определением массива я через if - else проверяю значение
- Код: Выделить всё
topic_attachment_image($topic_rowset[$i]['topic_attachment']) == ''
и присваиваю переменной $topic_attachment_txt значение '' или $lang['Symbol_attachment']. Затем в массиве помещаю строку:
- Код: Выделить всё
'TOPIC_ATTACHMENT_TXT' => $topic_attachment_txt,
Второй путь более компактный. Перед определением массива даю такую строку:
- Код: Выделить всё
$topic_attachment_txt = ( topic_attachment_image($topic_rowset[$i]['topic_attachment']) == '' ) ? '' : $lang['Symbol_attachment'];
И та же строка в массиве:
- Код: Выделить всё
'TOPIC_ATTACHMENT_TXT' => $topic_attachment_txt,
Третий путь - самый компактный. Последняя логическая формула размещается прямо правой части массива, т. е. после строки, процитированной самой первой (добавление, сделанное при установке мода), помещаю следующую:
- Код: Выделить всё
'TOPIC_ATTACHMENT_TXT' => ( topic_attachment_image($topic_rowset[$i]['topic_attachment']) == '' ) ? '' : $lang['Symbol_attachment'],
Все три варианта проверены и работают на тестовом форуме. Но у меня нет уверенности, что при последнем, самом компактном варианте, в каких-то, неизвестных мне условиях, не возникнут проблемы...
Прошу гуру дать ответ: можно ли быть уверенным, что с третьим вариантом все будет в порядке.
И сразу еще один вопрос. Смотрим опять первую процитированную строку: справа от => нет символа $, хотя все остальные строки в правой части массива начинаются с "доллара". Или это связано с тем, что topic_attachment_image не переменная, а функция? В attach_mod/displaying.php нашел такую строку:
- Код: Выделить всё
function topic_attachment_image($switch_attachment)
Прошу извинить, если вопросы идиотские, но я как не знал PHP, так и не знаю, только пытаюсь разобраться в текстах программ форума.






