Diff for /db/prgsrc/drupal/modules/chgk_db/chgk_db.module between versions 1.5 and 1.6

version 1.5, 2010/04/24 18:04:15 version 1.6, 2010/04/24 21:45:49
Line 6 Line 6
 *********************/  *********************/
   
 require_once(dirname(__FILE__)."/classes/DbPackage.class.php");  require_once(dirname(__FILE__)."/classes/DbPackage.class.php");
   require_once(dirname(__FILE__)."/classes/DbEditors.class.php");
   
   
 /**  /**
  * Implementation of hook_menu().   * Implementation of hook_menu().
  */   */
 function chgk_db_menu() {  function chgk_db_menu() {
   $items['print'] = array(  #print_r(debug_backtrace());
     $items['tour/%/view'] = array(
       'title' => 'Читать',
       'type' => MENU_DEFAULT_LOCAL_TASK,
       'weight' => 0
     );
   
     $items['tour/%/print'] = array(
     'path'  => 'print',      'path'  => 'print',
       'title' => 'Печатать',
     'page callback' => 'chgk_db_print',      'page callback' => 'chgk_db_print',
     'page arguments' => array(1),      'page arguments' => array(1),
     'access callback' => "chgk_db_access",      'access callback' => "chgk_db_access",
       'access arguments' => array(1, 'print'),
       'localized_options' => array('attributes' => array('target'=>'_blank')),
       'type' => MENU_LOCAL_TASK,
       'weight' => 1    
   );    );
   $items['fb2'] = array(  
     'path'  => 'fb2',    
     $items['tour/%/fb2'] = array(
       'path'  => 'tour/%/fb2',
       'title' => 'FB2',
     'page callback' => 'chgk_db_fb2',      'page callback' => 'chgk_db_fb2',
     'page arguments' => array(1),      'page arguments' => array(1),
     'access callback' => "chgk_db_access",      'access callback' => "chgk_db_access",
       'access arguments' => array(1, 'fb2'),    
       'type' => MENU_LOCAL_TASK,
       'weight' => 2
       
     );
     $items['tree'] = array(
         'path' => 'tree',
         'title' => 'Все турниры',
         'page callback' => 'chgk_db_tree',
         'access callback' => "chgk_db_access",
         'type' => MENU_NORMAL_ITEM      
     );
   
     $items['editors'] = array(
         'path' => 'editors',
         'title' => 'Редакторы',
         'page callback' => 'chgk_db_editors',
         'access callback' => "chgk_db_access",
         'type' => MENU_NORMAL_ITEM      
     );
   
     $items['tour'] = array(
         'path' => 'tour',
         'page callback' => 'chgk_db_tour',
         'page arguments' => array(1),
         'access callback' => "chgk_db_access"
   );    );
     
     
   return $items;    return $items;
 }  }
   
