You are here

function recommender_example_admin_form in Recommender API 7.6

1 string reference to 'recommender_example_admin_form'
recommender_example_menu in recommender_example/recommender_example.module
Implements hook_menu().

File

recommender_example/recommender_example.module, line 23

Code

function recommender_example_admin_form($form, &$form_state) {
  $form['info'] = array(
    '#markup' => '<p>' . t('This module is an example about using Recommender API. Data is from !link. Please refer to the README file for more details.', array(
      '!link' => l('Resnick et al (1994)', 'http://ccs.mit.edu/papers/CCSWP165.html'),
    )) . '</p>',
  );

  // handle preference.
  if (db_query("SELECT COUNT(*) FROM {recommender_example_preference}")
    ->fetchField() > 0) {
    $rows = db_query("SELECT uid, eid, score FROM {recommender_example_preference}")
      ->fetchAll(PDO::FETCH_NUM);
    foreach ($rows as &$row) {
      $user = user_load($row[0]);
      $row[0] = l($user->name, 'user/' . $user->uid);
      $node = node_load($row[1]);
      $row[1] = l($node->title, 'node/' . $node->nid);
    }
    $form['preference_data'] = array(
      '#markup' => theme('table', array(
        'header' => array(
          'User',
          'Node',
          'Score',
        ),
        'rows' => $rows,
        'caption' => t('Ratings data'),
      )),
    );
  }
  else {
    $form['preference_data'] = array(
      '#markup' => '<p>' . t('Please load example data by clicking the "Load Example Data" button below. Make sure you have at least 4 users and 6 nodes before loading example data, or generate users and nodes first by using the devel_generate.module.') . '</p>',
    );
  }
  if (db_query("SELECT COUNT(*) FROM {recommender_example_prediction_user}")
    ->fetchField() > 0) {
    $rows = db_query("SELECT uid1, uid2, score FROM {recommender_example_user_similarity}")
      ->fetchAll(PDO::FETCH_NUM);
    foreach ($rows as &$row) {
      $user1 = user_load($row[0]);
      $row[0] = l($user1->name, 'user/' . $user1->uid);
      $user2 = user_load($row[1]);
      $row[1] = l($user2->name, 'user/' . $user2->uid);
    }
    $form['similarity_data'] = array(
      '#markup' => theme('table', array(
        'header' => array(
          'User 1',
          'User 2',
          'Score',
        ),
        'rows' => $rows,
        'caption' => t('User-User similarity data'),
      )),
    );
    $rows = db_query("SELECT uid, eid, score FROM {recommender_example_prediction_user}")
      ->fetchAll(PDO::FETCH_NUM);
    foreach ($rows as &$row) {
      $user = user_load($row[0]);
      $row[0] = l($user->name, 'user/' . $user->uid);
      $node = node_load($row[1]);
      $row[1] = l($node->title, 'node/' . $node->nid);
    }
    $form['prediction_data'] = array(
      '#markup' => theme('table', array(
        'header' => array(
          'User',
          'Node',
          'Score',
        ),
        'rows' => $rows,
        'caption' => t('Prediction data'),
      )),
    );
    $form['views_message'] = array(
      '#markup' => '<p>' . t('Recommendations data are computed. Please enable !link to display recommendations on user pages and node pages.', array(
        '!link' => l(t('the default Recommender Example views'), 'admin/structure/views'),
      )) . '</p>',
    );
  }
  else {
    $form['prediction_data'] = array(
      '#markup' => '<p>' . t('Recommendations are not generated yet. After example data are loaded, please go to !add and submit a command to run Item-Item algorithm. Then click the "Run Recommender" button below to computing recommendations. You might also use Drush or the Java program to run recommender. See README for more details.', array(
        '!add' => l(t('Command'), COMPUTING_MODULE_ADMIN_PATH . '/list'),
      )) . '</p>',
    );
  }
  $form['actions'] = array(
    '#type' => 'actions',
    'load' => array(
      '#type' => 'submit',
      '#name' => 'load',
      '#value' => t('Load Example Data'),
    ),
  );
  return $form;
}