Beispiel #1
0
 function setUp()
 {
     parent::setUp();
     require_code('authors');
     add_author($author = 'author1', $url = 'www.google.com', $forum_handle = 3, $description = 'happy', $skills = 'play', $meta_keywords = '', $meta_description = '');
     add_author($author = 'author2', $url = 'www.yahoo.com', $forum_handle = 3, $description = 'welcome', $skills = 'drama', $meta_keywords = '', $meta_description = '');
     // Test the forum was actually created
     $this->assertTrue('author1' == $GLOBALS['FORUM_DB']->query_value('authors', 'author', array('author' => 'author1')));
 }
Beispiel #2
0
<?php

/**
 * Created by PhpStorm.
 * User: Bogdan
 * Date: 8/21/2015
 * Time: 9:34 AM
 */
include '../inc/functions.php';
if ($_POST) {
    if (!($author = trim($_POST['author']) != '')) {
        echo '<div id="error"> You didn\'t enter an author </div>';
    } else {
        $author = trim($_POST['author']);
        if (add_author($author)) {
            echo 'The Author has been added';
        }
    }
}
Beispiel #3
0
 /**
  * Standard import function.
  *
  * @param  object			The DB connection to import from
  * @param  string			The table prefix the target prefix is using
  * @param  PATH			The base directory we are importing from
  */
 function import_authors($db, $table_prefix, $old_base_dir)
 {
     require_code('authors');
     $rows = $db->query('SELECT uid FROM ' . $table_prefix . 'news');
     foreach ($rows as $row) {
         $author_data = $db->query('SELECT username, email FROM ' . $table_prefix . 'users WHERE id=' . strval($row['uid']));
         $url = isset($author_data[0]['email']) && $author_data[0]['email'] != '' ? 'mailto:' . $author_data[0]['email'] : '';
         $author_name = isset($author_data[0]['username']) && $author_data[0]['username'] != '' ? $author_data[0]['username'] : '';
         add_author($author_name, $url, NULL, '', '');
     }
 }
