WordPress.org

Plugin Directory


Ignore:
Timestamp:
03/07/09 22:42:50 (8 years ago)
Author:
mark8barnes
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tng-wordpress-plugin/trunk/tng.php

    r91578 r100295  
    22/* 
    33Plugin Name: TNG Wordpress Integration 
    4 Plugin URI: http://www.4-14.org.uk/wordpress-plugins/tng-wordpress-plugin 
     4Plugin URI: http://www.4-14.org.uk/wordpress-plugins/tng 
    55Description: Integrates TNG (The Next Generation of Genealogy) with Wordpress. 
    66Author: Mark Barnes 
    7 Version: 0.2 
     7Version: 0.21 
    88Author URI: http://www.4-14.org.uk/ 
    99Copyright (c) 2008 Mark Barnes 
     
    3636*                                               * 
    3737* mbtng_serve_static_files                      * 
    38 * mbtng_initialise                         * 
     38* mbtng_initialise                              * 
    3939************************************************/ 
    4040 
     
    4343// Serves static files, if requested. Runs initialisation if not. 
    4444function mbtng_serve_static_files () { 
     45    //error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
    4546    if (isset($_REQUEST['update_globals'])) { 
    4647        mbtng_rewrite_globals(); 
     
    5657        else { 
    5758            $_SESSION['mbtng_template'] = $_REQUEST['tng_template']; 
    58             $_SESSION['mbtng_timestamp'] = strtotime(now); 
     59            $_SESSION['mbtng_timestamp'] = strtotime('now'); 
    5960        } 
    6061        unset($_REQUEST['tng_template']); 
     
    7273            header("Content-type: ". mime_content_type($filename)); 
    7374            if (mbtng_extension() == 'css') { 
    74                 //$code = str_replace (';', ' !important;', $code); 
    7575                $lines = explode("\n",$code); 
    7676                $newcode = ''; 
     
    107107    add_action('admin_menu', 'mbtng_add_admin_page');                       // Adds TNG menu to Wordpress admin 
    108108    add_action('admin_notices', 'mbtng_options_reminder');                  // Adds reminder to set TNG page 
    109     add_action('generate_rewrite_rules ', 'mbtng_update_tng_url');          // Updates the URL of the TNG page in wp_options 
     109    add_action('generate_rewrite_rules', 'mbtng_update_tng_url');           // Updates the URL of the TNG page in wp_options 
    110110} 
    111111 
     
    113113// Add additional actions only if required 
    114114function mbtng_initialise () { 
     115    global $wp_query; 
    115116    if (get_option('mbtng_url') == '' && get_option('mbtng_wordpress_page') != '') 
    116117        mbtng_update_tng_url(); // Remove these two lines when out of beta 
     
    177178    } 
    178179 
    179     $tng_folder = trailingslashit(get_option('mbtng_path')); 
     180    $folders[0] = trailingslashit(get_option('mbtng_path')); 
     181    $folders[1] = $folders[0].'admin/'; 
    180182    $bnn = $keep = array(); 
    181     if ($dh = @opendir($tng_folder)) { 
    182         while (false !== ($file = readdir($dh))) { 
    183             if (substr($file, -4) == ".php" && !is_dir($tng_folder.$file) && !in_array($file, $bnn) && $file != "tng.php") { 
    184                 $lines=file($tng_folder.$file); 
    185                 foreach ($lines as $line) 
    186                     if (stripos($line, 'global $') !== FALSE) { 
    187                         $start = stripos($line, 'global $')+7; 
    188                         $end = strpos($line, ';', $start); 
    189                         $these = explode (',', substr($line, $start, $end-$start)); 
    190                         $keep = array_merge ($keep, $these); 
    191                     } 
    192             }    
    193         } 
    194         closedir($dh); 
     183    foreach ($folders as $folder) { 
     184        if ($dh = @opendir($folder)) { 
     185            while (false !== ($file = readdir($dh))) { 
     186                if (substr($file, -4) == ".php" && !is_dir($folder.$file) && !in_array($file, $bnn) && $file != "tng.php") { 
     187                    $lines=file($folder.$file); 
     188                    foreach ($lines as $line) 
     189                        if (stripos($line, 'global $') !== FALSE) { 
     190                            $start = stripos($line, 'global $')+7; 
     191                            $end = strpos($line, ';', $start); 
     192                            $these = explode (',', substr($line, $start, $end-$start)); 
     193                            $keep = array_merge ($keep, $these); 
     194                        } 
     195                }    
     196            } 
     197            closedir($dh); 
     198        } 
    195199    } 
    196200    array_walk ($keep, 'mbtng_trim'); 
     
    210214        update_option('mbtng_timestamp', strtotime('now')); 
    211215    } 
     216    if (get_option('permalink_structure')=='') 
     217        echo '<div id="message" class="error"><p>Sorry, you cannot use the default <a href="options-permalink.php">permalink structure</a> with this plugin</p></div>'; 
     218    if (!isset($_SERVER['REQUEST_URI'])) 
     219        echo '<div id="message" class="error"><p>Sorry, this site appears to be running on a Windows server, which is not currently compatible with the TNG plugin. Please <a href="http://www.4-14.org.uk/contact">contact the developer</a> if you would like to test a Windows version.</p></div>'; 
    212220    if (!mbtng_correct_path()) 
    213221        echo '<div id="message" class="error"><p><b>Warning:</b> TNG cannot be found in '.get_option('mbtng_path').' - please specify the full (absolute) path to your TNG installation. This is normally the same as the value of $rootpath in config.php</p></div>'; 
     
    254262    echo "\t\t</tr>\n"; 
    255263    echo "\t\t<tr>\n"; 
     264    echo "\t\t\t<td  style=\"padding: 0.5em 0\"valign=\"top\">Replace TNG homepage with Wordpress page:&nbsp;</td>\n"; 
     265    echo "\t\t\t<td style=\"padding: 0.5em 0\"><input type=\"checkbox\" name=\"mbtng_use_wordpress_homepage\""; 
     266    if (get_option('mbtng_use_wordpress_homepage')) echo "checked='checked'"; 
     267    echo "\></td>\n"; 
     268    echo "\t\t</tr>\n"; 
     269    echo "\t\t<tr>\n"; 
    256270    echo "\t\t\t<td>&nbsp;</td>\n"; 
    257271    echo "\t\t\t<td><p class=\"submit\" style=\"padding:0\"><input type=\"submit\" name=\"Submit\" value=\"Save Changes\" /></p></td>\n"; 
     
    259273    wp_nonce_field('update-options'); 
    260274    echo "<input type=\"hidden\" name=\"action\" value=\"update\" />"; 
    261     echo "<input type=\"hidden\" name=\"page_options\" value=\"mbtng_wordpress_page, mbtng_template, mbtng_path, mbtng_integrate_logins\" />"; 
     275    echo "<input type=\"hidden\" name=\"page_options\" value=\"mbtng_wordpress_page, mbtng_template, mbtng_path, mbtng_integrate_logins, mbtng_use_wordpress_homepage\" />"; 
    262276    echo "</form>\n"; 
    263277    echo "\t</table>\n"; 
     
    567581*             OUTPUT THE TNG PAGE               * 
    568582*                                               * 
     583* mbtng_use_tng_homepage                        * 
    569584* mbtng_frontend_header                         * 
    570585* mbtng_frontend_footer                         * 
     
    577592************************************************/ 
    578593 
     594function mbtng_use_tng_homepage() { 
     595    if (get_option('mbtng_use_wordpress_homepage')==TRUE && get_bloginfo('wpurl').trailingslashit(urldecode($_SERVER['REQUEST_URI'])) == get_option('mbtng_url')) 
     596        return false; 
     597    else 
     598        return true; 
     599} 
     600 
    579601//Adds TNG header to Wordpress header 
    580 function mbtng_frontend_header () { 
     602function mbtng_frontend_header() { 
    581603    global $tng_head; 
    582604    $tng_head .= '<base href = "'.get_permalink(get_option('mbtng_wordpress_page')).'"/>'; 
     
    587609 
    588610//Adds TNG footer to Wordpress footer 
    589 function mbtng_frontend_footer () { 
     611function mbtng_frontend_footer() { 
    590612    global $tng_footer; 
    591613    if ($tng_footer != '') 
     
    605627function mbtng_output_page() { 
    606628    global $tng_output; 
    607     if (mbtng_display_page()) { 
     629    if (mbtng_display_page() && mbtng_use_tng_homepage()) { 
    608630        echo $tng_output; 
    609631        ob_start(); 
     
    641663            $non_template_files = array ('pedxml.php', 'tngrss.php', 'addbookmark.php', 'findpersonform.php', 'findperson.php', 'tnghelp.php', 'tentedit.php', 'showmediaxml.php', 'rpt_ind.php', 'rpt_pedigree.php', 'rpt_descend.php', 'pdfform.php', 'fpdf.php', 'smallimage.php'); 
    642664            if (in_array($filename, $non_template_files) | (isset($_REQUEST['tngprint']) && $_REQUEST['tngprint']==1) | (stripos($filename, 'admin') !== FALSE && ($filename != 'admin/index.php' | isset($_REQUEST['true']))) | stripos($tng_output, '<!-- The Next Generation of Genealogy Sitebuilding') === FALSE) { 
    643                 //header('HTTP/1.1 200 OK'); 
    644665                echo $tng_output; 
    645666                die(); 
     
    673694// Discards contents of page if TNG is displayed 
    674695function mbtng_discard_output() { 
    675     if (mbtng_display_page()) 
     696    if (mbtng_display_page() && mbtng_use_tng_homepage()) 
    676697        ob_clean(); 
    677698} 
     
    700721        } 
    701722        eval("?>$code<?php "); 
     723        error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
    702724        $output = ob_get_contents(); 
    703725        ob_end_clean(); 
     
    732754    elseif ($type='url') { 
    733755        $requested = substr($requested, strlen(get_option('mbtng_url'))); 
    734         if (substr($requested, 0) != '/') 
     756        if (substr($requested, 0, 1) != '/') 
    735757            $requested = '/'.$requested; 
    736758        if (substr($requested, -1) == '/') 
     
    775797        extract($args); 
    776798        $tng_folder = get_option('mbtng_path'); 
     799        error_reporting(E_ERROR | E_WARNING | E_PARSE); 
    777800        include ($tng_folder.'config.php'); 
    778801        $thislanguage = $mylanguage ? $mylanguage : $language; 
    779802        chdir ($tng_folder.$thislanguage); 
    780803        include ('text.php'); 
     804        error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
    781805        echo $before_widget; 
    782806        echo $before_title.'People Search'.$after_title; 
     
    803827        $thislanguage = $mylanguage ? $mylanguage : $language; 
    804828        chdir ($tng_folder.$thislanguage); 
     829        error_reporting(E_ERROR | E_WARNING | E_PARSE); 
    805830        include ('text.php'); 
    806831        include ('alltext.php'); 
     832        error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 
    807833        echo $before_widget; 
    808834        echo $before_title.'Genealogy Menu'.$after_title; 
     
    922948//Returns true if mbtng_path option is correct 
    923949function mbtng_correct_path() { 
     950    $current_folder = getcwd(); 
    924951    @chdir(get_option('mbtng_path')); 
    925     if (file_exists('begin.php') && file_exists('admin') && file_exists('genlib.php')) 
     952    if (file_exists('begin.php') && file_exists('admin') && file_exists('genlib.php')) { 
     953        chdir($current_folder); 
    926954        return true; 
    927     else 
     955    } else { 
     956        chdir($current_folder); 
    928957        return false; 
     958    } 
    929959} 
    930960 
     
    932962function mbtng_display_page () { 
    933963    if (get_option('mbtng_wordpress_page')=='' | !mbtng_correct_path()) 
    934         return false; 
    935     elseif (isset($_REQUEST['tng_test'])) 
    936964        return false; 
    937965    else { 
     
    944972            $tng_folder = get_option('mbtng_path'); 
    945973            $filename = mbtng_filename(); 
    946             if (file_exists("{$tng_folder}templates/{$template['template']}/{$filename}") | file_exists("{$tng_folder}/{$filename}")) 
     974            if (file_exists("{$tng_folder}templates/{$template['template']}/{$filename}") | file_exists("{$tng_folder}/{$filename}")) { 
    947975                return true; 
     976            } 
    948977        } 
    949978        else 
     
    10691098    } 
    10701099} 
     1100 
     1101/* TO DO 
     1102======== 
     1103Get it working with IIS & non-pretty permalinks 
     1104Find error in cemetries page 
     1105Intercept WP logins, and update TNG password where appropriate 
     1106Make it work with the home page 
     1107Serve default template if template switcher widget not installed 
     1108*/ 
    10711109?> 
Note: See TracChangeset for help on using the changeset viewer.