You are here

function kwresearch_save_page_keyword in Keyword Research 7

Same name and namespace in other branches
  1. 6 kwresearch.module \kwresearch_save_page_keyword()

Saves a page keyword. Links a site keyword to a node/page

Parameters

int|str $pid - If int, treated as a nid. If string treated as a path:

str $keyword:

int $kid:

stdClass $page_keyword_obj - object containing parameters:

bool $update_stats - if true, will generate and save keyword stats data:

bool $save_term - if true, will also call save_site_keyword:

4 calls to kwresearch_save_page_keyword()
kwresearch_node_insert in ./kwresearch.module
Implements hook_node_insert().
kwresearch_node_save in ./kwresearch.module
kwresearch_page_keywords_edit_form_submit in ./kwresearch.admin.inc
Processes the page keyword edit form
kwresearch_toggle_page_keyword_js in ./kwresearch.module
AJAX handler to create, delete and set priorities for page keywords

File

./kwresearch.module, line 547

Code

function kwresearch_save_page_keyword($pid, $keyword, $kid = NULL, $page_keyword_obj = NULL, $update_stats = FALSE, $save_term = FALSE) {

  //kwresearch_save_site_keyword($keyword, $kid = NULL, $keyword_obj = NULL, $update_stats = FALSE)
  $msgs = array();
  if (!is_object($page_keyword_obj)) {
    $page_keyword_obj = new stdClass();
  }
  $keyword = strtolower($keyword);
  $key = $kid ? $kid : $keyword;
  if (!$key) {
    return FALSE;
  }
  $keyword_obj0 = kwresearch_load_site_keyword($key);

  // if site keyword does not exist, create it
  if (!isset($keyword_obj0->kid) || !$keyword_obj0->kid) {
    $kid = kwresearch_save_site_keyword($keyword);
    $keyword_obj0 = kwresearch_load_site_keyword($kid);
  }
  $kid = $keyword_obj0->kid;
  $page_keyword_obj0 = kwresearch_load_page_keyword($pid, $kid);
  if (empty($page_keyword_obj->uid)) {
    $page_keyword_obj->uid = !empty($page_keyword_obj0->uid) ? $page_keyword_obj0->uid : $GLOBALS['user']->uid;

    // set logged in user as default
  }
  if (empty($page_keyword_obj->priority) || !is_numeric($page_keyword_obj->priority)) {
    $page_keyword_obj->priority = !empty($page_keyword_obj0->priority) ? $page_keyword_obj0->priority : -1;

    // set default to standard
  }
  $pn = kwresearch_construct_pathnid_obj($pid, $msgs);

  // page keyword does not exists, create it
  if (!isset($page_keyword_obj0->kid) || !$page_keyword_obj0->kid) {
    $sql = '
      INSERT INTO {kwresearch_page_keyword}
      (kid, nid, path, priority, uid)
      VALUES (:kid, :nid,:path, :priority, :uid)
    ';
    $args = array(
      ':kid' => $kid,
      ':nid' => $pn->nid,
      ':path' => $pn->path,
      ':priority' => $page_keyword_obj->priority,
      ':uid' => $page_keyword_obj->uid,
    );
    db_query($sql, $args);
  }
  else {

    // if priority > 0 update table, otherwise delete record
    if ($page_keyword_obj->priority) {
      $sql = '
        UPDATE {kwresearch_page_keyword}
        SET priority = :priority
        WHERE kid = :kid
          AND path = :path
      ';
      $args = array(
        ':priority' => $page_keyword_obj->priority,
        ':kid' => $kid,
        ':path' => $pn->path,
      );
      db_query($sql, $args);
    }
    else {
      kwresearch_delete_page_keyword($kid, $pid);
    }
  }
  kwresearch_update_keyword_page_counts($kid);
  return $kid;
}