Line 34  function chgk_db_theme() { Line 78  function chgk_db_theme() {
   $items['chgk_db_print'] = array(    $items['chgk_db_print'] = array(
     'arguments' => array(      'arguments' => array(
       'title' =>'',        'title' =>'',
       'content' => ''        'content' => '',
         'link' => ''
         
         
     ),      ),
     'template'=>'templates/chgk_db_print'       'template'=>'templates/chgk_db_print' 
   );    );
Line 59  function chgk_db_theme() { Line 106  function chgk_db_theme() {
     'template'=>'templates/chgk_db_tour_fb2'      'template'=>'templates/chgk_db_tour_fb2'
   );    );
   
     $items['chgk_db_tours_fb2'] = array(
       'arguments' => array(
         'tournament'=>'',
       ),
       'template'=>'templates/chgk_db_tours_fb2'
     );
   
   
   
   $items['chgk_db_question'] = array(    $items['chgk_db_question'] = array(
     'arguments' => array(      'arguments' => array(
Line 100  function chgk_db_print($string) { Line 155  function chgk_db_print($string) {
   print $tournament->getPrintVersion();    print $tournament->getPrintVersion();
 }  }
   
   function chgk_db_tour($name) {
     if (empty($name)) {
       $tournament = DbPackage::newRoot();    
     } else {
       $tournament = DbPackage::newFromDb($name);
     }
     drupal_set_title($tournament->getFullTitle());
     $breadcrumb = array_merge(drupal_get_breadcrumb(),$tournament->getBreadcrumb());
     drupal_set_breadcrumb($breadcrumb);
     return $tournament->getHtmlContent();
   }
   
   function chgk_db_tree() {        
     $class = DbPackage::newRoot();
     $class -> loadTree();
     drupal_set_title('Все турниры');
   #  $breadcrumb = array_merge(drupal_get_breadcrumb(),$tournament->getBreadcrumb());
     drupal_set_breadcrumb($breadcrumb);
       
       return $class->htmlTree()."\n";
   }
   
 function chgk_db_fb2($string) {  function chgk_db_fb2($string) {
   $tournament = DbPackage::newFromDb($string);    $tournament = DbPackage::newFromDb($string);
   $tournament->getAll();    $xml = $tournament->getFb2();
   $xml = theme('chgk_db_fb2', $tournament);    if (!$xml) {
        print "Something is wrong :(";
        exit;
     }
   $filename = "$string.fb2";     $filename = "$string.fb2"; 
   $zipname = $filename.".zip";    $zipname = $filename.".zip";
       
Line 119  function chgk_db_fb2($string) { Line 199  function chgk_db_fb2($string) {
   system("zip $zipname $filename>/dev/null");    system("zip $zipname $filename>/dev/null");
   print passthru("cat $zipname");    print passthru("cat $zipname");
   exit;    exit;
   #print $tournament->getFb2();  
 }  }
   
   
 function chgk_db_access() {  function chgk_db_access($tour=NULL, $action ='') {
     if ($action == 'fb2') {
       $tournament = DbPackage::newFromDb($tour);
       if (!$tournament->hasFb2()) {
         return FALSE;
       }
     } elseif ($action == 'print') {
       $tournament = DbPackage::newFromDb($tour);  
       if (!$tournament->hasPrintVersion()) {
         return FALSE;
       }  
     }
   return TRUE;    return TRUE;
 }  
   
   }
   
   function chgk_db_search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
     if ($op == 'name') {
       return 'Вопросы';
     } elseif( $op == 'search') {
        $db = new DbDatabase();
        $res = $db->getFulltextSearchRes($keys);
        $factory = new DbQuestionFactory();
   
        while($a = db_fetch_object($res)) {
           $q = $factory->getQuestion($a);
           $q->setSearchString($keys);
           $results[] = array(
             'link' => $q->getUrl(),
             'title' => $q->getSearchTitle(),
             'snippet' => $q->getHtml()
           );
       }
       return $results;
   
     }
     return true;
   }
   
     function chgk_db_form_alter(&$form, &$form_state) {
       if  ($form['#submit'][0] == 'search_box_form_submit') {        
           $form['#submit'][] = 'chgk_db_search_box_submit';
       }
     }
   function chgk_db_editors() {
       if ($id = arg(1)) {
           $author = new DbEditor($id);
           drupal_set_title($author->getFullName());
         $breadcrumb = array_merge(
                 drupal_get_breadcrumb(),
                 $author->getBreadcrumb());
           drupal_set_breadcrumb($breadcrumb);
   
           return $author->getHtmlPage();
       } else {
           $authorsEngine = new DbEditors();
           return $authorsEngine->getAllHtml();
       }
     }
   
   function chgk_db_search_box_submit($form, &$form_state) {
     $form_id = $form['form_id']['#value'];
     $form_state['redirect'] = 'search/chgk_db/'. trim($form_state['values'][$form_id]);
   }

Removed from v.1.5  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>