Beispiel #4
0
    }
    $valid_authors[ARTIST]['value'] = trim(filter_input(INPUT_POST, ARTIST, FILTER_SANITIZE_STRING));
    $valid_authors[ARTIST]['isValid'] = strlen($valid_authors[ARTIST]['value']) > 2;
    if (!$valid_authors[ARTIST]['isValid']) {
        $errMsg = $valid_authors[ARTIST]['errMsg'] = 'Le déssinateur est non valid!';
    }
    foreach ($valid_authors as $fields) {
        if (!$fields['isValid']) {
            $isFormValid = false;
            break;
        }
    }
}
if (array_key_exists('create_submit', $_POST)) {
    if ($isFormValid) {
        add_author($valid_authors[WRITER]['value'], $valid_authors[ARTIST]['value']);
        header('Location: index.php');
        exit;
    }
} elseif (array_key_exists('edit_submit', $_POST)) {
    if ($isFormValid) {
        update_author($_GET['id'], $valid_authors[WRITER]['value'], $valid_authors[ARTIST]['value']);
        $isUpdated = true;
    }
} elseif (array_key_exists('delete_submit', $_POST)) {
    delete_author($_GET['id']);
    header('Location: index.php');
    exit;
} elseif (array_key_exists('close_submit', $_POST)) {
    header('Location: index.php');
    exit;
Beispiel #5
0
 /**
  * Standard import function.
  *
  * @param  object			The DB connection to import from
  * @param  string			The table prefix the target prefix is using
  * @param  PATH			The base directory we are importing from
  */
 function import_authors($db, $table_prefix, $file_base)
 {
     require_code('authors');
     $rows = $db->query('SELECT * FROM ' . $table_prefix . 'authors', NULL, NULL, true);
     if (is_null($rows)) {
         return;
     }
     foreach ($rows as $row) {
         $test = $GLOBALS['SITE_DB']->query_value_null_ok('authors', 'author', array('author' => $row['author']));
         if (is_null($test)) {
             add_author($row['author'], $row['url'], $row['forum_handle'], $this->get_lang_string($db, $row['description']), $this->get_lang_string($db, $row['skills']));
         }
     }
     $this->_import_catalogue_entry_linkage($db, $table_prefix, 'author', NULL);
 }
Beispiel #6
0
 function parse(&$tree, $param = "", $root = "")
 {
     global $content_provider;
     $ret = '';
     $tag = $this->name;
     $close_tag = "";
     # Pre-fixing XHTML to wiki tags
     $xhtml_conversion = $this->convert_xhtml_tags($tag, $tree, $ret);
     if ($tag == 'SPACE') {
         return ' ';
         # Speedup
     } else {
         if ($tag == 'ARTICLES') {
             # dummy, to prevent default action to be called
         } else {
             if ($tag == 'AUTHORS') {
                 # dummy, to prevent default action to be called
             } else {
                 if ($tag == 'AUTHOR') {
                     add_author($this->sub_parse($tree));
                     return "";
                 } else {
                     if ($tag == 'ARTICLE') {
                         $title = isset($this->attrs["TITLE"]) ? $this->attrs["TITLE"] : "Untiteled";
                         $id = $this->internal_id($title);
                         $ret .= "<article id='{$id}'>\n";
                         $ret .= "<title>" . urldecode($title) . "</title>\n";
                     } else {
                         if ($tag == 'LINK') {
                             return $this->handle_link($tree);
                             # Shortcut
                         } else {
                             if ($tag == 'EXTENSION') {
                                 return $this->handle_extensions($tree);
                                 # Shortcut
                             } else {
                                 if ($tag == 'HEADING') {
                                     $level = count($tree->sections);
                                     $wanted = $this->attrs["LEVEL"];
                                     $ret .= $this->close_last("para", $tree);
                                     while ($level >= $wanted) {
                                         $x = array_pop($tree->sections);
                                         if ($x == 1) {
                                             $ret .= $this->close_last("section", $tree);
                                         }
                                         $level--;
                                     }
                                     while ($level < $wanted) {
                                         $level++;
                                         if ($level < $wanted) {
                                             array_push($tree->sections, 0);
                                         } else {
                                             $ret .= $this->ensure_new("section", $tree, "<section>");
                                             array_push($tree->sections, 1);
                                         }
                                     }
                                     $ret .= "<title>";
                                 } else {
                                     if ($tag == 'PARAGRAPH' || $tag == 'XHTML:P') {
                                         # Paragraph
                                         $ret .= $this->close_last("para", $tree);
                                         $ret .= $this->ensure_new("para", $tree);
                                     } else {
                                         if ($tag == 'LIST') {
                                             # List
                                             $ret .= $this->close_last("para", $tree);
                                             $list_type = strtolower($this->attrs['TYPE']);
                                             if ($list_type == 'bullet' || $list_type == 'ident' || $list_type == 'def') {
                                                 $ret .= '<itemizedlist mark="opencircle">';
                                             } else {
                                                 if ($list_type == 'numbered') {
                                                     $ret .= '<orderedlist numeration="arabic">';
                                                 }
                                             }
                                         } else {
                                             if ($tag == 'LISTITEM') {
                                                 # List item
                                                 $ret .= $this->close_last("para", $tree);
                                                 $ret .= "<listitem>\n";
                                                 $ret .= $this->ensure_new("para", $tree);
                                             } else {
                                                 if ($tag == 'TABLE') {
                                                     # Table
                                                     $ret .= $this->add_new("table", $tree);
                                                     #			$ret .= "<title></title>" ;
                                                     $ret .= $this->make_tgroup($tree);
                                                     $ret .= "<tbody>";
                                                 } else {
                                                     if ($tag == 'TABLEROW') {
                                                         # Tablerow
                                                         $retl_before = strlen($ret);
                                                         $ret .= $this->add_new("row", $tree);
                                                         $retl_after = strlen(trim($ret));
                                                     } else {
                                                         if ($tag == 'TABLEHEAD') {
                                                             # Tablehead
                                                             $ret .= $this->add_new("entry", $tree);
                                                         } else {
                                                             if ($tag == 'TABLECELL') {
                                                                 # Tablecell
                                                                 $old_ret = $ret;
                                                                 $ret .= $this->add_new("entry", $tree);
                                                             } else {
                                                                 if ($tag == 'TABLECAPTION') {
                                                                     # Tablecaption
                                                                     if ($param != "DOCAPTION") {
                                                                         return "";
                                                                     }
                                                                     #			$ret .= $this->add_new ( "title" , $tree ) ;
                                                                 } else {
                                                                     if ($tag == 'BOLD' || $tag == 'XHTML:STRONG' || $tag == 'XHTML:B') {
                                                                         # <b> or '''
                                                                         $ret .= $this->ensure_new("para", $tree);
                                                                         $ret .= '<emphasis role="bold">';
                                                                         $close_tag = "emphasis";
                                                                     } else {
                                                                         if ($tag == 'ITALICS' || $tag == 'XHTML:EM' || $tag == 'XHTML:I') {
                                                                             # <i> or ''
                                                                             $ret .= $this->ensure_new("para", $tree);
                                                                             $ret .= '<emphasis>';
                                                                             $close_tag = "emphasis";
                                                                         } else {
                                                                             if ($tag == 'XHTML:TT') {
                                                                                 # <tt>
                                                                                 $ret .= $this->ensure_new("para", $tree);
                                                                                 $ret .= '<literal>';
                                                                                 $close_tag = "literal";
                                                                             } else {
                                                                                 if ($tag == 'XHTML:SUB') {
                                                                                     # <sub>
                                                                                     $ret .= $this->ensure_new("para", $tree);
                                                                                     $ret .= '<subscript>';
                                                                                     $close_tag = "subscript";
                                                                                 } else {
                                                                                     if ($tag == 'XHTML:SUP') {
                                                                                         # <sup>
                                                                                         $ret .= $this->ensure_new("para", $tree);
                                                                                         $ret .= '<superscript>';
                                                                                         $close_tag = "superscript";
                                                                                     } else {
                                                                                         if ($tag == 'XHTML:SUP') {
                                                                                             # <sup>
                                                                                             $ret .= $this->ensure_new("para", $tree);
                                                                                             $ret .= '<superscript>';
                                                                                             $close_tag = "superscript";
                                                                                         } else {
                                                                                             if ($tag == 'PRELINE' or $tag == 'XHTML:PRE') {
                                                                                                 # <pre>
                                                                                                 $ret .= $this->ensure_new("para", $tree);
                                                                                                 $ret .= '<programlisting>';
                                                                                                 $close_tag = "programlisting";
                                                                                             } else {
                                                                                                 if ($tag == 'DEFVAL') {
                                                                                                     $ret .= $this->ensure_new("para", $tree);
                                                                                                     $ret .= " : ";
                                                                                                 } else {
                                                                                                     # Default : normal text
                                                                                                     $ret .= $this->ensure_new("para", $tree);
                                                                                                 }
                                                                                             }
                                                                                         }
                                                                                     }
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     # Get the sub-items
     $length_between = strlen($ret);
     if ($tag != 'MAGIC_VARIABLE' && $tag != 'TEMPLATE') {
         $ret .= $this->sub_parse($tree);
     }
     $length_between = strlen($ret) - $length_between;
     # Close tags
     if ($tag == 'LIST') {
         $ret .= $this->close_last("para", $tree);
         if ($list_type == 'bullet' || $list_type == 'ident' || $list_type == 'def') {
             $ret .= "</itemizedlist>\n";
         } else {
             if ($list_type == 'numbered') {
                 $ret .= "</orderedlist>\n";
             }
         }
         if ($xhtml_conversion) {
             $ret .= $this->ensure_new("para", $tree);
         }
     } else {
         if ($tag == 'LISTITEM') {
             $ret .= $this->close_last("para", $tree);
             $ret .= "</listitem>\n";
         } else {
             if ($close_tag != "") {
                 $ret .= "</{$close_tag}>";
             } else {
                 if ($tag == 'HEADING') {
                     $ret .= "</title>\n";
                 } else {
                     if ($tag == 'TABLE') {
                         # Table
                         $ret .= "</tbody>";
                         $ret .= "</tgroup>";
                         $ret .= $this->close_last("table", $tree);
                     } else {
                         if ($tag == 'TABLEROW') {
                             # Tablerow
                             if (strlen(trim($ret)) == $retl_after) {
                                 $ret = substr($ret, 0, $retl_before);
                                 $this->close_last("row", $tree);
                             } else {
                                 $ret .= $this->close_last("row", $tree);
                             }
                         } else {
                             if ($tag == 'TABLEHEAD') {
                                 # Tablehead !!!!
                                 $ret .= $this->close_last("entry", $tree);
                             } else {
                                 if ($tag == 'TABLECELL') {
                                     # Tablecell
                                     $ret .= $this->close_last("entry", $tree);
                                     #			if ( $length_between == 0 ) $ret = $old_ret ;
                                 } else {
                                     if ($tag == 'TABLECAPTION') {
                                         # Tablecaption
                                         #			$ret .= $this->close_last ( "title" , $tree ) ;
                                     } else {
                                         if ($tag == 'ARTICLE') {
                                             $ret .= $this->close_last("section", $tree, true);
                                             $ret .= $this->close_last("para", $tree);
                                             $ret .= "</article>";
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $ret;
 }
Beispiel #7
0
 /**
  * The actualiser to add an author.
  *
  * @return tempcode		The UI
  */
 function __ad()
 {
     $title = get_page_title('DEFINE_AUTHOR');
     $author = post_param('author', get_param('author'));
     if (!has_edit_author_permission(get_member(), $author)) {
         access_denied('SPECIFIC_PERMISSION', 'edit_midrange_content');
     }
     if ($author == '') {
         $forum_handle_string = post_param('forum_handle', strval(get_member()));
         $author = is_numeric($forum_handle_string) ? $GLOBALS['FORUM_DRIVER']->get_username(intval($forum_handle_string)) : $forum_handle_string;
         if (is_null($author)) {
             $author = do_lang('UNKNOWN');
         }
     }
     $_forum_handle = post_param('forum_handle', NULL);
     if ($_forum_handle == '') {
         $_forum_handle = NULL;
     }
     if (!is_null($_forum_handle)) {
         $forum_handle = is_numeric($_forum_handle) ? intval($_forum_handle) : $GLOBALS['FORUM_DRIVER']->get_member_from_username($_forum_handle);
     } else {
         $forum_handle = NULL;
     }
     if (post_param_integer('delete', 0) == 1) {
         if (!has_delete_author_permission(get_member(), $author)) {
             access_denied('SPECIFIC_PERMISSION', 'delete_midrange_content');
         }
         delete_author($author);
         $author = NULL;
         require_code('fields');
         if (has_tied_catalogue('author')) {
             delete_form_custom_fields('author', $author);
         }
     } else {
         $_url = post_param('url');
         if (strpos($_url, '@') !== false && strpos($_url, 'mailto:') === false) {
             $_url = 'mailto:' . $_url;
         }
         $url = strpos($_url, 'mailto:') === false ? fixup_protocolless_urls($_url) : $_url;
         add_author($author, $url, $forum_handle, post_param('description'), post_param('skills'), post_param('meta_keywords', ''), post_param('meta_description', ''));
         require_code('fields');
         if (has_tied_catalogue('author')) {
             save_form_custom_fields('author', $author);
         }
         if (addon_installed('awards')) {
             require_code('awards');
             handle_award_setting('author', $author);
         }
     }
     breadcrumb_set_parents(array(array('_SELF:_SELF:misc', do_lang_tempcode('AUTHOR_MANAGE'))));
     return $this->do_next_manager($title, do_lang_tempcode('SUCCESS'), $author);
 }
Beispiel #8
0
 /**
  * Standard import function.
  *
  * @param  object			The DB connection to import from
  * @param  string			The table prefix the target prefix is using
  * @param  PATH			The base directory we are importing from
  * @return tempcode		Import message
  */
 function import_downloads_and_categories($db, $table_prefix, $old_base_dir)
 {
     require_code('downloads2');
     require_code('downloads');
     $category_id_remap = array();
     $rows = $db->query('SELECT * FROM ' . $table_prefix . 'downloads_categories ORDER BY cid');
     $category_id_remap[0] = db_get_first_id();
     $orig_parents = array();
     foreach ($rows as $row) {
         $orig_parents[$row['cid']] = array($row['parentid'], $row['title'], $row['cdescription']);
         $id = add_download_category('', 0, '', '', '');
         $category_id_remap[$row['cid']] = $id;
         $groups = $GLOBALS['FORUM_DRIVER']->get_usergroup_list(false, true);
         foreach (array_keys($groups) as $group_id) {
             $GLOBALS['SITE_DB']->query_insert('group_category_access', array('module_the_name' => 'downloads', 'category_name' => strval($id), 'group_id' => $group_id));
         }
     }
     foreach ($orig_parents as $cid => $bits) {
         list($orig_parent, $category, $description) = $bits;
         if ($orig_parent == 0) {
             $parent_id = db_get_first_id();
         } else {
             $parent_id = $category_id_remap[$orig_parent];
         }
         edit_download_category($category, $parent_id, $description, $category_id_remap[$cid], '', '', '', '');
     }
     $rows = $db->query('SELECT * FROM ' . $table_prefix . 'downloads_downloads');
     foreach ($rows as $i => $row) {
         $rows[$i]['validated'] = 1;
         $rows[$i]['date'] = $this->mysql_time_to_timestamp($row['date']);
     }
     $rows2 = $db->query('SELECT * FROM ' . $table_prefix . 'downloads_newdownload');
     foreach ($rows2 as $i => $row) {
         $rows2[$i]['validated'] = 0;
         $rows2[$i]['totalvotes'] = 0;
         $rows2[$i]['hits'] = 0;
         $rows2[$i]['date'] = time();
         $rows2[$i]['screenshot'] = '';
     }
     $rows = array_merge($rows, $rows2);
     foreach ($rows as $row) {
         $url_parts = explode('/', $row['url']);
         $original_filename = rawurldecode($url_parts[count($url_parts) - 1]);
         $url = $row['url'];
         if (url_is_local($url)) {
             $url = get_custom_base_url() . '/' . $url;
         }
         $comments = '';
         $comments_rows = $db->query('SELECT editorialtext FROM ' . $table_prefix . 'downloads_editorials WHERE downloadid=' . $row['lid']);
         if (array_key_exists(0, $comments_rows)) {
             $comments = $comments_rows[0]['editorialtext'];
         }
         $member = $GLOBALS['FORUM_DRIVER']->get_member_from_username($row['submitter']);
         if (is_null($member)) {
             $member = get_member();
         }
         $new_id = add_download($category_id_remap[$row['cid']], $row['title'], $url, html_to_comcode($row['description']), $row['name'], html_to_comcode($comments), NULL, $row['validated'], 1, 1, 1, '', $original_filename, $row['filesize'], 0, 0, NULL, $row['date'], $row['hits'], $row['hits'], $member);
         if ($row['totalvotes'] != 0) {
             $real_rating = $row['downloadratingsummary'];
             // Same scale as ocPortal :)
             $GLOBALS['SITE_DB']->query_insert('rating', array('rating_for_type' => 'downloads', 'rating_for_id' => strval($new_id), 'rating_member' => get_member(), 'rating_ip' => '127.0.0.1', 'rating_time' => time(), 'rating' => $real_rating));
         }
         // Homepage->Into author
         $test = $GLOBALS['SITE_DB']->query_value_null_ok('authors', 'url', array('author' => $row['name']));
         if (is_null($test)) {
             require_code('authors');
             add_author($row['name'], $row['homepage'], NULL, '', '');
         } else {
             $GLOBALS['SITE_DB']->query_update('authors', array('url' => $row['homepage']), array('author' => $row['name']));
         }
         // Image
         if ($row['screenshot'] != '' && addon_installed('galleries')) {
             $image_url = $row['screenshot'];
             if (url_is_local($image_url)) {
                 $image_url = get_custom_base_url() . '/' . $image_url;
             }
             $thumb_url = '';
             add_image('', 'download_' . strval($new_id), '', $image_url, $thumb_url, $row['validated'], 1, 1, 1, '');
         }
     }
     $out = do_template('IMPORT_MESSAGE', array('_GUID' => 'ff9131c37b9e4fa2cff991e3479ae867', 'MESSAGE' => do_lang_tempcode('IMPORT_REBUILD_CACHE', do_lang('IMAGE_THUMBNAILS'))));
     return $out;
 }
function do_work()
{
    $num_wanted = 100000;
    require_code('config2');
    set_option('post_history_days', '0');
    // Needed for a little sanity in recent post retrieval
    set_value('disable_sunk', '1');
    // members (remember to test the username autocompleter, and birthdays)
    // authors (remember to check author autocompleter and popup author list)
    // lots of people getting notifications on a forum
    // lots of people getting notifications on a topic
    require_code('authors');
    require_code('ocf_members_action');
    require_code('notifications');
    for ($i = $GLOBALS['FORUM_DB']->query_value('f_members', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $member_id = ocf_make_member(uniqid('', true), uniqid('', true), uniqid('', true) . '@example.com', array(), intval(date('d')), intval(date('m')), intval(date('Y')), array(), NULL, NULL, 1, NULL, NULL, '', NULL, '', 0, 0, 1, '', '', '', 1, 1, NULL, 1, 1, '', NULL, '', false);
        add_author(random_line(), '', $member_id, random_text(), random_text());
        enable_notifications('ocf_topic', 'forum:' . strval(db_get_first_id()), $member_id);
        enable_notifications('ocf_topic', strval(db_get_first_id()), $member_id);
        // number of friends to a single member
        $GLOBALS['SITE_DB']->query_insert('chat_buddies', array('member_likes' => $member_id, 'member_liked' => db_get_first_id() + 1, 'date_and_time' => time()), false, true);
    }
    $member_id = db_get_first_id() + 2;
    // point earn list / gift points to a single member
    require_code('points2');
    for ($j = $GLOBALS['SITE_DB']->query_value('gifts', 'COUNT(*)'); $j < $num_wanted; $j++) {
        give_points(10, $member_id, mt_rand(db_get_first_id(), min(100, $num_wanted - 1)), random_line(), false, false);
    }
    // number of friends of a single member
    for ($j = intval(floatval($GLOBALS['SITE_DB']->query_value('chat_buddies', 'COUNT(*)')) / 2.0); $j < $num_wanted; $j++) {
        $GLOBALS['SITE_DB']->query_insert('chat_buddies', array('member_likes' => $member_id, 'member_liked' => $j + db_get_first_id(), 'date_and_time' => time()), false, true);
    }
    echo 'done member/authors/points/notifications/friends stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // banners
    require_code('banners2');
    for ($i = $GLOBALS['SITE_DB']->query_value('banners', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_banner(uniqid('', true), get_logo_url(), random_line(), random_text(), 100, get_base_url(), 3, '', db_get_first_id(), NULL, db_get_first_id() + 1, 1);
    }
    echo 'done banner stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // comcode pages
    require_code('files');
    require_code('files2');
    for ($i = $GLOBALS['SITE_DB']->query_value('comcode_pages', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $file = uniqid('', true);
        /*$path=get_custom_file_base().'/site/pages/comcode_custom/'.fallback_lang().'/'.$file.'.txt';
        		$myfile=fopen($path,'wt');
        		fwrite($myfile,random_text());
        		fclose($myfile);
        		sync_file($path);
        		fix_permissions($path);*/
        $GLOBALS['SITE_DB']->query_insert('comcode_pages', array('the_zone' => 'site', 'the_page' => $file, 'p_parent_page' => '', 'p_validated' => 1, 'p_edit_date' => NULL, 'p_add_date' => time(), 'p_submitter' => db_get_first_id(), 'p_show_as_edit' => 0));
    }
    echo 'done comcode stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // zones
    require_code('zones2');
    require_code('abstract_file_manager');
    for ($i = $GLOBALS['SITE_DB']->query_value('zones', 'COUNT(*)'); $i < min($num_wanted, 1000); $i++) {
        actual_add_zone(uniqid('', true), random_line(), 'start', random_line(), 'default', 0, 0, 0);
    }
    echo 'done zone stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // calendar events
    require_code('calendar2');
    for ($i = $GLOBALS['SITE_DB']->query_value('calendar_events', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_calendar_event(db_get_first_id(), '', NULL, 0, random_line(), random_text(), 1, 1, intval(date('Y')), intval(date('m')), intval(date('d')), 0, 0);
    }
    echo 'done event stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // chat rooms
    require_code('chat2');
    require_code('chat');
    for ($i = $GLOBALS['SITE_DB']->query_value('chat_rooms', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $room_id = add_chatroom(random_text(), random_line(), mt_rand(db_get_first_id() + 1, $num_wanted - 1), strval(db_get_first_id() + 1), '', '', '', fallback_lang());
    }
    $room_id = db_get_first_id() + 1;
    // messages in chat room
    for ($j = $GLOBALS['SITE_DB']->query_value('chat_messages', 'COUNT(*)'); $j < $num_wanted; $j++) {
        $_message_parsed = insert_lang_comcode(random_text(), 4);
        $GLOBALS['SITE_DB']->query_insert('chat_messages', array('system_message' => 0, 'ip_address' => '', 'room_id' => $room_id, 'user_id' => db_get_first_id(), 'date_and_time' => time(), 'the_message' => $_message_parsed, 'text_colour' => get_option('chat_default_post_colour'), 'font_name' => get_option('chat_default_post_font')));
    }
    echo 'done chat stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // download categories under a subcategory
    require_code('downloads2');
    $subcat_id = add_download_category(random_line(), db_get_first_id(), random_text(), '');
    for ($i = $GLOBALS['SITE_DB']->query_value('download_categories', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_download_category(random_line(), $subcat_id, random_text(), '');
    }
    // downloads (remember to test content by the single author)
    require_code('downloads2');
    require_code('awards');
    $time = time();
    for ($i = $GLOBALS['SITE_DB']->query_value('download_downloads', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $content_id = add_download(db_get_first_id(), random_line(), get_logo_url(), random_text(), 'admin', random_text(), NULL, 1, 1, 1, 1, '', uniqid('', true) . '.jpg', 100, 110, 1);
        give_award(db_get_first_id(), strval($content_id), $time - $i);
    }
    $content_id = db_get_first_id();
    $content_url = build_url(array('page' => 'downloads', 'type' => 'entry', 'id' => $content_id), 'site');
    for ($j = $GLOBALS['SITE_DB']->query_value('trackbacks', 'COUNT(*)'); $j < $num_wanted; $j++) {
        // trackbacks
        $GLOBALS['SITE_DB']->query_insert('trackbacks', array('trackback_for_type' => 'downloads', 'trackback_for_id' => $content_id, 'trackback_ip' => '', 'trackback_time' => time(), 'trackback_url' => '', 'trackback_title' => random_line(), 'trackback_excerpt' => random_text(), 'trackback_name' => random_line()));
        // ratings
        $GLOBALS['SITE_DB']->query_insert('rating', array('rating_for_type' => 'downloads', 'rating_for_id' => $content_id, 'rating_member' => $j + 1, 'rating_ip' => '', 'rating_time' => time(), 'rating' => 3));
        // posts in a comment topic
        $GLOBALS['FORUM_DRIVER']->make_post_forum_topic(get_option('comments_forum_name'), 'downloads_' . strval($content_id), get_member(), random_text(), random_line(), '', do_lang('COMMENT'), $content_url->evaluate(), NULL, NULL, 1, 1);
    }
    echo 'done download stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // forums under a forum (don't test it can display, just make sure the main index still works)
    require_code('ocf_forums_action');
    for ($i = $GLOBALS['FORUM_DB']->query_value('f_forums', 'COUNT(*)'); $i < $num_wanted; $i++) {
        ocf_make_forum(random_line(), random_text(), db_get_first_id(), array(), db_get_first_id() + 3);
    }
    // forum topics
    require_code('ocf_topics_action');
    require_code('ocf_posts_action');
    require_code('ocf_forums');
    require_code('ocf_topics');
    for ($i = intval(floatval($GLOBALS['FORUM_DB']->query_value('f_topics', 'COUNT(*)')) / 2.0); $i < $num_wanted; $i++) {
        $topic_id = ocf_make_topic(db_get_first_id(), '', '', NULL, 1, 0, 0, 0, NULL, NULL, false);
        ocf_make_post($topic_id, random_line(), random_text(), 0, true, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, false);
    }
    // forum posts in a topic
    require_code('ocf_topics_action');
    require_code('ocf_posts_action');
    $topic_id = ocf_make_topic(db_get_first_id() + 1, '', '', NULL, 1, 0, 0, 0, NULL, NULL, false);
    for ($i = intval(floatval($GLOBALS['FORUM_DB']->query_value('f_posts', 'COUNT(*)')) / 3.0); $i < $num_wanted; $i++) {
        ocf_make_post($topic_id, random_line(), random_text(), 0, true, 0, 0, NULL, NULL, NULL, mt_rand(db_get_first_id(), $num_wanted - 1), NULL, NULL, NULL, false, false);
    }
    echo 'done forum stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // clubs
    require_code('ocf_groups_action');
    require_code('ocf_groups');
    for ($i = $GLOBALS['FORUM_DB']->query_value('f_groups', 'COUNT(*)'); $i < $num_wanted; $i++) {
        ocf_make_group(random_line(), 0, 0, 0, random_line(), '', NULL, NULL, NULL, 5, 0, 70, 50, 100, 100, 30000, 700, 25, 1, 0, 0, 0, $i, 1, 0, 1);
    }
    echo 'done club stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // galleries under a subcategory
    require_code('galleries2');
    $xsubcat_id = uniqid('', true);
    add_gallery($xsubcat_id, random_line(), random_text(), '', '', 'root');
    for ($i = $GLOBALS['SITE_DB']->query_value('galleries', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_gallery(uniqid('', true), random_line(), random_text(), '', '', $xsubcat_id);
    }
    // images
    require_code('galleries2');
    for ($i = $GLOBALS['SITE_DB']->query_value('images', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_image('', 'root', random_text(), get_logo_url(), get_logo_url(), 1, 1, 1, 1, '');
    }
    // videos / validation queue
    require_code('galleries2');
    for ($i = $GLOBALS['SITE_DB']->query_value('videos', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_video('', 'root', random_text(), get_logo_url(), get_logo_url(), 0, 1, 1, 1, '', 0, 0, 0);
    }
    echo 'done galleries stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // newsletter subscribers
    require_code('newsletter');
    for ($i = $GLOBALS['SITE_DB']->query_value('newsletter', 'COUNT(*)'); $i < $num_wanted; $i++) {
        basic_newsletter_join(uniqid('', true) . '@example.com');
    }
    echo 'done newsletter stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // polls (remember to test poll archive)
    require_code('polls');
    for ($i = $GLOBALS['SITE_DB']->query_value('poll', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $poll_id = add_poll(random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), random_line(), 10, 0, 0, 0, 0, '');
    }
    // votes on a poll
    $poll_id = db_get_first_id();
    for ($j = $GLOBALS['SITE_DB']->query_value('poll_votes', 'COUNT(*)'); $j < $num_wanted; $j++) {
        $cast = mt_rand(1, 6);
        $ip = uniqid('', true);
        $GLOBALS['SITE_DB']->query_insert('poll_votes', array('v_poll_id' => $poll_id, 'v_voter_id' => 2, 'v_voter_ip' => $ip, 'v_vote_for' => $cast));
    }
    echo 'done polls stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // quizzes
    require_code('quiz');
    for ($i = $GLOBALS['SITE_DB']->query_value('quizzes', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_quiz(random_line(), 0, random_text(), random_text(), random_text(), '', 0, time(), NULL, 3, 300, 'SURVEY', 1, '1) Some question');
    }
    echo 'done quizzes stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // successful searches (to test the search recommender)
    // ACTUALLY: I have manually verified the code, it is an isolated portion
    // cedi pages (do a long descendant tree for some, and orphans for others)
    // cedi posts (remember to test cedi changes screen)
    require_code('cedi');
    for ($i = $GLOBALS['SITE_DB']->query_value('seedy_pages', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $page_id = cedi_add_page(random_line(), random_text(), '', 1);
        cedi_add_post($page_id, random_text(), 1, NULL, false);
    }
    echo 'done cedi stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // iotds
    require_code('iotds');
    for ($i = $GLOBALS['SITE_DB']->query_value('iotd', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_iotd(get_logo_url(), random_line(), random_text(), get_logo_url(), 1, 0, 0, 0, '');
    }
    echo 'done iotd stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // logged hack attempts
    for ($i = $GLOBALS['SITE_DB']->query_value('hackattack', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $GLOBALS['SITE_DB']->query_insert('hackattack', array('url' => get_base_url(), 'data_post' => '', 'user_agent' => '', 'referer' => '', 'user_os' => '', 'the_user' => db_get_first_id(), 'date_and_time' => time(), 'ip' => uniqid('', true), 'reason' => 'ASCII_ENTITY_URL_HACK', 'reason_param_a' => '', 'reason_param_b' => ''));
    }
    // logged hits in one day
    require_code('site');
    for ($i = $GLOBALS['SITE_DB']->query_value('stats', 'COUNT(*)'); $i < $num_wanted; $i++) {
        log_stats('/testing' . uniqid('', true), mt_rand(100, 2000));
    }
    echo 'done logs stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // blogs and news entries (remember to test both blogs [categories] list, and a list of all news entries)
    require_code('news');
    for ($i = $GLOBALS['SITE_DB']->query_value('news', 'COUNT(*)'); $i < $num_wanted; $i++) {
        add_news(random_line(), random_text(), 'admin', 1, 1, 1, 1, '', random_text(), NULL, NULL, NULL, db_get_first_id() + $i);
    }
    echo 'done news stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // support tickets
    require_code('tickets');
    require_code('tickets2');
    for ($i = intval(floatval($GLOBALS['FORUM_DB']->query_value('f_topics', 'COUNT(*)')) / 2.0); $i < $num_wanted; $i++) {
        ticket_add_post(mt_rand(db_get_first_id(), $num_wanted - 1), uniqid('', true), db_get_first_id(), random_line(), random_text(), '', '');
    }
    echo 'done tickets stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // catalogues
    require_code('catalogues2');
    $root_id = db_get_first_id();
    for ($i = $GLOBALS['SITE_DB']->query_value('catalogues', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $catalogue_name = uniqid('', true);
        $root_id = actual_add_catalogue($catalogue_name, random_line(), random_text(), mt_rand(0, 3), 1, '', 30);
    }
    // catalogue categories under a subcategory (remember to test all catalogue views: atoz, index, and root cat)
    $catalogue_name = 'products';
    $subcat_id = actual_add_catalogue_category($catalogue_name, random_line(), random_text(), '', $root_id);
    for ($j = $GLOBALS['SITE_DB']->query_value('catalogue_categories', 'COUNT(*)'); $j < $num_wanted; $j++) {
        actual_add_catalogue_category($catalogue_name, random_line(), random_text(), '', $subcat_id);
    }
    echo 'done catalogue stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    // items in ecommerce store
    require_code('catalogues2');
    $cat_id = $GLOBALS['SITE_DB']->query_value('catalogue_categories', 'MIN(id)', array('c_name' => 'products'));
    $fields = collapse_1d_complexity('id', $GLOBALS['SITE_DB']->query_select('catalogue_fields', array('id'), array('c_name' => 'products')));
    for ($i = $GLOBALS['SITE_DB']->query_value('catalogue_entries', 'COUNT(*)'); $i < $num_wanted; $i++) {
        $map = array($fields[0] => random_line(), $fields[1] => uniqid('', true), $fields[2] => '1.0', $fields[3] => '1', $fields[4] => '0', $fields[5] => '1', $fields[6] => '0%', $fields[7] => get_logo_url(), $fields[8] => '2.0', $fields[9] => random_text());
        $pid = actual_add_catalogue_entry($cat_id, 1, '', 1, 1, 1, $map);
        unset($map);
    }
    // outstanding ecommerce orders
    $pid = $GLOBALS['SITE_DB']->query_value('catalogue_entries', 'MIN(id)', array('c_name' => 'products'));
    require_code('shopping');
    for ($j = $GLOBALS['SITE_DB']->query_value('shopping_cart', 'COUNT(*)'); $j < $num_wanted; $j++) {
        $product_det = array('product_id' => $pid, 'product_name' => $fields[0], 'product_code' => $fields[1], 'price' => $fields[2], 'tax' => preg_replace('#[^\\d\\.]#', '', $fields[6]), 'description' => $fields[9], 'quantity' => mt_rand(1, 20), 'product_type' => 'catalogue_items', 'product_weight' => $fields[8]);
        $GLOBALS['SITE_DB']->query_insert('shopping_cart', array('session_id' => mt_rand(0, 1000000), 'ordered_by' => mt_rand(db_get_first_id() + 1, $num_wanted - 1), 'product_id' => $product_det['product_id'], 'product_name' => $product_det['product_name'], 'product_code' => $product_det['product_code'], 'quantity' => $product_det['quantity'], 'price' => round(floatval($product_det['price']), 2), 'price_pre_tax' => $product_det['tax'], 'product_description' => $product_det['description'], 'product_type' => $product_det['product_type'], 'product_weight' => $product_det['product_weight'], 'is_deleted' => 0));
    }
    for ($j = $GLOBALS['SITE_DB']->query_value('shopping_order', 'COUNT(*)'); $j < $num_wanted; $j++) {
        $order_id = $GLOBALS['SITE_DB']->query_insert('shopping_order', array('c_member' => mt_rand(db_get_first_id() + 1, $num_wanted - 1), 'session_id' => mt_rand(0, 1000000), 'add_date' => time(), 'tot_price' => '123.00', 'order_status' => 'ORDER_STATUS_awaiting_payment', 'notes' => '', 'purchase_through' => 'purchase_module', 'transaction_id' => '', 'tax_opted_out' => 0), true);
        $GLOBALS['SITE_DB']->query_insert('shopping_order_details', array('p_id' => 123, 'p_name' => random_line(), 'p_code' => 123, 'p_type' => 'catalogue_items', 'p_quantity' => 1, 'p_price' => '12.00', 'order_id' => $order_id, 'dispatch_status' => '', 'included_tax' => '1.00'));
    }
    echo 'done store stuff' . chr(10);
    if (function_exists('gc_collect_cycles')) {
        gc_enable();
    }
    echo '{{DONE}}' . chr(10);
}