1 |
7942932f
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
/**
|
4 |
|
|
* @file
|
5 |
|
|
* Generate fake votingapi votes for development testing.
|
6 |
|
|
*/
|
7 |
|
|
|
8 |
|
|
/**
|
9 |
|
|
* Utility function to generate votes.
|
10 |
|
|
*/
|
11 |
|
|
function votingapi_generate_votes($entity_type = 'node', $vote_type = 'percent', $options = array()) {
|
12 |
|
|
module_load_include('inc', 'devel_generate');
|
13 |
|
|
$options += array(
|
14 |
|
|
'age' => 36000,
|
15 |
|
|
'types' => array(),
|
16 |
|
|
'kill' => FALSE,
|
17 |
|
|
);
|
18 |
|
|
|
19 |
|
|
if (!empty($options['kill_votes'])) {
|
20 |
|
|
db_truncate('votingapi_vote');
|
21 |
|
|
db_truncate('votingapi_cache');
|
22 |
|
|
}
|
23 |
|
|
|
24 |
|
|
if (($schema = drupal_get_schema($entity_type)) && ($entity_id_column = array_shift($schema['primary key']))) {
|
25 |
|
|
// oh look we found a schema yay
|
26 |
|
|
}
|
27 |
|
|
else {
|
28 |
|
|
$entity_type = 'node';
|
29 |
|
|
$entity_id_column = 'nid';
|
30 |
|
|
}
|
31 |
|
|
$uids = devel_get_users();
|
32 |
|
|
|
33 |
|
|
$query = db_select($entity_type, 'e')->fields('e', array($entity_id_column));
|
34 |
|
|
if ($entity_type == 'node' && !empty($options['types'])) {
|
35 |
|
|
$query->condition('e.type', $options['types'], 'IN');
|
36 |
|
|
}
|
37 |
|
|
$results = $query->execute()->fetchAll(PDO::FETCH_ASSOC);
|
38 |
|
|
|
39 |
|
|
foreach ($results as $entity) {
|
40 |
|
|
_votingapi_cast_votes($entity_type, $entity[$entity_id_column], $options['age'], $uids, $vote_type);
|
41 |
|
|
}
|
42 |
|
|
}
|
43 |
|
|
|
44 |
|
|
/**
|
45 |
|
|
* Utility function to generate votes on a node by a set of users.
|
46 |
|
|
*/
|
47 |
|
|
function _votingapi_cast_votes($etype, $eid, $timestamp = 0, $uids = array(), $style = 'percent') {
|
48 |
|
|
$votes = array();
|
49 |
|
|
static $tags;
|
50 |
|
|
if (!isset($tags)) {
|
51 |
|
|
$tags = explode(' ', devel_create_greeking(30));
|
52 |
|
|
}
|
53 |
|
|
foreach ($uids as $uid) {
|
54 |
|
|
switch ($style) {
|
55 |
|
|
case 'percent':
|
56 |
|
|
$votes[] = array(
|
57 |
|
|
'uid' => $uid,
|
58 |
|
|
'entity_type' => $etype,
|
59 |
|
|
'entity_id' => $eid,
|
60 |
|
|
'value_type' => 'percent',
|
61 |
|
|
'timestamp' => REQUEST_TIME - mt_rand(0, $timestamp),
|
62 |
|
|
'value' => mt_rand(1, 5) * 20,
|
63 |
|
|
'tag' => $tags[mt_rand(0, 20)],
|
64 |
|
|
);
|
65 |
|
|
break;
|
66 |
|
|
case 'points':
|
67 |
|
|
if (rand(0, 3)) {
|
68 |
|
|
$votes[] = array(
|
69 |
|
|
'uid' => $uid,
|
70 |
|
|
'entity_type' => $etype,
|
71 |
|
|
'entity_id' => $eid,
|
72 |
|
|
'value_type' => 'points',
|
73 |
|
|
'timestamp' => REQUEST_TIME - mt_rand(0, $timestamp),
|
74 |
|
|
'value' => rand(0, 1) ? 1 : -1,
|
75 |
|
|
);
|
76 |
|
|
}
|
77 |
|
|
break;
|
78 |
|
|
}
|
79 |
|
|
}
|
80 |
|
|
votingapi_set_votes($votes, array());
|
81 |
|
|
} |