diff --git a/Repositories/statistics/htdocs/download_by_dept.php b/Repositories/statistics/htdocs/download_by_dept.php new file mode 100755 index 0000000..457e964 --- /dev/null +++ b/Repositories/statistics/htdocs/download_by_dept.php @@ -0,0 +1,135 @@ + + + + + Downloads by department + + + + +

Downloads by department

+ +setDebug($GLOBALS["config_vars"]["debug"][$GLOBALS["config_vars"]["thisrequest"]]); */ + +$connection_archive = $sql_archive->doConnectServer + ( $GLOBALS["config_vars"]["connections"]["sqlserver_eprints"], + $GLOBALS["config_vars"]["connections"]["sqluser_eprints"], + $GLOBALS["config_vars"]["connections"]["sqlpass_eprints"] + ); +if (!$connection_archive) + error($GLOBALS["config_vars"]["messages"]["message_noservice"] ,ERROR_EXIT); + +$db_archive = $sql_archive->doConnectDb($GLOBALS["config_vars"]["connections"]["sqldatabase_eprints"]); +if (!$db_archive) +{ + error($GLOBALS["config_vars"]["messages"]["message_noservice"],ERROR_EXIT); + exitScript(); +} + +$sql_stats = new sqlconn(); + +$connection_stats = $sql_stats->doConnectServer + ( $GLOBALS["config_vars"]["connections"]["sqlserver"], + $GLOBALS["config_vars"]["connections"]["sqluser_public"], + $GLOBALS["config_vars"]["connections"]["sqlpass_public"] + ); +if (!$connection_stats) + error($GLOBALS["config_vars"]["messages"]["message_noservice"] ,ERROR_EXIT); + +$db_stats = $sql_stats->doConnectDb($GLOBALS["config_vars"]["connections"]["sqldatabase"]); +if (!$db_stats) +{ + error($GLOBALS["config_vars"]["messages"]["message_noservice"],ERROR_EXIT); + exitScript(); +} + +$query = +"SELECT TRIM(TRAILING ' ' FROM S.name) AS name, E.eprintid AS eprintid + FROM archive E INNER JOIN archive_affiliations A USING (eprintid) + INNER JOIN subject_name S ON (A.affiliations = S.subjectid) + WHERE S.name LIKE '% ' + ORDER BY S.name"; /* Note use of non-breaking space (UTF8 00A0) in name column. */ + +$current_dept = ""; +$idlist = ""; +$dept_count = 0; +$result = mysql_query($query, $connection_archive); + +if (!$result) +{ + error($GLOBALS["config_vars"]["messages"]["message_noservice"],ERROR_EXIT); + print "

failed departments query

"; + exitScript(); +} +else +{ + print " + + + + "; + while ($row = mysql_fetch_assoc($result)) + { + if ($row["name"] != $current_dept) + { + print_new_row($connection_stats, $current_dept, $dept_count, $idlist); + $current_dept = $row["name"]; + $dept_count = 0; + $idlist = ""; + } + $dept_count++; + $idlist .= $row["eprintid"] . ','; + } + print_new_row($connection_stats, $current_dept, $dept_count, $idlist); + print "
DepartmenteprintsAbstract viewsDownloads
"; +} + +function print_new_row ($conn, $dept, $count, $idlist) +{ + if ($dept != "") + { + print ""; + print "" . $dept . ""; + print "" . $count . ""; + print_downloads($conn, rtrim($idlist, ',')); + } +} + +function print_downloads ($conn, $idlist) +{ + $query = + "SELECT COUNT(*) AS num + FROM view + WHERE view.archiveid IN ($idlist) + AND view.view_type = "; + + $viewtypes = array('abstract', 'download'); + + foreach ($viewtypes as $type) + { + $result = mysql_query($query . "'" . $type . "'", $conn); + + if (!$result) + { + print "failed"; + } + else + { + $row = mysql_fetch_assoc($result); + print "" . $row["num"] . ""; + } + } +} + +?> + + + +