We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 9661
    • 24 Posts
    WebLoginPE - список полей по фильтру

    [!WebLoginPE? ......$usersList=`оплатившие рекламу:default:default:username:ASC:payment()`!]

    нормально и корректно выдаёт список юзеров с оплатой (payment)
    а как выдать НАОБОРОТ - юзеров без оплаты ?
    различные выражения типа payment(null) payment(’’) результатов не дают (список пуст)
    -------------------------------------------------------------------------------------------
    как выкрутиться?
      • 29487
      • 385 Posts
      Находим в webloginpe.class.php загадочный код:
      							foreach ($theUser as $attribute => $value)
      							{
      								if (empty($theUser[$filterBy]) || $theUser[$filterBy] == '' && $filterBy !== 'webgroup')
      								{
      									$username = $theUser['username'];
      									unset($CompleteUserList[$username]);
      								}
      
      								if (isset($filterValue) && $filterBy !== 'webgroup')
      								{
      									if ($theUser[$filterBy] !== '' && !empty($theUser[$filterBy]))
      									{
      										$isValue = strpos(strtolower($filterValue), strtolower($theUser[$filterBy]));
      										$isValueAlt = strpos(strtolower($theUser[$filterBy]), strtolower($filterValue));
      										if ($isValue === false && $isValueAlt === false)
      										{
      											$username = $theUser['username'];
      											unset($CompleteUserList[$username]);
      										}
      									}
      								}
      							}
      


      Непонятно: зачем здесь цикл, зачем проверяется на webgroup, если выше уже проверялось, и зачем проверяется на пустую строку, если уже empty стоит. Меняем на такой:

      							if (isset($filterValue))
      							{
      								if (!empty($theUser[$filterBy]))
      								{
      									$isValue = strpos(strtolower($filterValue), strtolower($theUser[$filterBy]));
      									$isValueAlt = strpos(strtolower($theUser[$filterBy]), strtolower($filterValue));
      									if ($filterValue=='null' || $isValue === false && $isValueAlt === false)
      									{
      										$username = $theUser['username'];
      										unset($CompleteUserList[$username]);
      									}
      								}
      								elseif ($filterValue=='null') continue;
      							}
      							if (empty($theUser[$filterBy]))
      							{
      								$username = $theUser['username'];
      								unset($CompleteUserList[$username]);
      							}
      


      Теперь payment(null) будет работать.
        • 9661
        • 24 Posts
        ай, киса Temus!!! УМНИЦА
        а я уже думала, что НИКТО не знает ......
        всё работает - СПАСИБО БОЛЬШОЕ