array( 'title' => t('Administer file viewer'), 'description' => t('Access the file viewer administration pages.'), ), 'access fileviewer' => array( 'title' => t('Access file viewer'), 'description' => t('Use file viewer to browse file.'), ), 'download file from fileviewer' => array( 'title' => t('Download file from fileviewer'), 'description' => t('Access download lin from file viewer.'), ), ); } function fileviewer_menu() { $items = array(); $items['file/%'] = array( 'title' => 'File virewer', 'page callback' => 'fileviewer_page', 'page arguments' => array(1), 'access arguments' => array('access fileviewer'), 'file' => 'includes/page.inc', 'type' => MENU_CALLBACK, ); $items['admin/config/media/fileviewer/flush'] = array( 'title' => 'Flush files for file viewer', 'description' => 'Settings for file viewer.', 'page callback' => 'drupal_get_form', 'page arguments' => array('fileviewer_flush_confirm'), 'access arguments' => array('administer fileviewer'), ); $items['admin/config/media/fileviewer'] = array( 'title' => 'File viewer', 'description' => 'Settings for file viewer.', 'page callback' => 'drupal_get_form', 'page arguments' => array('fileviewer_settings'), 'access arguments' => array('administer fileviewer'), // 'file' => 'admin.inc', 'type' => MENU_NORMAL_ITEM, ); $items['admin/config/media/fileviewer/settings'] = array( 'title' => 'File viewer', 'description' => 'Settings for file viewer.', 'page callback' => 'drupal_get_form', 'page arguments' => array('fileviewer_settings'), 'access arguments' => array('administer fileviewer'), // 'file' => 'admin.inc', 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => 0 ); $items['admin/config/media/fileviewer/filetype'] = array( 'title' => 'File types', 'description' => 'Settings for filetypes.', 'page callback' => 'drupal_get_form', 'page arguments' => array('fileviewer_filetype_settings'), 'access arguments' => array('administer fileviewer'), // 'file' => 'admin.inc', 'type' => MENU_LOCAL_TASK, 'weight' => 1 ); return $items; } function fileviewer_settings(){ drupal_set_message(t('You need to !flush all the cached files after changing the directory.', array('!flush' => l(t('flush'), 'admin/config/media/fileviewer/flush'))), 'warning'); $form['fileviewer_path'] = array( '#type' => 'textfield', '#title' => t('Fileviewer directory'), '#default_value' => variable_get('fileviewer_path', 'fileviewer'), '#description' => t('A file system path where uploaded files will be extracted or parsed after uploaded.'), ); $form['fileviewer_flush'] = array( '#type' => 'submit', '#value' => t('Flush all files'), '#submit' => array('fileviewer_flush_submit'), ); return system_settings_form($form); } function fileviewer_filetype_settings(){ $form =array(); $form['fileviewer_pdf'] = array( '#type' => 'fieldset', '#title' => t('PDF'), '#collapsible' => TRUE, '#collapsed' => FALSE ); $form['fileviewer_pdf']['fileviewer_pdf_iabookreader_search_inside'] = array( '#type' => 'checkbox', '#title' => t('Enable "search inside" for PDF file in the Internet Archive BookReader'), '#default_value' => variable_get('fileviewer_pdf_iabookreader_search_inside', TRUE), ); $form['fileviewer_epub'] = array( '#type' => 'fieldset', '#title' => t('EPUB'), '#description' => t('If you want epub to be support, please contribute for epub readers or donate. I don\'t have time now.'), '#collapsible' => TRUE, '#collapsed' => FALSE, ); $form['fileviewer_epub']['epubjs'] = array( '#type' => 'checkbox', '#title' => t('EPUB'), '#description' => t('try http://threepress.org/static/epubjs/, stop update :(') ); $form['fileviewer_epub']['bibliotype'] = array( '#type' => 'checkbox', '#title' => t('EPUB'), '#description' => t('try http://craigmod.com/bibliotype/, never upate :(') ); return system_settings_form($form); } function fileviewer_flush_submit($form, &$form_state) { drupal_goto('admin/config/media/fileviewer/flush'); return; } function fileviewer_flush_confirm_submit($form, &$form_state) { file_unmanaged_delete_recursive('public://' . variable_get('fileviewer_path', 'fileviewer')); foreach (db_select('file_managed', 'fid')->fields('fid', array('fid'))->execute()->fetchCol() as $fid){ $file = file_load($fid); fileviewer_file_update($file); } drupal_set_message(t('Files for fileviewer have been flushed')); drupal_goto('admin/config/media/fileviewer'); return; } function fileviewer_flush_confirm($form, &$form_state) { return confirm_form( $form, t('Are you sure you want to flush all the files for fileviewer?'), 'admin/config/media/fileviewer', t('This will clear all the collected performance statistics stored in APC. This action cannot be undone.'), t('Confirm flush'), t('Cancel')); } function fileviewer_block_info($op = 'list', $delta = 0, $edit = array()){ $blocks = array(); $blocks['fileviewer'] = array( 'info' => t('File viewer toc'), 'status' => TRUE, 'region' => 'sidebar_first', 'visibility' => 1, 'pages' => 'file/*', ); return $blocks; } function fileviewer_block_view($delta = ''){ $block = array(); switch ($delta) { case 'fileviewer': $block['subject'] = t('Contents'); $block['content'] = '