'Popup Test', 'page callback' => '_popups_test_popups', 'type' => MENU_CALLBACK, 'access callback' => TRUE, ); $items['popups/test/response'] = array( 'page callback' => '_popups_test_response', 'type' => MENU_CALLBACK, 'access callback' => TRUE, ); $items['popups/test/namechange'] = array( 'page callback' => 'drupal_get_form', 'page arguments' => array('_popups_test_namechange'), 'type' => MENU_CALLBACK, 'access callback' => TRUE, ); $items['popups/test/old'] = array( 'title' => 'Popup Test', 'page callback' => '_popups_test_popups_old', 'type' => MENU_CALLBACK, 'access callback' => TRUE, ); return $items; } /** * Implementation of hook_popups(). * * This implements hook_popups, defined in popups_get_popups. * See the comments in popups_add_popups for explination of the options. * Adding popup behavior to the core admin pages has been moved to popups_admin. * * @return: Array of link selectors to apply popup behavior to. * Keyed by path or form_id. */ function popups_test_popups() { return array( 'popups/test' => array( // test page. // '*' => array( // test page. '#test-popup' => array( // 'additionalJavascript' => array('misc/collapse.js'), // 'forceReturn' => 'node/add/story', ), ), ); } // ************************************************************************** // TESTING **************************************************************** // ************************************************************************** function _popups_test_popups() { popups_add_popups(); $output = '
    '; $output .= '
  1. '. l("Pop up entire local page.", 'popups/test/response', array('attributes' => array('class' => 'popups'))); $output .= "
  2. ". l("Pop with options (href override).", 'popups/test/', array('attributes' => array('class' => 'popups', 'on-popups-options' => '{href: "test/response"}'))); $output .= "
  3. ". l("Pop with options (width=200px).", 'popups/test/response', array('attributes' => array('class' => 'popups', 'on-popups-options' => '{width: "200px"}'))); $output .= "
  4. Non-link popup
  5. "; $output .= '
  6. '. l("Add Story (hook)", 'node/add/story', array( 'attributes' => array('id' => 'test-popup'))); $output .= '
  7. '. l("Add Story (attribute).", 'node/add/story', array( 'attributes' => array('class' => 'popups-form'))); $output .= '
  8. '. l("Change Settings and ajax update entire content area: ", 'admin/settings/popups', array( 'attributes' => array('class' => 'popups-form'), )); $output .= " (Auto Fade checkbox is: " . (variable_get('popups_autoclose_final_message', 1) ? 'on' : 'off') . ')'; $output .= '
  9. '. l("Change Settings and ajax update only single target.", 'admin/settings/popups', array( 'attributes' => array('id' => 'reload-target'), )); $output .= " (Auto Fade checkbox is: " . (variable_get('popups_autoclose_final_message', 1) ? 'on' : 'off') . ')'; popups_add_popups(array('#reload-target'=>array('targetSelectors'=>array('#response2')))); $output .= '
  10. '. l("Change Settings and ajax update multiple targets with data from other page (tricky!).", 'admin/settings/popups', array( 'attributes' => array( 'id' => 'foo', 'class' => 'popups-form', 'on-popups-options' => '{targetSelectors: {"#edit-popups-always-scan-wrapper": "#foo", "#edit-popups-popup-final-message-wrapper": "#test-list li:first"}, forceReturn: "admin/settings/popups"}'))); $output .= '
  11. '. l("Change Settings and reload entire page.", 'admin/settings/popups', array( 'attributes' => array('class' => 'popups-form-reload'), )); $output .= '
  12. '. l("Pop up defined by popups_add_popups rule.", 'popups/test/response', array('attributes' => array('id' => 'rule-test'))); popups_add_popups(array('#rule-test'=>array('width'=>'300px'))); $output .= '
  13. '. l('Ajax update just Page Title (only works if you theme uses id="page-title")', 'popups/test/namechange', array('attributes' => array('id' => 'title-test'))); popups_add_popups(array('#title-test'=>array('titleSelectors'=>array('#page-title'), 'noUpdate'=> TRUE, 'forceReturn'=>'popups/test/namechange'))); global $user; $output .= "
  14. You are user number $user->uid
  15. "; if ($user->uid == 0) { $output .= '
  16. '. l("Login and ajax refresh content area.", 'user', array('attributes' => array('class' => 'popups-form'))); $output .= '
  17. '. l("Login and reload entire page.", 'user', array('attributes' => array('class' => 'popups-form-reload'))); $output .= '
  18. '. l("Login and do not reload anything.", 'user', array('attributes' => array('class' => 'popups-form-noupdate'))); } else { $output .= '
  19. '. l("Logout (need to surpress warning b/c session is dumped)", 'logout', array('attributes' => array('id' => 'logout'))); } // Need to have the rule outside the else, or it won't get loaded on ajax reload. popups_add_popups(array('#logout'=>array('noUpdate'=>TRUE, 'reloadOnError'=>TRUE))); $output .= '
  20. '. l("Add Poll (test inline)", 'node/add/poll', array('attributes' => array('class' => 'popups-form'))); $output .= "
"; return $output; } function _popups_test_popups_old() { // drupal_set_message('Popup Test Page: If you edit your page.tpl.php to wrap the print $messages in a div with id="popit", this message will popup on page load'); popups_add_popups(); $output = '"; return $output; } function _popups_test_response() { drupal_set_title("Popup Test Two"); return '
Hello World
Popup chaining test'; } function _popups_test_namechange() { drupal_set_title("New Name for Test Page"); $form = array(); $form['popups_popup_final_message'] = array( '#type' => 'submit', '#value' => t('Test Name Change'), ); return $form; }