+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL Start: 07/13/2011 *
+ * =================== Last change: 07/13/2011 *
+ * *
+ * -------------------------------------------------------------------- *
+ * File : fix_refsystem.php *
+ * -------------------------------------------------------------------- *
+ * Short description : Generate refback table including all refs *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung : Refback-Tabelle mit allen Refs generieren *
+ * -------------------------------------------------------------------- *
+ * $Revision:: $ *
+ * $Date:: $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team *
+ * For more information visit: http://www.mxchange.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
+ * MA 02110-1301 USA *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+ die();
+} // END - if
+
+// Sanity-check: Do we have ref level 0?
+$result = SQL_QUERY('SELECT `id` FROM `{?_MYSQL_PREFIX?}_refsystem` WHERE `level`=0 OR `level` IS NULL', __FILE__, __LINE__);
+if (!SQL_HASZERONUMS($result)) {
+ // Remove index temporaly
+ SQL_ALTER_TABLE('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid_level`', __FILE__, __LINE__);
+
+ // Upgrade refsystem, ref-level 0 is silly here
+ SQL_QUERY('UPDATE `{?_MYSQL_PREFIX?}_refsystem` SET `level`=`level`+1', __FILE__, __LINE__);
+
+ // Add it again
+ SQL_ALTER_TABLE('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` ( `userid`, `level` )', __FILE__, __LINE__);
+
+ // Rebuild cache
+ rebuildCache('refsystem', 'refsystem');
+} // END - if
+
+// Free result
+SQL_FREERESULT($result);
+
+// Reset the table
+SQL_QUERY('TRUNCATE TABLE `{?_MYSQL_PREFIX?}_user_refs`', __FILE__, __LINE__);
+
+// Begin with all users in level one
+$result_direct = SQL_QUERY('SELECT
+ `userid`
+FROM
+ `{?_MYSQL_PREFIX?}_user_data`
+WHERE
+ `refid`=0 OR `refid` IS NULL
+ORDER BY
+ `userid` ASC', __FILE__, __LINE__);
+
+// Do we have entries?
+if (!SQL_HASZERONUMS($result_direct)) {
+ // When 'walk' through all users
+ while ($content = SQL_FETCHARRAY($result_direct)) {
+ // Update refback table
+ //* DEBUG: */ debugOutput('userid=' . $content['userid']);
+ updateReferalTable($content['userid']);
+ } // END - while
+} // END - if
+
+// Free result
+SQL_FREERESULT($result_direct);
+
+// [EOF]
+?>