public static function createdbFirstModels() { $dbName = DatabaseConfig::DB_NAME; $pdo = new PDO("mysql:host=localhost;dbname={$dbName}", 'root', ''); $tables = array_map(function ($t) { return $t[0]; }, $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_NUM)); foreach ($tables as $tableName) { $columns = array_map(function ($c) { return $c['Field']; }, $pdo->query("SHOW COLUMNS FROM {$tableName}")->fetchAll(PDO::FETCH_ASSOC)); $repositoryNameSplitted = explode("_", $tableName); for ($i = 0; $i < count($repositoryNameSplitted); $i++) { $repositoryNameSplitted[$i] = ucfirst($repositoryNameSplitted[$i]); } $repositoryName = implode("", $repositoryNameSplitted); $model = $repositoryName[strlen($repositoryName) - 1] == 's' ? substr($repositoryName, 0, strlen($repositoryName) - 1) : $repositoryName; $repositoryName .= "Repository"; createRepositories($repositoryName, $model, $tableName, $columns); $output = ""; $output .= self::generateClassInfo($model); $output .= self::generateConstants($model, $tableName, $columns); $output .= self::generateFields($model, $tableName, $columns); $output .= self::generateConstructor($model, $tableName, $columns); $output .= self::generateGettersAndSetters($model, $tableName, $columns); $output .= self::generateObjectGeter($columns); $output .= "}"; $modelFile = fopen("Models/" . $model . '.php', 'w'); fwrite($modelFile, $output); $collectionsOutput = create_collection($model); $collectionFile = fopen('Collections/' . $model . 'Collection.php', 'w'); fwrite($collectionFile, $collectionsOutput); } }
add_smart_collection(); # Log this daily_stat("Added smart collection",0); } $research=getvalescaped("research",""); if ($research!="") { hook("preresearch"); $col=get_research_request_collection($research); if ($col==false) { $rr=get_research_request($research); $name="Research: " . $rr["name"]; # Do not translate this string, the collection name is translated when displayed! $new=create_collection ($rr["user"],$name,1); set_user_collection($userref,$new); set_research_collection($research,$new); } else { set_user_collection($userref,$col); } hook("postresearch"); } hook("processusercommand"); ?> <?php
<?php include "../include/db.php"; include "../include/authenticate.php"; include "../include/general.php"; include "../include/resource_functions.php"; include "../include/search_functions.php"; include "../include/collections_functions.php"; if (getval("purchaseonaccount", "") != "" && $userrequestmode == 3) { # Invoice mode. # Mark as payment complete. payment_set_complete($usercollection); # Set new user collection to empty the basket (without destroying the old basket which contains the 'paid' flag to enable the download). $oldcollection = $usercollection; $name = get_mycollection_name($userref); $newcollection = create_collection($userref, $name, 0, 1); // make not deletable set_user_collection($userref, $newcollection); # Redirect to basket (old) collection for download. redirect($baseurl_short . "pages/purchase_download.php?collection=" . $oldcollection); } include "../include/header.php"; if (getval("submit", "") == "") { # ------------------- Show the size selection screen ----------------------- ?> <div class="BasicsBox"> <h2> </h2> <h1><?php echo $lang["buynow"]; ?> </h1>
echo "\r\n"; } // decide whether to skip, create a single resource, or create a collection of resources switch($att_count){ case 0: skip_mail($imap,$current_message,"Nothing to upload",true); break; case 1: echo "Found $att_count attachment\r\n"; break; default: echo "Found $att_count attachments. Collection will be created\r\n"; $build_collection=true; $collection=create_collection($fromuser_ref,$subject); echo "Creating Collection $collection : $subject \r\n"; } // save attachments $checkmail_archive_state=$checkmail_default_archive; $access=$checkmail_default_access; $resource_types=get_resource_types(); for ($n=0;$n<count($files);$n++){ $file=$files[$n]; foreach ($resource_types as $resource_type){ $safe_varname="resourcetype".$resource_type['ref'];
$themearr = explode('||', getval("themestring", '')); collection_set_themes($collection_add, $themearr); } } if ($collection_add != "") { # Switch to the selected collection (existing or newly created) and refresh the frame. set_user_collection($userref, $collection_add); refresh_collection_frame($collection_add); } if ($send_collection_to_admin && $archive == -1 && getvalescaped('ajax', 'false') == true && getvalescaped('ajax_action', '') == 'send_collection_to_admin') { $collection_id = getvalescaped('collection', ''); if ($collection_id == '') { exit; } // Create a copy of the collection for admin: $admin_copy = create_collection(-1, $lang['send_collection_to_admin_emailedcollectionname']); copy_collection($collection_id, $admin_copy); $collection_id = $admin_copy; // Get the user (or username) of the contributor: $user = get_user($userref); if (isset($user) && trim($user['fullname']) != '') { $user = $user['fullname']; } else { $user = $user['username']; } // Get details about the collection: $collection = get_collection($collection_id); $collection_name = $collection['name']; $resources_in_collection = count(get_collection_resources($collection_id)); // Build mail and send it: $subject = $applicationname . ': ' . $lang['send_collection_to_admin_emailsubject'] . $user;
} } } # Get count of collections $c = get_user_collections($userref); # If the user has just deleted the collection they were using, select a new collection if ($deleted_usercoll && count($c) > 0) { # Select the first collection in the dropdown box. $usercollection = $c[0]["ref"]; set_user_collection($userref, $usercollection); } # User has deleted their last collection? add a new one. if (count($c) == 0) { # No collections to select. Create them a new collection. $name = get_mycollection_name($userref); $usercollection = create_collection($userref, $name); set_user_collection($userref, $usercollection); } refresh_collection_frame($usercollection); } hook('customcollectionmanage'); $removeall = getvalescaped("removeall", ""); if ($removeall != "") { remove_all_resources_from_collection($removeall); refresh_collection_frame($usercollection); } include "../include/header.php"; ?> <div class="BasicsBox"> <h2> </h2> <h1><?php
function get_session_collections($rs_session, $userref = "", $create = false) { $extrasql = ""; if ($userref != "") { $extrasql = "and user='******'"; } $collectionrefs = sql_array("select ref value from collection where session_id='" . $rs_session . "' " . $extrasql, ""); if (count($collectionrefs) < 1 && $create) { $collectionrefs[0] = create_collection($userref, "My Collection", 0, 1); # Do not translate this string! } return $collectionrefs; }
if ($resource_type != "") { $allowed_extensions = get_allowed_extensions_by_type($resource_type); } $alternative = getvalescaped("alternative", ""); # Batch upload alternative files (Java) $replace = getvalescaped("replace", ""); # Replace Resource Batch $replace_resource = getvalescaped("replace_resource", ""); # Option to replace existing resource file # Create a new collection? if ($collection_add == -1) { # The user has chosen Create New Collection from the dropdown. if ($collectionname == "") { $collectionname = $lang["upload"] . " " . date("ymdHis"); } $collection_add = create_collection($userref, $collectionname); if (getval("public", '0') == 1) { collection_set_public($collection_add); } if (strlen(getval("themestring", '')) > 0) { $themearr = explode('||', getval("themestring", '')); collection_set_themes($collection_add, $themearr); } } if ($collection_add != "") { # Switch to the selected collection (existing or newly created) and refresh the frame. set_user_collection($userref, $collection_add); refresh_collection_frame($collection_add); } #handle posts if ($_FILES) {
function new_user($newuser) { # Username already exists? $c=sql_value("select count(*) value from user where username='******'",0); if ($c>0) {return false;} # Create a new user with username $newuser. Returns the created user reference. sql_query("insert into user(username) values ('" . escape_check($newuser) . "')"); $newref=sql_insert_id(); # Create a collection for this user, the collection name is translated when displayed! global $lang; $new=create_collection($newref,"My Collection",0,1); # Do not translate this string! # set this to be the user's current collection sql_query("update user set current_collection='$new' where ref='$newref'"); return $newref; }
function managed_collection_request($ref, $details, $ref_is_resource = false) { # Request mode 1 # Managed via the administrative interface # An e-mail is still sent. global $applicationname, $email_from, $baseurl, $email_notify, $username, $useremail, $userref, $lang, $request_senduserupdates, $watermark, $filename_field, $view_title_field, $access, $resource_type_request_emails, $manage_request_admin; # Has a resource reference (instead of a collection reference) been passed? # Manage requests only work with collections. Create a collection containing only this resource. if ($ref_is_resource) { $admin_mail_template = "emailresourcerequest"; $user_mail_template = "emailuserresourcerequest"; $resourcedata = get_resource_data($ref); $templatevars['thumbnail'] = get_resource_path($ref, true, "thm", false, "jpg", $scramble = -1, $page = 1, $watermark ? $access == 1 ? true : false : false); # Allow alternative configuration settings for this resource type resource_type_config_override($resourcedata['resource_type']); if (!file_exists($templatevars['thumbnail'])) { $templatevars['thumbnail'] = "../gfx/" . get_nopreview_icon($resourcedata["resource_type"], $resourcedata["file_extension"], false); } $templatevars['url'] = $baseurl . "/?r=" . $ref; if (isset($filename_field)) { $templatevars["filename"] = $lang["fieldtitle-original_filename"] . ": " . get_data_by_field($ref, $filename_field); } if (isset($resourcedata["field" . $view_title_field])) { $templatevars["title"] = $resourcedata["field" . $view_title_field]; } $c = create_collection($userref, $lang["request"] . " " . date("ymdHis")); add_resource_to_collection($ref, $c); $ref = $c; # Proceed as normal } else { $admin_mail_template = "emailcollectionrequest"; $user_mail_template = "emailusercollectionrequest"; $collectiondata = get_collection($ref); $templatevars['url'] = $baseurl . "/?c=" . $ref; if (isset($collectiondata["name"])) { $templatevars["title"] = $collectiondata["name"]; } } # Fomulate e-mail text $templatevars['username'] = $username; $templatevars["useremail"] = $useremail; $userdata = get_user($userref); $templatevars["fullname"] = $userdata["fullname"]; $message = ""; reset($_POST); foreach ($_POST as $key => $value) { if (strpos($key, "_label") !== false) { # Add custom field $setting = trim($_POST[str_replace("_label", "", $key)]); if ($setting != "") { $message .= $value . ": " . $setting . "\n\n"; } } } if (trim($details) != "") { $message .= $lang["requestreason"] . ": " . newlines($details) . "\n\n"; } else { return false; } # Add custom fields $c = ""; global $custom_request_fields, $custom_request_required; if (isset($custom_request_fields)) { $custom = explode(",", $custom_request_fields); # Required fields? if (isset($custom_request_required)) { $required = explode(",", $custom_request_required); } for ($n = 0; $n < count($custom); $n++) { if (isset($required) && in_array($custom[$n], $required) && getval("custom" . $n, "") == "") { return false; # Required field was not set. } $message .= i18n_get_translated($custom[$n]) . ": " . getval("custom" . $n, "") . "\n\n"; } } # Create the request global $request_query; $request_query = "insert into request(user,collection,created,request_mode,status,comments) values ('{$userref}','{$ref}',now(),1,0,'" . escape_check($message) . "')"; global $notify_manage_request_admin, $assigned_to_user; $notify_manage_request_admin = false; // Manage individual requests of resources: hook('autoassign_individual_requests', '', array($userref, $ref, $message, isset($collectiondata))); if (isset($manage_request_admin) && !isset($collectiondata)) { $query = sprintf("\n SELECT DISTINCT r.resource_type AS value\n FROM collection_resource AS cr\n INNER JOIN resource r ON cr.resource = r.ref\n WHERE cr.collection = '%s';\n ", $ref); $request_resource_type = sql_value($query, 0); if ($request_resource_type != 0 && array_key_exists($request_resource_type, $manage_request_admin)) { $request_query = sprintf("\n INSERT INTO request(\n user,\n collection,\n created,\n request_mode,\n `status`,\n comments,\n assigned_to\n )\n VALUES (\n '%s',\n '%s',\n NOW(),\n 1,\n 0,\n '%s',\n '%s'\n );\n ", $userref, $ref, escape_check($message), $manage_request_admin[$request_resource_type]); $assigned_to_user = get_user($manage_request_admin[$request_resource_type]); $notify_manage_request_admin = true; } } // Manage collection requests: hook('autoassign_collection_requests', '', array($userref, isset($collectiondata) ? $collectiondata : array(), $message, isset($collectiondata))); if (isset($manage_request_admin) && isset($collectiondata)) { $all_r_types = get_resource_types(); foreach ($all_r_types as $r_type) { $all_resource_types[] = $r_type['ref']; } $resources = get_collection_resources($collectiondata['ref']); // Get distinct resource types found in this collection: $resource_types = array(); $collection_resources_by_type = array(); foreach ($resources as $resource_id) { $resource_data = get_resource_data($resource_id); $resource_types[$resource_id] = $resource_data['resource_type']; // Create a list of resource IDs based on type to separate them into different collections: $collection_resources_by_type[$resource_data['resource_type']][] = $resource_id; } // Split into collections based on resource type: foreach ($collection_resources_by_type as $collection_type => $collection_resources) { // Store all resources of unmanaged type in one collection which will be sent to the system administrator: if (!isset($manage_request_admin[$collection_type])) { $collections['not_managed'] = create_collection($userref, $collectiondata['name'] . ' for unmanaged types'); foreach ($collection_resources as $collection_resource_id) { add_resource_to_collection($collection_resource_id, $collections['not_managed']); } continue; } $collections[$collection_type] = create_collection($userref, $collectiondata['name'] . ' for type ' . $collection_type); foreach ($collection_resources as $collection_resource_id) { add_resource_to_collection($collection_resource_id, $collections[$collection_type]); } } if (isset($collections) && count($collections) > 1) { foreach ($collections as $request_resource_type => $collection_id) { $assigned_to = ''; $assigned_to_user['email'] = $email_notify; if (array_key_exists($request_resource_type, $manage_request_admin)) { $assigned_to = $manage_request_admin[$request_resource_type]; $assigned_to_user = get_user($manage_request_admin[$request_resource_type]); } $request_query = sprintf("\n INSERT INTO request(\n user,\n collection,\n created,\n request_mode,\n `status`,\n comments,\n assigned_to\n )\n VALUES (\n '%s',\n '%s',\n NOW(),\n 1,\n 0,\n '%s',\n '%s'\n );\n ", $userref, $collection_id, escape_check($message), $assigned_to); if (trim($assigned_to) == '') { $request_query = sprintf("\n INSERT INTO request(\n user,\n collection,\n created,\n request_mode,\n `status`,\n comments\n )\n VALUES (\n '%s',\n '%s',\n NOW(),\n 1,\n 0,\n '%s'\n );\n ", $userref, $collection_id, escape_check($message)); } sql_query($request_query); $request = sql_insert_id(); // Send the mail: $email_message = $lang['requestassignedtoyoumail'] . "\n\n" . $baseurl . "/?q=" . $request . "\n"; send_mail($assigned_to_user['email'], $applicationname . ': ' . $lang['requestassignedtoyou'], $email_message); unset($email_message); } $notify_manage_request_admin = false; } else { $ref = implode('', $collections); } } if (hook('bypass_end_managed_collection_request', '', array(!isset($collectiondata), $ref, $request_query, $message, $templatevars, $assigned_to_user, $admin_mail_template, $user_mail_template))) { return true; } sql_query($request_query); $request = sql_insert_id(); $templatevars["request_id"] = $request; $templatevars["requesturl"] = $baseurl . "/?q=" . $request; $templatevars["requestreason"] = $message; hook("afterrequestcreate", "", array($request)); # Automatically notify the admin who was assigned the request: if (isset($manage_request_admin) && $notify_manage_request_admin) { $message = $lang['requestassignedtoyoumail'] . "\n\n" . $baseurl . "/?q=" . $request . "\n"; send_mail($assigned_to_user['email'], $applicationname . ': ' . $lang['requestassignedtoyou'], $message); } # Check if alternative request email notification address is set, only valid if collection contains resources of the same type $admin_notify_email = $email_notify; if (isset($resource_type_request_emails)) { $requestrestypes = array_unique(sql_array("select r.resource_type as value from collection_resource cr left join resource r on cr.resource=r.ref where cr.collection='{$ref}'")); if (count($requestrestypes) == 1 && isset($resource_type_request_emails[$requestrestypes[0]])) { $admin_notify_email = $resource_type_request_emails[$requestrestypes[0]]; } } # Send the e-mail $userconfirmmessage = $lang["requestsenttext"] . "<br /><br />{$message}<br /><br />" . $lang["clicktoviewresource"] . "<br />{$baseurl}/?c={$ref}"; $message = $lang["user_made_request"] . "<br /><br />" . $lang["username"] . ": " . $username . "<br />{$message}<br /><br />"; $message .= $lang["clicktoviewresource"] . "<br />{$baseurl}/?q={$request}"; send_mail($admin_notify_email, $applicationname . ": " . $lang["requestcollection"] . " - {$ref}", $message, $useremail, $useremail, $admin_mail_template, $templatevars); if ($request_senduserupdates) { send_mail($useremail, $applicationname . ": " . $lang["requestsent"] . " - {$ref}", $userconfirmmessage, $email_from, $email_notify, $user_mail_template, $templatevars); } # Increment the request counter sql_query("update resource set request_count=request_count+1 where ref='{$ref}'"); return true; }
function new_user($newuser) { # Username already exists? $c = sql_value("select count(*) value from user where username='******'", 0); if ($c > 0) { return false; } # Create a new user with username $newuser. Returns the created user reference. sql_query("insert into user(username) values ('" . escape_check($newuser) . "')"); $newref = sql_insert_id(); # Create a collection for this user global $lang; $new = create_collection($newref, $lang["mycollection"], 0, 1); # set this to be the user's current collection sql_query("update user set current_collection='{$new}' where ref='{$newref}'"); return $newref; }
function HookAutoassign_mrequestsAllAutoassign_collection_requests($user_ref, $collection_data, $message, $manage_collection_request) { global $manage_request_admin, $assigned_to_user, $email_notify, $lang, $baseurl, $applicationname, $request_query, $notify_manage_request_admin; // Do not process this any further as this should only handle collection requests if (!$manage_collection_request) { return false; } $resources = get_collection_resources($collection_data['ref']); $mapped_fields = get_mapped_fields(); $collection_resources_by_assigned_user = array(); $collections = array(); // Build the collections map between asigned user and resources the collection should contain foreach ($resources as $resource) { $resource_data = get_resource_field_data($resource); $assigned_administrator = 0; $resource_not_assigned = true; foreach ($resource_data as $r_data) { if (in_array($r_data['ref'], $mapped_fields)) { $assigned_administrator = get_mapped_user_by_field($r_data['ref'], $r_data['value']); if ($assigned_administrator === 0) { $collection_resources_by_assigned_user['not_managed'][] = $resource; } else { $collection_resources_by_assigned_user[$assigned_administrator][] = $resource; } $resource_not_assigned = false; break; } } if ($resource_not_assigned && !isset($manage_request_admin)) { $collection_resources_by_assigned_user['not_managed'][] = $resource; } } // Create collections based on who is supposed to handle the request foreach ($collection_resources_by_assigned_user as $assigned_user_id => $collection_resources) { if ($assigned_user_id === 'not_managed') { $collections['not_managed'] = create_collection($user_ref, $collection_data['name'] . ' request for unmanaged resources'); foreach ($collection_resources as $collection_resource_id) { add_resource_to_collection($collection_resource_id, $collections['not_managed']); } continue; } $user = get_user($assigned_user_id); $collections[$assigned_user_id] = create_collection($user_ref, $collection_data['name'] . ' request - managed by ' . $user['email']); foreach ($collection_resources as $collection_resource_id) { add_resource_to_collection($collection_resource_id, $collections[$assigned_user_id]); } // Attach assigned admin to this collection add_collection($user['ref'], $collections[$assigned_user_id]); } if (!empty($collections)) { foreach ($collections as $assigned_to => $collection_id) { $assigned_to_user = get_user($assigned_to); $request_query = sprintf("\n INSERT INTO request(\n user,\n collection,\n created,\n request_mode,\n `status`,\n comments,\n assigned_to\n )\n VALUES (\n '%s', # user\n '%s', # collection\n NOW(), # created\n 1, # request_mode\n 0, # status\n '%s', # comments\n '%s' # assigned_to\n );\n ", $user_ref, $collection_id, escape_check($message), $assigned_to); if ($assigned_to === 'not_managed' || !$assigned_to_user) { $assigned_to_user['email'] = $email_notify; $request_query = sprintf("\n INSERT INTO request(\n user,\n collection,\n created,\n request_mode,\n `status`,\n comments\n )\n VALUES (\n '%s', # user\n '%s', # collection\n NOW(), # created\n 1, # request_mode\n 0, # status\n '%s' # comments\n );\n ", $user_ref, $collection_id, escape_check($message), $assigned_to); } sql_query($request_query); $request = sql_insert_id(); // Send the mail: $email_message = $lang['requestassignedtoyoumail'] . "\n\n" . $baseurl . "/?q=" . $request . "\n"; send_mail($assigned_to_user['email'], $applicationname . ': ' . $lang['requestassignedtoyou'], $email_message); unset($email_message); } $notify_manage_request_admin = false; } // If we've got this far, make sure auto assigning managed requests based on resource types won't overwrite this unset($manage_request_admin); return true; }
function managed_collection_request($ref, $details, $ref_is_resource = false) { # Request mode 1 # Managed via the administrative interface # An e-mail is still sent. global $applicationname, $email_from, $baseurl, $email_notify, $username, $useremail, $userref, $lang, $request_senduserupdates, $watermark, $filename_field, $view_title_field, $access, $resource_type_request_emails; # Has a resource reference (instead of a collection reference) been passed? # Manage requests only work with collections. Create a collection containing only this resource. if ($ref_is_resource) { $admin_mail_template = "emailresourcerequest"; $user_mail_template = "emailuserresourcerequest"; $resourcedata = get_resource_data($ref); $templatevars['thumbnail'] = get_resource_path($ref, true, "thm", false, "jpg", $scramble = -1, $page = 1, $watermark ? $access == 1 ? true : false : false); if (!file_exists($templatevars['thumbnail'])) { $templatevars['thumbnail'] = "../gfx/" . get_nopreview_icon($resourcedata["resource_type"], $resourcedata["file_extension"], false); } $templatevars['url'] = $baseurl . "/?r=" . $ref; if (isset($filename_field)) { $templatevars["filename"] = $lang["fieldtitle-original_filename"] . ": " . get_data_by_field($ref, $filename_field); } if (isset($resourcedata["field" . $view_title_field])) { $templatevars["title"] = $resourcedata["field" . $view_title_field]; } $c = create_collection($userref, $lang["request"] . " " . date("ymdHis")); add_resource_to_collection($ref, $c); $ref = $c; # Proceed as normal } else { $admin_mail_template = "emailcollectionrequest"; $user_mail_template = "emailusercollectionrequest"; $collectiondata = get_collection($ref); $templatevars['url'] = $baseurl . "/?c=" . $ref; if (isset($collectiondata["name"])) { $templatevars["title"] = $collectiondata["name"]; } } # Fomulate e-mail text $templatevars['username'] = $username; $templatevars["useremail"] = $useremail; $userdata = get_user($userref); $templatevars["fullname"] = $userdata["fullname"]; $message = ""; reset($_POST); foreach ($_POST as $key => $value) { if (strpos($key, "_label") !== false) { # Add custom field $setting = trim($_POST[str_replace("_label", "", $key)]); if ($setting != "") { $message .= $value . ": " . $setting . "\n\n"; } } } if (trim($details) != "") { $message .= $lang["requestreason"] . ": " . newlines($details) . "\n\n"; } else { return false; } # Add custom fields $c = ""; global $custom_request_fields, $custom_request_required; if (isset($custom_request_fields)) { $custom = explode(",", $custom_request_fields); # Required fields? if (isset($custom_request_required)) { $required = explode(",", $custom_request_required); } for ($n = 0; $n < count($custom); $n++) { if (isset($required) && in_array($custom[$n], $required) && getval("custom" . $n, "") == "") { return false; # Required field was not set. } $message .= i18n_get_translated($custom[$n]) . ": " . getval("custom" . $n, "") . "\n\n"; } } # Create the request sql_query("insert into request(user,collection,created,request_mode,status,comments) values ('{$userref}','{$ref}',now(),1,0,'" . escape_check($message) . "')"); $request = sql_insert_id(); $templatevars["request_id"] = $request; $templatevars["requesturl"] = $baseurl . "/?q=" . $request; $templatevars["requestreason"] = $message; hook("afterrequestcreate", "", array($request)); # Check if alternative request email notification address is set, only valid if collection contains resources of the same type $admin_notify_email = $email_notify; if (isset($resource_type_request_emails)) { $requestrestypes = array_unique(sql_array("select r.resource_type as value from collection_resource cr left join resource r on cr.resource=r.ref where cr.collection='{$ref}'")); if (count($requestrestypes) == 1 && isset($resource_type_request_emails[$requestrestypes[0]])) { $admin_notify_email = $resource_type_request_emails[$requestrestypes[0]]; } } # Send the e-mail $userconfirmmessage = $lang["requestsenttext"] . "<br /><br />{$message}<br /><br />" . $lang["clicktoviewresource"] . "<br />{$baseurl}/?c={$ref}"; $message = $lang["user_made_request"] . "<br /><br />" . $lang["username"] . ": " . $username . "<br />{$message}<br /><br />"; $message .= $lang["clicktoviewresource"] . "<br />{$baseurl}/?q={$request}"; send_mail($admin_notify_email, $applicationname . ": " . $lang["requestcollection"] . " - {$ref}", $message, $useremail, $useremail, $admin_mail_template, $templatevars); if ($request_senduserupdates) { send_mail($useremail, $applicationname . ": " . $lang["requestsent"] . " - {$ref}", $userconfirmmessage, $email_from, $email_notify, $user_mail_template, $templatevars); } # Increment the request counter sql_query("update resource set request_count=request_count+1 where ref='{$ref}'"); return true; }
printJson($delete); } // CREATE // ============================================================ // - create a new collection // ============================================================ // create a new collection // returns id of new collection if ($create_collection && $collection_name && $user_id) { $allowchanges = 1; $cant_delete = 0; $collection_name = urldecode($collection_name); if ($remove_unserscore) { $collection_name = str_replace('_', ' ', $collection_name); } $create = create_collection($user_id, $collection_name, $allowchanges, $cant_delete); $create = array('new_collection' => $create); printJson($create); } // UPDATE // ============================================================ // - set a new user to a file // - set file size : no size set when file uploaded by API, execute after file upload // - rename a file // - rename a collection // - move file to another collection // ============================================================ // set a new user to a file if ($set && $file_id && $user_id) { $setUser = sql_query("UPDATE resource SET created_by='{$user_id}' WHERE ref='{$file_id}'"); $newUser = array('new_user' => $user_id, 'file' => $file_id);
$useremail = $userdata[0]["email"]; $userpassword = $userdata[0]["password"]; $userfullname = $userdata[0]["fullname"]; if (!isset($userfixedtheme)) { $userfixedtheme = $userdata[0]["fixed_theme"]; } # only set if not set in config.php $ip_restrict_group = trim($userdata[0]["ip_restrict_group"]); $ip_restrict_user = trim($userdata[0]["ip_restrict_user"]); $usercollection = $userdata[0]["current_collection"]; if ($usercollection == 0 || !is_numeric($usercollection)) { # Create a collection for this user global $lang; include_once "collections_functions.php"; # Make sure collections functions are included before create_collection $usercollection = create_collection($userref, $lang["mycollection"], 0, 1); # set this to be the user's current collection sql_query("update user set current_collection='{$usercollection}' where ref='{$userref}'"); } $usersearchfilter = $userdata[0]["search_filter"]; $usereditfilter = $userdata[0]["edit_filter"]; $userresourcedefaults = $userdata[0]["resource_defaults"]; $userrequestmode = trim($userdata[0]["request_mode"]); # Some alternative language choices for basket mode / e-commerce if ($userrequestmode == 2 || $userrequestmode == 3) { $lang["addtocollection"] = $lang["addtobasket"]; $lang["action-addtocollection"] = $lang["addtobasket"]; $lang["addtocurrentcollection"] = $lang["addtobasket"]; $lang["requestaddedtocollection"] = $lang["buyitemaddedtocollection"]; $lang["action-request"] = $lang["addtobasket"]; # The request button (renamed "Buy" by the line above) should always add the item to the current collection.
function managed_collection_request($ref,$details,$ref_is_resource=false) { # Request mode 1 # Managed via the administrative interface # An e-mail is still sent. global $applicationname,$email_from,$baseurl,$email_notify,$username,$useremail,$userref,$lang,$request_senduserupdates; # Has a resource reference (instead of a collection reference) been passed? # Manage requests only work with collections. Create a collection containing only this resource. if ($ref_is_resource) { $c=create_collection($userref,$lang["request"] . " " . date("ymdHis")); add_resource_to_collection($ref,$c); $ref=$c; # Proceed as normal } # Fomulate e-mail text $message=""; reset ($_POST); foreach ($_POST as $key=>$value) { if (strpos($key,"_label")!==false) { # Add custom field $setting=trim($_POST[str_replace("_label","",$key)]); if ($setting!="") { $message.=$value . ": " . $setting . "\n\n"; } } } if (trim($details)!="") {$message.=$lang["requestreason"] . ": " . newlines($details) . "\n\n";} else {return false;} # Add custom fields $c=""; global $custom_request_fields,$custom_request_required; if (isset($custom_request_fields)) { $custom=explode(",",$custom_request_fields); # Required fields? if (isset($custom_request_required)) {$required=explode(",",$custom_request_required);} for ($n=0;$n<count($custom);$n++) { if (isset($required) && in_array($custom[$n],$required) && getval("custom" . $n,"")=="") { return false; # Required field was not set. } $message.=i18n_get_translated($custom[$n]) . ": " . getval("custom" . $n,"") . "\n\n"; } } # Create the request sql_query("insert into request(user,collection,created,request_mode,status,comments) values ('$userref','$ref',now(),1,0,'" . escape_check($message) . "')"); $request=sql_insert_id(); # Send the e-mail $userconfirmmessage = $lang["requestsenttext"]; $message=$lang["username"] . ": " . $username . "\n" . $message; $message.=$lang["viewrequesturl"] . ":\n$baseurl/?q=$request"; send_mail($email_notify,$applicationname . ": " . $lang["requestcollection"] . " - $ref",$message,$useremail); if ($request_senduserupdates){send_mail($useremail,$applicationname . ": " . $lang["requestsent"] . " - $ref",$userconfirmmessage,$email_from);} # Increment the request counter sql_query("update resource set request_count=request_count+1 where ref='$ref'"); return true; }
function add_smart_collection() { global $userref; $search=getvalescaped("addsmartcollection",""); $restypes=getvalescaped("restypes",""); $archive=getvalescaped("archive","",true); $starsearch=getvalescaped("starsearch",0); // more compact search strings should work with get_search_title $searchstring=array(); if ($search!=""){$searchstring[]="search=$search";} if ($restypes!=""){$searchstring[]="restypes=$restypes";} if ($starsearch!=""){$searchstring[]="starsearch=$starsearch";} if ($archive!=0){$searchstring[]="archive=$archive";} $searchstring=implode("&",$searchstring); if ($starsearch==""){$starsearch=0;} $newcollection=create_collection($userref,get_search_title($searchstring),1); sql_query("insert into collection_savedsearch(collection,search,restypes,archive,starsearch) values ('$newcollection','" . $search . "','" . $restypes . "','" . $archive . "','".$starsearch."')"); $savedsearch=sql_insert_id(); sql_query("update collection set savedsearch='$savedsearch' where ref='$newcollection'"); set_user_collection($userref,$newcollection); }
$userpassword = $userdata[0]["password"]; $userfullname = $userdata[0]["fullname"]; if (!isset($userfixedtheme)) { $userfixedtheme = $userdata[0]["fixed_theme"]; } # only set if not set in config.php $ip_restrict_group = trim($userdata[0]["ip_restrict_group"]); $ip_restrict_user = trim($userdata[0]["ip_restrict_user"]); $usercollection = $userdata[0]["current_collection"]; if ($usercollection == 0 || !is_numeric($usercollection)) { # Create a collection for this user global $lang; include_once "collections_functions.php"; # Make sure collections functions are included before create_collection # The collection name is translated when displayed! $usercollection = create_collection($userref, "My Collection", 0, 1); # Do not translate this string! # set this to be the user's current collection sql_query("update user set current_collection='{$usercollection}' where ref='{$userref}'"); } $usersearchfilter = $userdata[0]["search_filter"]; $usereditfilter = $userdata[0]["edit_filter"]; $userderestrictfilter = $userdata[0]["derestrict_filter"]; $hidden_collections = explode(",", $userdata[0]["hidden_collections"]); $userresourcedefaults = $userdata[0]["resource_defaults"]; $userrequestmode = trim($userdata[0]["request_mode"]); # Some alternative language choices for basket mode / e-commerce if ($userrequestmode == 2 || $userrequestmode == 3) { $lang["addtocollection"] = $lang["addtobasket"]; $lang["action-addtocollection"] = $lang["addtobasket"]; $lang["addtocurrentcollection"] = $lang["addtobasket"];
include "../include/authenticate.php"; include "../include/general.php"; include "../include/resource_functions.php"; include "../include/search_functions.php"; include "../include/collections_functions.php"; if (getval("purchaseonaccount","")!="" && $userrequestmode==3) { # Invoice mode. # Mark as payment complete. payment_set_complete($usercollection); # Set new user collection to empty the basket (without destroying the old basket which contains the 'paid' flag to enable the download). $oldcollection=$usercollection; $name=get_mycollection_name($userref); $newcollection=create_collection ($userref,$name,0,1); // make not deletable set_user_collection($userref,$newcollection); # Redirect to basket (old) collection for download. redirect($baseurl_short."pages/purchase_download.php?collection=" . $oldcollection); } include "../include/header.php"; if (getval("submit","")=="") { # ------------------- Show the size selection screen ----------------------- ?> <div class="BasicsBox">
`login_tries` , `login_last_try` , `approved` , `lang` , `created` ) VALUES ( $ref , '$username', '$password', '$fullname', '$email', '$usergroup', CURRENT_TIMESTAMP, '1', NULL, '$last_ip', '3', '$accepted_terms', NULL, '', '', '', '0', '0', CURRENT_TIMESTAMP, '$approved', '$lang' , CURRENT_TIMESTAMP )") or die(mysql_error()); $newref=sql_insert_id(); # Create a collection for this user global $lang; $new=create_collection($newref,"My Collection",0,1); # set this to be the user's current collection sql_query("update user set current_collection='$new', password_last_change=CURRENT_TIMESTAMP where ref='$newref'"); add_collection($newref,$new); $all_userdata="SELECT * FROM user WHERE ref='$newref'"; $this_user_data = mysql_query($all_userdata) or die(mysql_error()); if (mysql_num_rows($this_user_data) == 1){ while ($userRow = mysql_fetch_array($this_user_data)) { $username=$userRow['username']; $userref=$userRow['ref']; $password_hash=$userRow['password']; $session_hash=$userRow['session']; }
if (!$use_user_email){$from_name=$applicationname;} else {$from_name=$userfullname;} // make sure from_name matches system name if (getval("ccme",false)){ $cc=$useremail;} else {$cc="";} $sharing_related=false; if(getval("sharerelatedresources","")!=""){$sharing_related=true;} if($sharing_related || $share_resource_as_collection) { if($sharing_related) { // User has chosen to include related resources, so treat as sharing a new collection $relatedshares=explode(",",getvalescaped("sharerelatedresources","")); } // Create new collection $allow_changes=(getval("allow_changes","")!=""?1:0); $sharedcollection=create_collection($userref,i18n_get_translated($resource["field".$view_title_field]) . " Share " . nicedate(date("Y-m-d H:i:s")),$allow_changes); add_resource_to_collection($ref,$sharedcollection); if($sharing_related) { foreach($relatedshares as $relatedshare) { add_resource_to_collection($relatedshare,$sharedcollection); } } $errors=email_collection($sharedcollection,i18n_get_collection_name($sharedcollection),$userfullname,$users,$message,false,$access,$expires,$user_email,$from_name,$cc,false,"","",$list_recipients,$add_internal_access); // Hide from drop down by default show_hide_collection($sharedcollection, false, $userref); if ($errors=="")
$repositoryNameSplitted[$i] = ucfirst($repositoryNameSplitted[$i]); } $repositoryName = implode("", $repositoryNameSplitted); $model = $repositoryName[strlen($repositoryName) - 1] == 's' ? substr($repositoryName, 0, strlen($repositoryName) - 1) : $repositoryName; $repositoryName .= "Repository"; createRepositories($repositoryName, $model, $tableName, $columns); $output = ""; $output .= generateClassInfo($model); $output .= generateConstants($model, $tableName, $columns); $output .= generateFields($model, $tableName, $columns); $output .= generateConstructor($model, $tableName, $columns); $output .= generateGettersAndSetters($model, $tableName, $columns); $output .= "}"; $modelFile = fopen("Models/" . $model . '.php', 'w'); fwrite($modelFile, $output); $collectionsOutput = create_collection($model); $collectionFile = fopen('Collections/' . $model . 'Collection.php', 'w'); fwrite($collectionFile, $collectionsOutput); } function generateClassInfo($model) { $output = ""; $output = <<<KUF <?php namespace SoftUni\\Models; class {$model} { KUF; return $output;
function new_user($newuser) { global $lang, $home_dash; # Username already exists? $c = sql_value("select count(*) value from user where username='******'", 0); if ($c > 0) { return false; } # Create a new user with username $newuser. Returns the created user reference. sql_query("insert into user(username) values ('" . escape_check($newuser) . "')"); $newref = sql_insert_id(); #Create Default Dash for the new user if ($home_dash) { include dirname(__FILE__) . "/dash_functions.php"; create_new_user_dash($newref); } # Create a collection for this user, the collection name is translated when displayed! $new = create_collection($newref, "My Collection", 0, 1); # Do not translate this string! # set this to be the user's current collection sql_query("update user set current_collection='{$new}' where ref='{$newref}'"); return $newref; }
function setup_user($userdata) { # Given an array of user data loaded from the user table, set up all necessary global variables for this user # including permissions, current collection, config overrides and so on. global $userpermissions, $usergroup, $usergroupname, $usergroupparent, $useremail, $userpassword, $userfullname, $userfixedtheme, $ip_restrict_group, $ip_restrict_user, $rs_session, $global_permissions, $userref, $username, $anonymous_user_session_collection, $global_permissions_mask, $user_preferences, $userrequestmode, $usersearchfilter, $usereditfilter, $userderestrictfilter, $hidden_collections, $userresourcedefaults, $userrequestmode, $request_adds_to_collection, $usercollection, $lang, $validcollection; # Hook to modify user permissions if (hook("userpermissions")) { $userdata["permissions"] = hook("userpermissions"); } $userref = $userdata["ref"]; $username = $userdata["username"]; # Create userpermissions array for checkperm() function $userpermissions = array_diff(array_merge(explode(",", trim($global_permissions)), explode(",", trim($userdata["permissions"]))), explode(",", trim($global_permissions_mask))); $userpermissions = array_values($userpermissions); # Resquence array as the above array_diff() causes out of step keys. $usergroup = $userdata["usergroup"]; $usergroupname = $userdata["groupname"]; $usergroupparent = $userdata["parent"]; $useremail = $userdata["email"]; $userpassword = $userdata["password"]; $userfullname = $userdata["fullname"]; if (!isset($userfixedtheme)) { $userfixedtheme = $userdata["fixed_theme"]; } # only set if not set in config.php $ip_restrict_group = trim($userdata["ip_restrict_group"]); $ip_restrict_user = trim($userdata["ip_restrict_user"]); if (isset($rs_session)) { if (!function_exists("get_user_collections")) { include_once "collections_functions.php"; } // Get all the collections that relate to this session $sessioncollections = get_session_collections($rs_session, $userref, true); if ($anonymous_user_session_collection) { // Just get the first one if more $usercollection = $sessioncollections[0]; $collection_allow_creation = false; // Hide all links that allow creation of new collections } else { // Unlikely scenario, but maybe we do allow anonymous users to change the selected collection for all other anonymous users $usercollection = $userdata["current_collection"]; } } else { $usercollection = $userdata["current_collection"]; // Check collection actually exists $validcollection = sql_value("select ref value from collection where ref='{$usercollection}'", 0); if ($validcollection == 0) { // Not a valid collection - switch to user's primary collection if there is one $usercollection = sql_value("select ref value from collection where user='******' and name like 'My Collection%' order by created asc limit 1", 0); if ($usercollection != 0) { # set this to be the user's current collection sql_query("update user set current_collection='{$usercollection}' where ref='{$userref}'"); } } if ($usercollection == 0 || !is_numeric($usercollection)) { # Create a collection for this user global $lang; include_once "collections_functions.php"; # Make sure collections functions are included before create_collection # The collection name is translated when displayed! $usercollection = create_collection($userref, "My Collection", 0, 1); # Do not translate this string! # set this to be the user's current collection sql_query("update user set current_collection='{$usercollection}' where ref='{$userref}'"); } } $usersearchfilter = $userdata["search_filter"]; $usereditfilter = $userdata["edit_filter"]; $userderestrictfilter = $userdata["derestrict_filter"]; $hidden_collections = explode(",", $userdata["hidden_collections"]); $userresourcedefaults = $userdata["resource_defaults"]; $userrequestmode = trim($userdata["request_mode"]); $userpreferences = $user_preferences ? sql_query("SELECT user, `value` AS colour_theme FROM user_preferences WHERE user = '******' AND parameter = 'colour_theme';") : FALSE; $userpreferences = $userpreferences && isset($userpreferences[0]) ? $userpreferences[0] : FALSE; # Some alternative language choices for basket mode / e-commerce if ($userrequestmode == 2 || $userrequestmode == 3) { $lang["addtocollection"] = $lang["addtobasket"]; $lang["action-addtocollection"] = $lang["addtobasket"]; $lang["addtocurrentcollection"] = $lang["addtobasket"]; $lang["requestaddedtocollection"] = $lang["buyitemaddedtocollection"]; $lang["action-request"] = $lang["addtobasket"]; $lang["managemycollections"] = $lang["viewpurchases"]; $lang["mycollection"] = $lang["yourbasket"]; $lang["action-removefromcollection"] = $lang["removefrombasket"]; $lang["total-collections-0"] = $lang["total-orders-0"]; $lang["total-collections-1"] = $lang["total-orders-1"]; $lang["total-collections-2"] = $lang["total-orders-2"]; # The request button (renamed "Buy" by the line above) should always add the item to the current collection. $request_adds_to_collection = true; } # Apply config override options $config_options = trim($userdata["config_options"]); if ($config_options != "") { // We need to get all globals as we don't know what may be referenced here extract($GLOBALS, EXTR_REFS | EXTR_SKIP); eval($config_options); } }