Webboard

Pełna wersja: Zmienne w masowej korespondencji
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

LikeLoveHate

wersja skryptu MyBB: 1.8.5
adres forum: zbędne - chociaż wiem, że wymagane :P
na czym polega problem (screen, opis, komunikaty):

Witajcie, chciałbym się dowiedzieć jakie zmienne (prócz tych 4 podstawowych) są dopuszczane w masowej korespondencji? Potrzebowałbym m.in. zmienną od hasła np. a pierwszy raz tworzę masową korespondencję, więc proszę o wyrozumiałość xD
(18.08.2015, 13:07)LikeLoveHate napisał(a): [ -> ]adres forum: zbędne - chociaż wiem, że wymagane [emoji14]

Nie ma domyslnie ich wiecej, sa tylko te 4.

Wysłane z mojego LG-P700 przy użyciu Tapatalka

LikeLoveHate

O link do supportu się nie martw, jest na swoim miejscu :) KLIK!

A co trzeba zrobić, żeby było ich więcej? Gdzie muszę pogrzebać?
hmmmm
może jeszcze coś da się wyciągnąć

sprawdz pierwszą funkcje w functions_massmail.php

LikeLoveHate

- ale co "kore"? :D zjadłem dalszą część tematu czy jak?

- na pewno pierwszą? Bo ja tu nie widzę generowania tych zmiennych... Z resztą w całym pliku nie widzę stosownych zapytań do DB
Kod PHP:
function build_mass_mail_query($conditions)
{
    global 
$db;

    if(!
is_array($conditions))
    {
        return 
'';
    }

    
$search_sql 'u.allownotices=1';

    
// List of valid LIKE search fields
    
$user_like_fields = array("username""email");
    foreach(
$user_like_fields as $search_field)
    {
        if(
$conditions[$search_field])
        {
            
$search_sql .= " AND u.{$search_field} LIKE '%".$db->escape_string_like($conditions[$search_field])."%'";
        }
    }

    
// LESS THAN or GREATER THAN
    
$direction_fields = array("postnum");
    foreach(
$direction_fields as $search_field)
    {
        
$direction_field $search_field."_dir";
        if(!empty(
$conditions[$search_field]) && $conditions[$direction_field])
        {
            switch(
$conditions[$direction_field])
            {
                case 
"greater_than":
                    
$direction ">";
                    break;
                case 
"less_than":
                    
$direction "<";
                    break;
                default:
                    
$direction "=";
            }
            
$search_sql .= " AND u.{$search_field}{$direction}'".(int)$conditions[$search_field]."'";
        }
    }

    
// Time-based search fields
    
$time_fields = array("regdate""lastactive");
    foreach(
$time_fields as $search_field)
    {
        
$time_field $search_field."_date";
        
$direction_field $search_field."_dir";
        if(!empty(
$conditions[$search_field]) && $conditions[$time_field] && $conditions[$direction_field])
        {
            switch(
$conditions[$time_field])
            {
                case 
"hours":
                    
$date $conditions[$search_field]*60*60;
                    break;
                case 
"days":
                    
$date $conditions[$search_field]*60*60*24;
                    break;
                case 
"weeks":
                    
$date $conditions[$search_field]*60*60*24*7;
                    break;
                case 
"months":
                    
$date $conditions[$search_field]*60*60*24*30;
                    break;
                case 
"years":
                    
$date $conditions[$search_field]*60*60*24*365;
                    break;
                default:
                    
$date $conditions[$search_field]*60*60*24;
            }

            switch(
$conditions[$direction_field])
            {
                case 
"less_than":
                    
$direction ">";
                    break;
                case 
"more_than":
                    
$direction "<";
                    break;
                default:
                    
$direction "<";
            }
            
$search_sql .= " AND u.{$search_field}{$direction}'".(TIME_NOW-$date)."'";
        }
    }

    
// Usergroup based searching
    
if($conditions['usergroup'])
    {
        if(!
is_array($conditions['usergroup']))
        {
            
$conditions['usergroup'] = array($conditions['usergroup']);
        }

        
$conditions['usergroup'] = array_map('intval'$conditions['usergroup']);

        foreach(
$conditions['usergroup'] as $usergroup)
        {
            switch(
$db->type)
            {
                case 
"pgsql":
                case 
"sqlite":
                    
$additional_sql .= " OR ','||additionalgroups||',' LIKE '%,{$usergroup},%'";
                    break;
                default:
                    
$additional_sql .= " OR CONCAT(',',additionalgroups,',') LIKE '%,{$usergroup},%'";
            }
        }
        
$search_sql .= " AND (u.usergroup IN (".implode(","$conditions['usergroup']).") {$additional_sql})";
    }

    return 
$search_sql;

No zjadłeś trochę tematu.

: https://github.com/mybb/mybb/blob/a90f96...il.php#L65
Wyżej tej linijki masz zapytanie które wyciąga potrzebne dane z bazy.

LikeLoveHate

Bo szukałem rozwiązania po podobnych tematach i zapomniałem do pisać... :/

Dzięki! I rozumiem teraz, że będą działać każde zmienne z $user i $mybb?
No jeżeli dodasz to do zapytania oraz do tej tablicy to tak.