Работа с аффилиатами

#
Работа с аффилиатами
Не нашел материал по работе с аффилиатами.
Пожалуйста подскажите, как отобразить список аффилиатов пользователя, который зашел на сат? Желательно кодом сразу.
В форуме даже слово аффилиат не встречается, неужели никто ничего с этим не делал?
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Работа с аффилиатами
В документации есть готовая функция у класса Affiliate, ее и используйте GetAllUsersForAffiliate()
#
Re: Работа с аффилиатами
Не сильно то понятно вообще как это использовать...
$SiteUsers = new SiteUsers();
$site_users_id = $SiteUsers->GetCurrentSiteUser();
$result = GetAllUsersForAffiliate($site_users_id);
echo $result;


Так - выводится ошибка.
Fatal error: Call to undefined function getallusersforaffiliate() in /home/.../.../docs/data_templates/148.htm on line 9
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Работа с аффилиатами
$SiteUsers = new SiteUsers();
$site_users_id = $SiteUsers->GetCurrentSiteUser();
$affiliate = new affiliate();
$result = $affiliate->GetAllUsersForAffiliate($site_users_id);
print_r ($result);

#
Re: Работа с аффилиатами
Теория и практика ООП.
Подсказываю: прежде чем вызывать метод класса (в данном случае это метод GetAllUsersForAffiliate() класса Affiliate), нужно создать экземпляр класса, т.е. объект, а потом уже вызывать методы объекта.

То есть вот то что вы написали
$result = GetAllUsersForAffiliate($site_users_id);
это, простите, абстрактная чушь! Нету в языке php оператора или функции с названием GetAllUsersForAffiliate. Вот echo есть, date() есть, а вот этой-то вот нету

Правильно так:
$Affiliate = &singleton('affiliate');
$result = $Affiliate->GetAllUsersForAffiliate($site_users_id);


Хотя, конечно, да - описание этого метода в API (http://hostcms.ru/api/HostCMS_5/affiliate.html#methodGetAllUsersForAffiliate) немного удивляет
Заказов не беру. Консультирую редко.
#
Re: Работа с аффилиатами
ffardz, опередили меня, пока ответ писал вы просто код выложили.
Но к слову сказать, с точки зрения паттернов программирования более правильной все же будет запись
$Affiliate = &singleton('affiliate');
а не
$Affiliate = new affiliate();


В первом случае мы создаем ссылку на единственный объект в памяти, а во втором плодим еще один экземпляр объекта - расходуем лишнюю память и создаем условия для возможного нарушения целостности данных.
Заказов не беру. Консультирую редко.
#
Re: Работа с аффилиатами
Пока борюсь с отображением аффилиатов, возник второй вопрос:

Как добавить при регистрации привлеченного пользователя к тому, кто его привлек?

$Affiliate = &singleton('Affiliate');
$param['affiliate_id'] = ???; // идентификатор связи пользователя и аффилиата ЧТО ЭТО?
$param['site_users_id'] = 217; // идентификатор пользователя, которого привел аффилиат
$param['affiliate_plans_id']=''; // идентификатор патрнерской программы - А ЕСЛИ ЕЕ НЕТ, то что делать?
$param['affiliate_site_users_id'] = ?????; // идентификатор аффилиата - Кто привлек или кого привлекли?
$param['affiliate_active'] = true; // флаг активности польщователя аффилиата - ЭТО ЧТО?
$result = $Affiliate->InsertAffiliate($param);

Помогите записать:
ID пользователя = 16
ID привлеченного им пользователя = 217
ID доп. свойства юзера, в котором прописан ID того, кто привлек = 14 (myfriend)

Что куда писать, чтобы этот новый пользователь добавился к уже зарегиному юзеру?
Как при регистрации пользователя, тому чей ID стоит в доп. свойстве юзера внести этого нового юзера в качестве аффилированного???
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Работа с аффилиатами
Из ТДС интернет магазина-корзина можно взять готовый код. Там при регистрации юзера идет запись в БД кто его привлек и все остальное.. Так что просто скопируйте и все.

// Проверяем куки пользователя на предмет наличия в них логина аффилиата
if (isset($_COOKIE['affiliate_name']))
{
$affiliate = new affiliate();                     
$affiliate_login = quote_smart($_COOKIE['affiliate_name']);                     
$affiliate_row = $SiteUsers->GetSiteUserByLogin($affiliate_login);
                     
if ($affiliate_row)
{
$affiliate_id = $affiliate_row['site_users_id'];

// Проводим вставку пользователя аффилиата   
               $affiliate->InsertAffiliate(array('site_users_id' => $result, 'affiliate_plans_id' => 0, 'affiliate_site_users_id' => $affiliate_id, 'affiliate_active' => 1));
}
}
#
Re: Работа с аффилиатами
А откуда берется в этом коде логин того, кто привлек?
У меня он хранится в доп свойстве myfriend.
$affiliate_login = quote_smart($_COOKIE['affiliate_name']);  - откуда он берется?
Не кидайте камнями только, пытаюсь разбираться в этом во всем...
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Работа с аффилиатами
В партнерской ссылке есть логин партнера. И в коде написано "//Проверяем куки пользователя на предмет наличия в них логина аффилиата" - значит из куков.
Авторизация