Skip to content
print_pdf.install 5.54 KiB
Newer Older
<?php
// $Id$

/**
 * @file
 * Install file of the print_pdf module
 */

/**
 * Implementation of hook_install().
 */
function print_pdf_install() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {print_pdf_node_conf} (
        nid int(10) unsigned NOT NULL,
        link tinyint(3) unsigned NOT NULL default '1',
        comments tinyint(3) unsigned NOT NULL default '1',
        url_list tinyint(3) unsigned NOT NULL default '1',
        PRIMARY KEY  (nid)
      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      db_query("CREATE TABLE {print_pdf_page_counter} (
        path varchar(128) NOT NULL,
        totalcount bigint(20) unsigned NOT NULL default '0',
        timestamp int(10) unsigned NOT NULL default '0',
        PRIMARY KEY  (path)
      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {print_pdf_node_conf} (
        nid int_unsigned NOT NULL,
        link smallint NOT NULL default '1',
        comments smallint_unsigned NOT NULL default '1',
        url_list smallint_unsigned NOT NULL default '1',
        PRIMARY KEY  (nid)
      )");
      db_query("CREATE TABLE {print_pdf_page_counter} (
        path varchar(128) NOT NULL,
        totalcount bigint NOT NULL default '0',
        timestamp int_unsigned NOT NULL default '0',
        PRIMARY KEY  (path)
      )");
      break;
  }
}

/**
 * Implementation of hook_uninstall().
 */
function print_pdf_uninstall() {
  db_query('DROP TABLE {print_pdf_node_conf}');
  db_query('DROP TABLE {print_pdf_page_counter}');

  variable_del('print_pdf_settings');
  variable_del('print_pdf_show_link');
  variable_del('print_pdf_link_pos');
  variable_del('print_pdf_node_link_visibility');
  variable_del('print_pdf_node_link_pages');
  variable_del('print_pdf_link_class');
  variable_del('print_pdf_sys_link_visibility');
  variable_del('print_pdf_sys_link_pages');
  variable_del('print_pdf_book_link');
  variable_del('print_pdf_pdf_tool');
  variable_del('print_pdf_content_disposition');
  variable_del('print_pdf_paper_size');
  variable_del('print_pdf_page_orientation');
  variable_del('print_pdf_font_family');
  variable_del('print_pdf_font_size');
  variable_del('print_pdf_link_text');
  variable_del('print_pdf_link_use_alias');
  variable_del('print_pdf_wkhtmltopdf_xdisplay');
  $settings = db_query("SELECT name FROM {variable} WHERE name LIKE 'print\_pdf\_display\_%'");
  while ($variable = db_fetch_object($settings)) {
    variable_del($variable->name);
  }
}

/**
 * Update to version 5.x-4.0
 */
function print_pdf_update_6000() {
  global $conf;

  $ret = array();
  if (isset($conf['print_pdf_settings'])) {
    $print_pdf_settings = variable_get('print_pdf_settings', '');
    variable_set('print_pdf_link_pos', array('link' => ($print_pdf_settings['show_link'] ? 'link' : 0) ));
    variable_set('print_pdf_show_link', max(1, $print_pdf_settings['show_link']));
    variable_set('print_pdf_node_link_visibility', $print_pdf_settings['node_link_visibility']);
    variable_set('print_pdf_node_link_pages', $print_pdf_settings['node_link_pages']);
    variable_set('print_pdf_link_class', $print_pdf_settings['link_class']);
    variable_set('print_pdf_sys_link_visibility', $print_pdf_settings['sys_link_visibility']);
    variable_set('print_pdf_sys_link_pages', $print_pdf_settings['sys_link_pages']);
    variable_set('print_pdf_book_link', $print_pdf_settings['book_link']);
    variable_set('print_pdf_pdf_tool', $print_pdf_settings['pdf_tool']);
    variable_set('print_pdf_content_disposition', $print_pdf_settings['content_disposition']);
    variable_set('print_pdf_paper_size', $print_pdf_settings['paper_size']);
    variable_set('print_pdf_page_orientation', $print_pdf_settings['page_orientation']);
    variable_del('print_pdf_settings');
  }
  return $ret;
}

/**
 * Update to version 5.x-4.1
 */
function print_pdf_update_6001() {
  $ret = array();
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {print_pdf_node_conf} (
        nid int(10) unsigned NOT NULL,
        link tinyint(3) unsigned NOT NULL default '1',
        comments tinyint(3) unsigned NOT NULL default '1',
        url_list tinyint(3) unsigned NOT NULL default '1',
        PRIMARY KEY  (nid)
      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      db_query("CREATE TABLE {print_pdf_page_counter} (
        path varchar(128) NOT NULL,
        totalcount bigint(20) unsigned NOT NULL default '0',
        timestamp int(10) unsigned NOT NULL default '0',
        PRIMARY KEY  (path)
      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {print_pdf_node_conf} (
        nid int_unsigned NOT NULL,
        link smallint NOT NULL default '1',
        comments smallint_unsigned NOT NULL default '1',
        url_list smallint_unsigned NOT NULL default '1',
        PRIMARY KEY  (nid)
      )");
      db_query("CREATE TABLE {print_pdf_page_counter} (
        path varchar(128) NOT NULL,
        totalcount bigint NOT NULL default '0',
        timestamp int_unsigned NOT NULL default '0',
        PRIMARY KEY  (path)
      )");
      break;
  }
  return $ret;
}

/**
 * Update to version 5.x-4.2
 */
function print_pdf_update_6003() {
  // Delete custom text strings set to the default
  $ret = array();
  $vars = array(
    'print_pdf_link_text' => 'PDF version',
  );

  $t = get_t();

  foreach ($vars as $name => $default) {
João Ventura's avatar
João Ventura committed
    if (variable_get($name, '') == $t($default)) {