You are here

function kwresearch_save_page_keyword in Keyword Research 6

Same name and namespace in other branches
  1. 7 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:

3 calls to kwresearch_save_page_keyword()
kwresearch_nodeapi in ./kwresearch.module
Implementation of hook_nodeapi().
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 429

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)
  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 (!$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 (!$page_keyword_obj->uid) {
    $page_keyword_obj->uid = $page_keyword_obj0->uid ? $page_keyword_obj0->uid : $GLOBALS['user']->uid;

    // set logged in user as default
  }
  if (!is_numeric($page_keyword_obj->priority)) {
    $page_keyword_obj->priority = $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 (!$page_keyword_obj0->kid) {
    $sql = '
      INSERT INTO {kwresearch_page_keyword}
      (kid, nid, path, priority, uid)
      VALUES (%d, %d,"%s", %d, %d)
    ';
    db_query($sql, $kid, $pn->nid, $pn->path, $page_keyword_obj->priority, $page_keyword_obj->uid);
  }
  else {

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