if ( $message['member']['msn'] <> 0) - знатокам php посвящается

Автор Beer, 16 июля 2013, 22:37:50

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

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

Beer

 Значение поля member.msn решил использовать под свои нужды - прописал туда Null и значения, а в Display.template.php хочу вывести по условию:

if ( $message['member']['msn'] <> 0)
echo '
', $message['member']['msn'],'-NO <div class="video"><a href="/../../video-gallery/user/',$message['member']['blurb'],'.html" target="_blank" ><img src="', $settings['images_url'], '/blank.gif" alt="" title="Моя ссылка!" width="80" height="12" align="absbottom"/></a></div>';
//Если нету данных (данных >0 в поле msn) выводим это:
else
echo '
<div class="video_no">
'Нету нихрена'
</div>';


Но получаю Array при любых способах вывода...

Вот как-то так, малость сумбурно...

GeorG

Всё работает, попробуйте задать значение переменной, перед условием:
$message['member']['msn'] = null;
потом измените на скажем:
$message['member']['msn'] = '123';

Вы что-то там не правильно задаёте видимо массиве, а условие рабочее.

p.s. Проверьте, что там в переменной у вас вообще, правильные ли данные. Например так:
echo '<pre>';
print_r($message['member']['msn']);
echo '</pre>';
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Beer

 Если я условие вывожу из другого поля, напр. :
if (!empty($settings['show_blurb']) && $message['member']['blurb'] > 0)
Это поле я задействовал под другие свои нужды, там выводится все гуд.
Сдается мне, что тут что-то с преобразованием данных происходит.

Пропиши этот код в Display.template.php ниже
// Show the member's gender icon?
И посмотри.
Я уже все вырубил на сегодня - эксперименты окончены....

GeorG

Вставил такой код:
$message['member']['msn'] = null;
if ( $message['member']['msn'] != 0)
echo '
', $message['member']['msn'],'-NO <div class="video"><a href="/../../video-gallery/user/',$message['member']['blurb'],'.html" target="_blank" ><img src="', $settings['images_url'], '/blank.gif" alt="" title="Моя ссылка!" width="80" height="12" align="absbottom"/></a></div>';
//Если нету данных (данных >0 в поле msn) выводим это:
else
echo '
<div class="video_no">Нету нихрена
</div>';


Всё работает.

Говорю, посмотрите что у вас в переменной, если б это сделали, то удивили, что там задан массив, а не значение переменной, на что вы проверяете.
У меня там это:
Array
(
    [name] =>
    [href] =>
    [link] =>
    [link_text] =>
)
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Beer

GeorG, мои познания в php крайне ограничены  buck....
Твой вариант кода выводит только второе условие.

Как посмотреть значение переменной?

GeorG

Цитата: Beer от 17 июля 2013, 11:22:04Твой вариант кода выводит только второе условие.

Как посмотреть значение переменной?
На эти вопросы, ответ в первом моём сообщение - http://www.simplemachines.ru/index.php?topic=16281.msg128602#msg128602
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Beer

$message['member']['msn'] = null; - первое значение
$message['member']['msn'] = '123';  - второе значение. Т.е. код работает, но если сделать:

$message['member']['msn'] = null;
if ( $message['member']['msn'] != 0)
echo '
<div>', $message['member']['msn'],'</div>';
else
echo '
<div>', $message['member']['msn'],'</div>';


Не выводит ничего..., хотя я думал, что выведет значение ', $message['member']['msn'],' при любом раскладе.

GeorG

Что вывело значение, сделайте так:
$message['member']['msn'] = null;
    if ( $message['member']['msn'] != 0)
    echo '
    <div>', print_r($message['member']['msn']),'</div>';
    else
    echo '
    <div>', print_r($message['member']['msn']),'</div>';


Уберите впереди:
$message['member']['msn'] = null;
И увидите массив.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Beer

Сенкс за помощь!

В первом случае всегда выводит 1

Во втором  случае
//$message['member']['msn'] = null;
есть полезные данные, как-то 69 - это id юзера, которое прописано в поле msn, а где в поле  null - выводит 1, в общем вывод такой:


Array ( [name] => [href] => [link] => [link_text] => ) 1

или
Array ( [name] => 69 [href] => http://members.msn.com/69 [link] =>  [link_text] => 69 )


GeorG

Так и должно быть. Если бы внимательно прочитали мой первый пост, то сразу разобрались.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Beer

GeorG, не томи - то, что очевидно для тебя, для меня - темный лес.....

Beer