Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Нужен совет по дорработке Аддона к Реферал +

Форум для авторов модов для phpBB 2.0.x.
velo
phpBB 2.0.1
Сообщения: 252
Стаж: 16 лет 7 месяцев

Нужен совет по дорработке Аддона к Реферал +

Сообщение velo »

Собственно говоря решил я сделать под себя Рефералку, учитывающую переходы по ссылкам пользователей (не регистрацию)

что делается:
Проверка существования захода с данного IP по ссылке конкретного пользователя, если такого перехода не было, то добавляется строка в БД (или если такой переход был более 5 дней назад), и создается строка (или плюсуется переход) к другой таблице, где создаются данные пользователей. В ней считаются: переходы всего, переходы в этом месяце и уникальные АйПи.

Для учета переходов по месяцам в таблице созданы отдельные столбцы наприм: refer_month_1107, refer_month_1207 и т.д.
Они прописаны вручную.
Прошу помощи для автоматического добавления таких столбцов, по наступлению нового месяца (не crontab), а при любом первом переходе в этом месяце.

Полный код Аддона прилагаю (без описания создания таблиц)

PS данный код можно сделать отдельным модом, без применения Referral Plus. Просто из него используется добавление к линкам окончания с Айди Реферала.

Часть кода отвечающая за внесение в таблицу данных:

Код: Выделить всё

if ($reffered == $refer_id)
		{
			$sql = "SELECT * 
			FROM " . REFER_LINK_TABLE . " 
			WHERE user_id = '" . $refer_id ."'";
					if ( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not update refer_count', '', __LINE__, __FILE__, $sql);
					} 

			if ($linkrow = $db->sql_fetchrow($result3))
			{
				$user_ref = $linkrow['user_id'];
			}
			$db->sql_freeresult($result3);
			
			if( $user_ref == '' ) 
			{
				$sql  = "INSERT INTO " . REFER_LINK_TABLE . " (user_id , refer_total, refer_month_". $month . $year ." , refer_unical) VALUES ('$refer_id', '1', '1', '1')" ;
				
				if (!$db->sql_query($sql))
				{
				message_die(GENERAL_ERROR, 'Error in refer link insert', '', __LINE__, __FILE__, $sql);
				} 
			}
			else
			{
				$sql = "UPDATE " . REFER_LINK_TABLE . " SET 
				refer_total = refer_total+1,
				refer_month_". $month . $year ." = refer_month_". $month . $year ."+1,
				refer_unical = refer_unical+$unical 
				WHERE user_id = '$refer_id'";
					if ( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Could not update refer_count', '', __LINE__, __FILE__, $sql);
					}
		
			}
		}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WORK: phpBB3 3.0.8 + Portal XL 5.0 + MODs + Custom,
PHP Version 5.3.3-7+squeeze25, Apache/2.2.9 (Debian), MySQL(i) 5.1.73-1+deb6u1-log

Вернуться в «Для авторов (phpBB 2.0.x)»