Как использовать $txt['...']?

Автор svobodniy, 05 февраля 2009, 01:54:50

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

svobodniy

Дополняю мод автосклейки сообщений. Задался целью добавить вывод промежутка времени, через который было добавлено сообщение. Все удалось, кроме одного...

Переменная $_AMDP_time выводится в сообщении на форуме. Если ей придать значение:
$_AMDP_time = "$_AMDP_min min. $_AMDP_sec sec.";
то все нормально показывается (например, 5 min. 12 sec.)... Но хотелось бы более универсальный вид и я попытался сделать что-то подобное:
$_AMDP_time = "$_AMDP_min $txt['AutoMergePost_min'] $_AMDP_sec $txt['AutoMergePost_sec']";
и она уже выдает ошибку. Перепробовал много способов расставления скобок, кавычек и др. - не выходит... PHP не изучал, основываюсь на чистой логике. Пытался найти инфу в инете, но особо ничего не понял.

З.Ы. $_AMDP_time, $_AMDP_min, $_AMDP_sec - переменные в Subs-Post.php, $txt['AutoMergePost_min'] и $txt['AutoMergePost_sec'] из Modifications.english.php...


svobodniy

Уже делал так... Вроде логично, но выдается ошибка:
ЦитироватьParse error: syntax error, unexpected ',' in Y:\home\localhost.ru\www\forum\Sources\Subs-Post.php on line 2912

Убираешь запятые, получаешь:
ЦитироватьParse error: syntax error, unexpected T_VARIABLE in Y:\home\localhost.ru\www\forum\Sources\Subs-Post.php on line 2912

Уже полтора часа только над этим бьюсь tickedoff wallbash


svobodniy

Только что хотел это написать... При таком варианте выводит только 2 цифры... Может он не может запросить у лэнг-файлов переменные $txt['AutoMergePost_min'] и $txt['AutoMergePost_sec']?

svobodniy

Реально. Если обозначить переменные $txt['AutoMergePost_min'] и $txt['AutoMergePost_sec'] именно в этом же файле, то он их спокойно использует... Так почему он не может взять из ленг файла? Хотя в этом моде не только эти 2 переменные из ленга... И остальные нормально отображаются :(

digger®

Цитата: svobodniy от 05 февраля 2009, 03:23:34
Реально. Если обозначить переменные $txt['AutoMergePost_min'] и $txt['AutoMergePost_sec'] именно в этом же файле, то он их спокойно использует... Так почему он не может взять из ленг файла? Хотя в этом моде не только эти 2 переменные из ленга... И остальные нормально отображаются :(

Вы уверены что в том файле который вы модифицируете, подключается Modifications.english.php ?

svobodniy

#7
Все! Я ужасно извиняюсь! Выход был простой. В функции, в которую вносится изменение в глобальных переменных не было $txt. Добавил - заработало.
Цитироватьglobal $smcFunc, $user_info, $topic, $modSettings, $txt;

Огромное спасибо за наводку! Буду познавать модостроение дальше :)

З.Ы. На всякий случай прикреплю мод. Может кому понадобится :) Мод для автоматического склеивания подряд идущих сообщений от одного пользователя в течении определенного времени - Auto Merge Double Post. Оригинал взят отсюда. В оригинале отображал текущее время при склейке, я сделал, что бы отображал через сколько минут и секунд произошло добавление сообщения.

З.Ы.2. Мод только для SMF 2+ и имеет только english и russian_utf8.