[geeklog-jp commit] r1145 - in trunk/geeklog-1-jp-extended: . language plugins/calendar plugins/links plugins/links/l...

Back to archive index

codes****@googl***** codes****@googl*****
2009年 2月 8日 (日) 02:01:12 JST


Author: tacahi
Date: Sat Feb  7 08:26:59 2009
New Revision: 1145

Added:
    trunk/geeklog-1-jp-extended/sql/updates/mssql_1.5.1_to_1.5.2.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/sql/updates/mssql_1.5.1_to_1.5.2.php
    trunk/geeklog-1-jp-extended/sql/updates/mysql_1.5.1_to_1.5.2.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/sql/updates/mysql_1.5.1_to_1.5.2.php
    trunk/geeklog-1-jp-extended/system/pear/Archive/Zip.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Archive/Zip.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/
       - copied from r1144, /externals/geeklog-1.5.2rc1/system/pear/Auth/
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/
       - copied from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/Anonymous.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/Anonymous.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/Common.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/Common.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/CramMD5.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/CramMD5.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/DigestMD5.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/DigestMD5.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/Login.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/Login.php
    trunk/geeklog-1-jp-extended/system/pear/Auth/SASL/Plain.php
       - copied unchanged from r1144,  
/externals/geeklog-1.5.2rc1/system/pear/Auth/SASL/Plain.php
Modified:
    trunk/geeklog-1-jp-extended/language/german.php
    trunk/geeklog-1-jp-extended/language/german_formal.php
    trunk/geeklog-1-jp-extended/language/german_formal_utf-8.php
    trunk/geeklog-1-jp-extended/language/german_utf-8.php
    trunk/geeklog-1-jp-extended/language/polish.php
    trunk/geeklog-1-jp-extended/language/polish_utf-8.php
    trunk/geeklog-1-jp-extended/plugins/calendar/functions.inc
    trunk/geeklog-1-jp-extended/plugins/links/functions.inc
    trunk/geeklog-1-jp-extended/plugins/links/language/slovenian.php
    trunk/geeklog-1-jp-extended/plugins/links/language/slovenian_utf-8.php
    trunk/geeklog-1-jp-extended/plugins/polls/functions.inc
    trunk/geeklog-1-jp-extended/plugins/polls/install_defaults.php
     
trunk/geeklog-1-jp-extended/plugins/polls/templates/admin/polleditor.thtml
    trunk/geeklog-1-jp-extended/plugins/spamx/functions.inc
    trunk/geeklog-1-jp-extended/plugins/spamx/language/hebrew_utf-8.php
    trunk/geeklog-1-jp-extended/plugins/staticpages/functions.inc
     
trunk/geeklog-1-jp-extended/plugins/staticpages/language/japanese_utf-8.php
    trunk/geeklog-1-jp-extended/plugins/staticpages/services.inc.php
    trunk/geeklog-1-jp-extended/plugins/staticpages/templates/printable.thtml
    trunk/geeklog-1-jp-extended/public_html/article.php
    trunk/geeklog-1-jp-extended/public_html/calendar/event.php
    trunk/geeklog-1-jp-extended/public_html/calendar/index.php
    trunk/geeklog-1-jp-extended/public_html/docs/changes.html
    trunk/geeklog-1-jp-extended/public_html/docs/config.html
    trunk/geeklog-1-jp-extended/public_html/docs/history
    trunk/geeklog-1-jp-extended/public_html/docs/theme.html
     
trunk/geeklog-1-jp-extended/public_html/layout/professional/admin/config/configuration.thtml
     
trunk/geeklog-1-jp-extended/public_html/layout/professional/article/printable.thtml
    trunk/geeklog-1-jp-extended/public_html/layout/professional/style.css
    trunk/geeklog-1-jp-extended/public_html/lib-common.php
    trunk/geeklog-1-jp-extended/public_html/links/index.php
    trunk/geeklog-1-jp-extended/public_html/profiles.php
    trunk/geeklog-1-jp-extended/public_html/siteconfig.php
    trunk/geeklog-1-jp-extended/public_html/staticpages/index.php
    trunk/geeklog-1-jp-extended/public_html/users.php
    trunk/geeklog-1-jp-extended/public_html/usersettings.php
    trunk/geeklog-1-jp-extended/readme
    trunk/geeklog-1-jp-extended/sql/mssql_tableanddata.php
    trunk/geeklog-1-jp-extended/sql/mysql_tableanddata.php
    trunk/geeklog-1-jp-extended/sql/updates/mssql_1.4.1_to_1.5.0.php
    trunk/geeklog-1-jp-extended/sql/updates/mysql_1.3.9_to_1.3.10.php
    trunk/geeklog-1-jp-extended/sql/updates/mysql_1.4.1_to_1.5.0.php
    trunk/geeklog-1-jp-extended/system/classes/calendar.class.php
    trunk/geeklog-1-jp-extended/system/classes/config.class.php
    trunk/geeklog-1-jp-extended/system/classes/downloader.class.php
    trunk/geeklog-1-jp-extended/system/classes/sanitize.class.php
    trunk/geeklog-1-jp-extended/system/classes/story.class.php
     
trunk/geeklog-1-jp-extended/system/classes/syndication/feedparserbase.class.php
    trunk/geeklog-1-jp-extended/system/classes/upload.class.php
    trunk/geeklog-1-jp-extended/system/lib-admin.php
    trunk/geeklog-1-jp-extended/system/lib-comment.php
    trunk/geeklog-1-jp-extended/system/lib-plugins.php
    trunk/geeklog-1-jp-extended/system/lib-story.php
    trunk/geeklog-1-jp-extended/system/lib-syndication.php
    trunk/geeklog-1-jp-extended/system/pear/HTTP/Request.php
    trunk/geeklog-1-jp-extended/system/pear/HTTP/Request/Listener.php
    trunk/geeklog-1-jp-extended/system/pear/Net/SMTP.php

Log:
geeklog-1.5.1とgeeklog-1.5.2rc1の差分をマージします。



Modified: trunk/geeklog-1-jp-extended/language/german.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/german.php	(original)
+++ trunk/geeklog-1-jp-extended/language/german.php	Sat Feb  7 08:26:59 2009
@@ -1514,7 +1514,7 @@
      'records_found' => 'Eintr�ge',
      'addchild' => 'Add child',
      'list' => 'auflisten',
-    'list_all' => 'alle auflisten'
+    'list_all' => 'Alle auflisten'
  );

  # Localisation of the texts for the various drop-down menus that are  
actually
@@ -1788,7 +1788,7 @@
      'sg_site' => 'Site',
      'sg_stories' => 'Artikel und Trackbacks',
      'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
+    'sg_blocks' => 'Bl�cke',
      'sg_users' => 'User und Beitr�ge',
      'sg_images' => 'Images',
      'sg_locale' => 'Sprache und Lokalisierung',

Modified: trunk/geeklog-1-jp-extended/language/german_formal.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/german_formal.php	(original)
+++ trunk/geeklog-1-jp-extended/language/german_formal.php	Sat Feb  7  
08:26:59 2009
@@ -1515,7 +1515,7 @@
      'records_found' => 'Eintr�ge',
      'addchild' => 'Add child',
      'list' => 'auflisten',
-    'list_all' => 'alle auflisten'
+    'list_all' => 'Alle auflisten'
  );

  # Localisation of the texts for the various drop-down menus that are  
actually
@@ -1789,7 +1789,7 @@
      'sg_site' => 'Site',
      'sg_stories' => 'Artikel und Trackbacks',
      'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
+    'sg_blocks' => 'Bl�cke',
      'sg_users' => 'User und Beitr�ge',
      'sg_images' => 'Images',
      'sg_locale' => 'Sprache und Lokalisierung',

Modified: trunk/geeklog-1-jp-extended/language/german_formal_utf-8.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/german_formal_utf-8.php	(original)
+++ trunk/geeklog-1-jp-extended/language/german_formal_utf-8.php	Sat Feb  7  
08:26:59 2009
@@ -1515,7 +1515,7 @@
      'records_found' => 'Einträge',
      'addchild' => 'Add child',
      'list' => 'auflisten',
-    'list_all' => 'alle auflisten'
+    'list_all' => 'Alle auflisten'
  );

  # Localisation of the texts for the various drop-down menus that are  
actually
@@ -1789,7 +1789,7 @@
      'sg_site' => 'Site',
      'sg_stories' => 'Artikel und Trackbacks',
      'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
+    'sg_blocks' => 'Blöcke',
      'sg_users' => 'User und Beiträge',
      'sg_images' => 'Images',
      'sg_locale' => 'Sprache und Lokalisierung',

Modified: trunk/geeklog-1-jp-extended/language/german_utf-8.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/german_utf-8.php	(original)
+++ trunk/geeklog-1-jp-extended/language/german_utf-8.php	Sat Feb  7  
08:26:59 2009
@@ -1514,7 +1514,7 @@
      'records_found' => 'Einträge',
      'addchild' => 'Add child',
      'list' => 'auflisten',
-    'list_all' => 'alle auflisten'
+    'list_all' => 'Alle auflisten'
  );

  # Localisation of the texts for the various drop-down menus that are  
actually
@@ -1788,7 +1788,7 @@
      'sg_site' => 'Site',
      'sg_stories' => 'Artikel und Trackbacks',
      'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
+    'sg_blocks' => 'Blöcke',
      'sg_users' => 'User und Beiträge',
      'sg_images' => 'Images',
      'sg_locale' => 'Sprache und Lokalisierung',

Modified: trunk/geeklog-1-jp-extended/language/polish.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/polish.php	(original)
+++ trunk/geeklog-1-jp-extended/language/polish.php	Sat Feb  7 08:26:59 2009
@@ -2,7 +2,7 @@

   
###############################################################################
  # polish.php
-# This is the Polish language page for GeekLog!
+# This is the Polish language file for Geeklog!
  # Special thanks to Robert Stadnik geekl****@geekl***** for his work on  
this project
  #
  # Copyright (C) 2000 Jason Whittenburg
@@ -80,7 +80,7 @@
      37 => 'Brak artyku��w u�ytkownika',
      38 => 'Syndykacja Tre�ci',
      39 => 'Od�wie�',
-    40 => 'Masz <tt>register_globals = Off</tt> w pliku <tt>php.ini</tt>.  
Niestety, Geeklog wymaga <tt>register_globals</tt> aby by�y ustawione na  
<strong>on</strong>. Prosz� zminie� ustawienia na <strong>on</strong> i  
restartowa� serwer www.',
+    40 => 'Masz <tt>register_globals = Off</tt> w pliku <tt>php.ini</tt>.  
Niestety, Geeklog wymaga <tt>register_globals</tt> aby by�y ustawione na  
<strong>on</strong>. Prosz� zmienie� ustawienia na <strong>on</strong> i  
restartowa� serwer www.',
      41 => 'Go��',
      42 => 'Autor:',
      43 => 'Odpowiedz',
@@ -1579,90 +1579,90 @@
      'sections' => 'Configuration Sections',
      'restore' => 'Restore',
      'add_element' => 'Add Element',
-    'save_changes' => 'Save Changes',
-    'reset_form' => 'Reset Form',
+    'save_changes' => 'Zapisz zmiany',
+    'reset_form' => 'Resetuj zmiany',
      'changes_made' => 'Changes were successfully made to',
-    'title' => 'Configuration Manager',
-    'disable' => 'Click to disable this option'
+    'title' => 'Menad�er ustawie�',
+    'disable' => 'Kliknij aby wy��czy� t� opcj�'
  );

  $LANG_configsections['Core'] = array(
      'label' => 'Geeklog',
-    'title' => 'Geeklog Configuration'
+    'title' => 'Konfiguracja Geeklog-a'
  );

  $LANG_confignames['Core'] = array(
-    'path_html' => 'HTML Path',
-    'site_url' => 'Site URL',
-    'site_admin_url' => 'Admin URL',
-    'site_mail' => 'Site E-Mail',
-    'noreply_mail' => 'No-Reply E-Mail',
-    'site_name' => 'Site Name',
+    'path_html' => '�cie�ka HTML',
+    'site_url' => 'Adres URL',
+    'site_admin_url' => 'Adres panelu administracyjnego',
+    'site_mail' => 'E-Mail strony',
+    'noreply_mail' => 'E-Mail w jedn� stron�',
+    'site_name' => 'Nazwa strony',
      'site_slogan' => 'Slogan',
-    'microsummary_short' => 'Microsummary',
+    'microsummary_short' => 'Mikro streszczenie',
      'path_log' => 'Log',
-    'path_language' => 'Language',
-    'backup_path' => 'Backup',
-    'path_data' => 'Data',
-    'path_images' => 'Images',
-    'path_pear' => 'Path Pear',
-    'have_pear' => 'Have Pear?',
-    'mail_settings' => 'Mail Settings',
-    'allow_mysqldump' => 'Allow MySQL Dump',
-    'mysqldump_path' => 'Path of Executable',
-    'mysqldump_options' => 'MySQL Dump Options',
-    'theme' => 'Theme',
-    'menu_elements' => 'Menu Elements',
-    'path_themes' => 'Themes Path',
-    'disable_new_user_registration' => 'Disable New Registrations',
-    'allow_user_themes' => 'Allow User Themes',
-    'allow_user_language' => 'Allow User Language',
-    'allow_user_photo' => 'Allow User Photo',
-    'allow_username_change' => 'Allow Username Changes',
-    'allow_account_delete' => 'Allow Account Deletion',
-    'hide_author_exclusion' => 'Allow Hide Author',
-    'show_fullname' => 'Show Fullname',
-    'show_servicename' => 'Show Service Name',
-    'custom_registration' => 'Enable Custom Registration',
-    'user_login_method' => 'User Login Method',
-    'spamx' => 'Spam-X Actions',
-    'sort_admin' => 'Sort Links',
-    'language' => 'Language',
-    'locale' => 'Locale',
-    'date' => 'Date Format',
-    'daytime' => 'Daytime Format',
-    'shortdate' => 'Short Date Format',
-    'dateonly' => 'Date Only Format',
-    'timeonly' => 'Time Only Format',
-    'week_start' => 'Week Start',
-    'hour_mode' => 'Hour Mode',
-    'thousand_separator' => 'Thousands Separator',
-    'decimal_separator' => 'Decimal Separator',
-    'decimal_count' => 'Decimal Count',
-    'language_files' => 'Language Files',
-    'languages' => 'Languages',
-    'timezone' => 'Timezone',
-    'site_disabled_msg' => 'Site Disabled Message or URL',
+    'path_language' => 'J�zyk',
+    'backup_path' => 'Kopia zapasowa',
+    'path_data' => 'Dane',
+    'path_images' => 'Zdj�cia',
+    'path_pear' => '�cie�ka do Pear',
+    'have_pear' => 'Czy jest biblioteka Pear?',
+    'mail_settings' => 'Ustawienia poczty',
+    'allow_mysqldump' => 'Zezwalaj na zrzut MySQL',
+    'mysqldump_path' => '�cie�ka do plik�w wykonawczych',
+    'mysqldump_options' => 'Opcje zrzutu MySQL',
+    'theme' => 'Layout',
+    'menu_elements' => 'Elementy Menu',
+    'path_themes' => '�cie�ka do katalogu z layoutami',
+    'disable_new_user_registration' => 'Wy��cz rejestracj� nowych  
u�ytkownik�w',
+    'allow_user_themes' => 'U�ytkownik mo�e zmienia� layout',
+    'allow_user_language' => 'U�ytkownik mo�e zmienia� j�zyk',
+    'allow_user_photo' => 'U�ytkownik mo�e doda� swoje zdj�cie',
+    'allow_username_change' => 'U�ytkownik mo�e zmieni� nazw� konta',
+    'allow_account_delete' => 'U�ytkownik mo�e usun�� swoje',
+    'hide_author_exclusion' => 'Zezwalaj na ukrycie autora',
+    'show_fullname' => 'Poka� pe�n� nazw� u�ytkwonika',
+    'show_servicename' => 'Pokazuj nazw� us�ugi',
+    'custom_registration' => 'W��cz w�asn� rejestracj�',
+    'user_login_method' => 'Metoda logowania u�ytkownika',
+    'spamx' => 'Spam-X ustawienia',
+    'sort_admin' => 'Sortowanie odno�nik�w',
+    'language' => 'J�zyk',
+    'locale' => 'Opcje regionalne',
+    'date' => 'Format Daty',
+    'daytime' => 'Format daty dziennej',
+    'shortdate' => 'Format daty kr�tkiej',
+    'dateonly' => 'Tylko data - format',
+    'timeonly' => 'Tylko godzina - format',
+    'week_start' => 'Pocz�tek Tygodnia',
+    'hour_mode' => 'Tryb godzinowy',
+    'thousand_separator' => 'Separator tysi�czny',
+    'decimal_separator' => 'Separator dziesi�tny',
+    'decimal_count' => 'Liczenie dziesi�tne',
+    'language_files' => 'Pliki j�zykowe',
+    'languages' => 'J�zyki',
+    'timezone' => 'Strefa czasowa',
+    'site_disabled_msg' => 'Komunikat lub odno�nik podczas wy��czenia  
strony',
      'rootdebug' => 'Root Debugging',
-    'cookie_session' => 'Session Cookie Name',
-    'cookie_name' => 'Permanent Cookie Name',
-    'cookie_password' => 'Password Cookie Name',
-    'cookie_theme' => 'Theme Cookie Name',
-    'cookie_language' => 'Language Cookie Name',
-    'cookie_tzid' => 'Timezone Cookie Name',
-    'cookie_ip' => 'Cookies embed IP?',
-    'default_perm_cookie_timeout' => 'Permanent Timeout',
-    'session_cookie_timeout' => 'Session Timeout',
-    'cookie_path' => 'Cookie Path',
-    'cookiedomain' => 'Cookie Domain',
+    'cookie_session' => 'Nazwa ciasteczka sesji',
+    'cookie_name' => 'Nazwa ciasteczka sta�ego',
+    'cookie_password' => 'Nazwa ciasteczka z has�em',
+    'cookie_theme' => 'Nazwa ciasteczka layoutu',
+    'cookie_language' => 'Nazwa ciasteczka j�zykowego',
+    'cookie_tzid' => 'Nazwa ciasteczka strefy czasowej',
+    'cookie_ip' => 'Czy ciasteczko ma zawiera� adres IP?',
+    'default_perm_cookie_timeout' => 'Sta�e wyga�ni�cie',
+    'session_cookie_timeout' => 'Wyga�ni�cie sesji',
+    'cookie_path' => '�cie�ka ciasteczek',
+    'cookiedomain' => 'Domena ciasteczek',
      'cookiesecure' => 'Cookie Secure',
-    'lastlogin' => 'Record Last Login?',
-    'pdf_enabled' => 'PDF Enabled?',
-    'num_search_results' => 'Number of Search Results',
-    'loginrequired' => 'Login Required?',
-    'submitloginrequired' => 'Submit Login Required?',
-    'commentsloginrequired' => 'Comment Login Required?',
-    'statsloginrequired' => 'Stats Login Required?',
+    'lastlogin' => 'Zarejestrowa� ostatnie logowanie?',
+    'pdf_enabled' => 'PDF w��czony?',
+    'num_search_results' => 'Liczba wynik�w z wyszukiwarki',
+    'loginrequired' => 'Wymagane zalogowanie?',
+    'submitloginrequired' => 'Wymagane zalogowanie do przes�ania  
materia��w?',
+    'commentsloginrequired' => 'Wymagane zalogowanie do skomentowania?',
+    'statsloginrequired' => 'Wymagane zalogowanie do przegl�dania  
statystyk?',
      'searchloginrequired' => 'Search Login Required?',
      'profileloginrequired' => 'Profile Login Required?',
      'emailuserloginrequired' => 'E-Mail User Login Required?',
@@ -1708,33 +1708,33 @@
      'pingback_excerpt' => 'Create Pingback Excerpt?',
      'link_documentation' => 'Link to Documentation?',
      'link_versionchecker' => 'Link to Version Checker?',
-    'maximagesperarticle' => 'Max Images per Article',
-    'limitnews' => 'Stories per Page',
-    'minnews' => 'Min. Stories per Page',
-    'contributedbyline' => 'Show "Contributed By"?"',
-    'hideviewscount' => 'Hide Views Count?',
-    'hideemailicon' => 'Hide E-Mail Icon?',
-    'hideprintericon' => 'Hide Print Icon?',
-    'allow_page_breaks' => 'Allow Page Breaks?',
-    'page_break_comments' => 'Comments on Multi-Page Articles',
-    'article_image_align' => 'Topic Icon Alignment',
-    'show_topic_icon' => 'Show Topic Icon?',
+    'maximagesperarticle' => 'Maks. liczba zdj�� w artykule',
+    'limitnews' => 'Liczba artyku��w na stron�',
+    'minnews' => 'Min. liczba artyku��w na stron�',
+    'contributedbyline' => 'Poka� "Autor"?"',
+    'hideviewscount' => 'Ukryj liczb� ods�on?',
+    'hideemailicon' => 'Ukryj ikon� emaila?',
+    'hideprintericon' => 'Ukryj ikon� drukowania?',
+    'allow_page_breaks' => 'Zezwalaj na �amanie stron?',
+    'page_break_comments' => 'Komentarze dla artyku��w wielostronicowych',
+    'article_image_align' => 'Wyr�wnywanie ikon sekcji',
+    'show_topic_icon' => 'Poka� ikon� sekcji?',
      'draft_flag' => 'Draft Flag Default',
      'frontpage' => 'Frontpage Default',
      'hide_no_news_msg' => 'Hide "No News" Message?',
      'hide_main_page_navigation' => 'Hide Main Page Navigation?',
      'onlyrootfeatures' => 'Only Root can Feature?',
-    'aftersave_story' => 'After Saving Story',
-    'aftersave_user' => 'After Saving User',
-    'show_right_blocks' => 'Always Show Right Blocks?',
-    'showfirstasfeatured' => 'Show First Story as Featured?',
-    'backend' => 'Enable Feeds?',
-    'rdf_file' => 'Syndication Output Folder',
-    'rdf_limit' => 'Feed Limit',
-    'rdf_storytext' => 'Length of Stories in Feed',
-    'rdf_language' => 'Feed Language',
-    'syndication_max_headlines' => 'Max. Number of Headlines (portal  
blocks)',
-    'copyrightyear' => 'Copyright Year',
+    'aftersave_story' => 'Po zapisaniu artyku�u',
+    'aftersave_user' => 'Po zapisaniu u�ytkownika',
+    'show_right_blocks' => 'Zawsze pokazuj prawe bloki?',
+    'showfirstasfeatured' => 'Poka� pierwszy artyku� jako Artyku� Dnia?',
+    'backend' => 'W��cz kana�y RSS?',
+    'rdf_file' => 'Katalog z plikami do syndykacji tre�ci',
+    'rdf_limit' => 'Limit kana��w RSS',
+    'rdf_storytext' => 'D�ugo�� artyku�u w pliku RSS',
+    'rdf_language' => 'J�zyk kana�u RSS',
+    'syndication_max_headlines' => 'Maks. liczba tytu��w (bloki  
portalowe)',
+    'copyrightyear' => 'Prawa Autorskie Rok',
      'image_lib' => 'Image Library',
      'path_to_mogrify' => 'Path to Mogrify',
      'path_to_netpbm' => 'Path to Netpbm',
@@ -1770,7 +1770,7 @@
      'censorreplace' => 'Censor Replace Text',
      'censorlist' => 'Censor List',
      'ip_lookup' => 'IP Lookup',
-    'url_rewrite' => 'Enable URL Rewrite',
+    'url_rewrite' => 'W��cz przyjazne adresy URL',
      'default_permissions_block' => 'Block Default Permissions',
      'default_permissions_story' => 'Story Default Permissions',
      'default_permissions_topic' => 'Topic Default Permissions',
@@ -1780,80 +1780,80 @@
  );

  $LANG_configsubgroups['Core'] = array(
-    'sg_site' => 'Site',
-    'sg_stories' => 'Stories and Trackback',
-    'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
-    'sg_users' => 'Users and Submissions',
-    'sg_images' => 'Images',
-    'sg_locale' => 'Languages and Locale',
-    'sg_misc' => 'Miscellaneous'
+    'sg_site' => 'Strona',
+    'sg_stories' => 'Artyku�y i Powiadomienia Zwrotne',
+    'sg_theme' => 'Layout',
+    'sg_blocks' => 'Bloki',
+    'sg_users' => 'U�ytkownicy i Przes�ane materia�y',
+    'sg_images' => 'Zdj�cia',
+    'sg_locale' => 'J�zyki i Ustawienia regionalne',
+    'sg_misc' => 'R�ne'
  );

  $LANG_fs['Core'] = array(
-    'fs_site' => 'Site',
-    'fs_paths' => 'Paths',
-    'fs_theme' => 'Theme',
-    'fs_mail' => 'Mail',
+    'fs_site' => 'Strona',
+    'fs_paths' => '�cie�ki',
+    'fs_theme' => 'Layout',
+    'fs_mail' => 'Poczta',
      'fs_pear' => 'Pear',
      'fs_mysql' => 'MySQL',
-    'fs_users' => 'Users',
-    'fs_misc' => 'Miscellaneous',
+    'fs_users' => 'U�ytkownicy',
+    'fs_misc' => 'R�ne',
      'fs_spamx' => 'Spam-X',
      'fs_admin_block' => 'Admin Block',
-    'fs_locale' => 'Locale',
-    'fs_language' => 'Language',
+    'fs_locale' => 'Ustawienia regionalne',
+    'fs_language' => 'J�zyk',
      'fs_debug' => 'Debug',
-    'fs_cookies' => 'Cookies',
-    'fs_login' => 'Login Settings',
-    'fs_search' => 'Search',
-    'fs_user_submission' => 'User Submission',
-    'fs_submission' => 'Submission Settings',
-    'fs_topics_block' => 'Topics Block',
+    'fs_cookies' => 'Ciasteczka',
+    'fs_login' => 'Ustawienia logowania',
+    'fs_search' => 'Szukaj',
+    'fs_user_submission' => 'Materia�y u�ytkownik�w',
+    'fs_submission' => 'Ustawienia przesy�ania materia��w',
+    'fs_topics_block' => 'Blok sekcji',
      'fs_whosonline_block' => 'Who\'s Online Block',
      'fs_daily_digest' => 'Daily Digest',
-    'fs_whatsnew_block' => 'What\'s New Block',
+    'fs_whatsnew_block' => 'Nowo�ci',
      'fs_trackback' => 'Trackback',
      'fs_pingback' => 'Pingback',
-    'fs_story' => 'Story',
-    'fs_theme_advanced' => 'Advanced Settings',
-    'fs_syndication' => 'Syndication',
-    'fs_imagelib' => 'Image Library',
-    'fs_upload' => 'Upload',
-    'fs_articleimg' => 'Images in Articles',
-    'fs_topicicon' => 'Topic Icons',
-    'fs_userphoto' => 'Photos',
+    'fs_story' => 'Artyku�',
+    'fs_theme_advanced' => 'Ustawienia zaawansowane',
+    'fs_syndication' => 'Syndykacja tre�ci',
+    'fs_imagelib' => 'Katalog zdj��',
+    'fs_upload' => '�aduj',
+    'fs_articleimg' => 'Zdj�cia w artyku�ach',
+    'fs_topicicon' => 'Ikony sekcji',
+    'fs_userphoto' => 'Zdj�cia',
      'fs_gravatar' => 'Gravatar',
-    'fs_comments' => 'Comments',
-    'fs_htmlfilter' => 'HTML Filtering',
-    'fs_censoring' => 'Censoring',
-    'fs_iplookup' => 'IP Lookup',
-    'fs_perm_story' => 'Story Default Permission',
-    'fs_perm_topic' => 'Topic Default Permission',
-    'fs_perm_block' => 'Block Default Permission',
-    'fs_webservices' => 'Webservices'
+    'fs_comments' => 'Komentarze',
+    'fs_htmlfilter' => 'Filtrowanie HTML',
+    'fs_censoring' => 'Cenzura',
+    'fs_iplookup' => 'Podgl�d IP',
+    'fs_perm_story' => 'Domy�lne ustawienia dla artyku��w',
+    'fs_perm_topic' => 'Domy�lne ustawienia dla sekcji',
+    'fs_perm_block' => 'Domy�lne ustawienia dla blok�w',
+    'fs_webservices' => 'Us�ugi WWW'
  );

  $LANG_configselects['Core'] = array(
-    0 => array('True' => 1, 'False' => 0),
-    1 => array('True' => true, 'False' => false),
-    2 => array('Reject' => 0, 'Only Keep Latest' => 1, 'Allow Multiple  
Posts' => 2),
-    3 => array('Trackback Enabled' => 0, 'Trackback Disabled' => -1),
-    4 => array('Don\'t Check Anything' => 0, 'Check against Site URL' =>  
1, 'Check full URL' => 2, 'Check against Site URL and full URL' =>  
3, 'Check IP against Site IP' => 4, 'Check IP and Site URL' => 5, 'Check IP  
and Full URL' => 6, 'Check IP, Full URL, and Site URL' => 7),
-    5 => array('Plain Old Text' => 'plaintext', 'HTML Formatted'  
=> 'html'),
+    0 => array('Tak' => 1, 'Nie' => 0),
+    1 => array('Tak' => true, 'Nie' => false),
+    2 => array('Odrzu�' => 0, 'Tylko Najnowsze' => 1, 'Zezwalaj na Wiele  
Post�w' => 2),
+    3 => array('Trackback W��czony' => 0, 'Trackback Wy��czony' => -1),
+    4 => array('Nie sprawdzaj Niczego' => 0, 'Sprawd� wedle adresu strony'  
=> 1, 'Sprawd� ca�y URL' => 2, 'Sprawd� wedle adresu strony i kompletnego  
URL' => 3, 'Check IP against Site IP' => 4, 'Sprawd� IP i URL strony' =>  
5, 'Sprawd� IP i pe�ny URL' => 6, 'Sprawd� IP, pe�ny URL, i URL strony' =>  
7),
+    5 => array('Tekst' => 'plaintext', 'HTML' => 'html'),
      6 => array('12' => 12, '24' => 24),
-    7 => array('Last Page' => 'last', 'First Page' => 'first', 'Every  
Page' => 'all'),
-    8 => array('Right' => 'right', 'Left' => 'left'),
-    9 => array('Forward to page' => 'item', 'Display List'  
=> 'list', 'Display Home' => 'home', 'Display Admin' => 'admin'),
-    10 => array('None' => '', 'Netpbm' => 'netpbm', 'ImageMagick'  
=> 'imagemagick', 'gdLib' => 'gdlib'),
-    11 => array('Flat' => 'flat', 'Nested' => 'nested', 'Threaded'  
=> 'threaded', 'No Comments' => 'nocomment'),
-    12 => array('No access' => 0, 'Read-Only' => 2, 'Read-Write' => 3),
-    13 => array('Skip' => 0, 'Allow, with speedlimit' => 1, 'Allow, no  
speedlimit' => 2),
-    14 => array('Sunday' => 'Sun', 'Monday' => 'Mon'),
-    15 => array('By Number' => 'sortnum', 'Alphabetically' => 'alpha'),
-    16 => array('No Login required' => 0, 'Advanced Search only' =>  
1, 'Simple + Advanced Search' => 2),
-    17 => array('Comments Enabled' => 0, 'Comments Disabled' => -1),
-    18 => array('Disabled' => 0, 'Enabled (Exact Match)' => 1, 'Enabled  
(Word Beginning)' => 2, 'Enabled (Word Fragment)' => 3)
+    7 => array('Ostatnia Strona' => 'last', 'Pierwsza Strona'  
=> 'first', 'Wszystkie Strony' => 'all'),
+    8 => array('Prawa' => 'right', 'Lewa' => 'left'),
+    9 => array('Id� do strony' => 'item', 'Poka� list�' => 'list', 'Poka�  
stron� g��wn�' => 'home', 'Poka� panel sterowania' => 'admin'),
+    10 => array('Brak' => '', 'Netpbm' => 'netpbm', 'ImageMagick'  
=> 'imagemagick', 'gdLib' => 'gdlib'),
+    11 => array('Lista' => 'flat', 'Chronologicznie' => 'nested', 'Wg  
w�tku' => 'threaded', 'Bez komentarzy' => 'nocomment'),
+    12 => array('Brak dost�pu' => 0, 'Tylko do Odczytu' =>  
2, 'Odczyt-Zapis' => 3),
+    13 => array('Pomi�' => 0, 'Allow, with speedlimit' => 1, 'Allow, no  
speedlimit' => 2),
+    14 => array('Niedziela' => 'Sun', 'Poniedzia�ek' => 'Mon'),
+    15 => array('Liczbowo' => 'sortnum', 'Alfabetycznie' => 'alpha'),
+    16 => array('Login nie wymagany' => 0, 'Tylko wyszukiwanie  
zaawansowane' => 1, 'Wyszukiwanie proste + zaawansowane' => 2),
+    17 => array('Komentarze w��czone' => 0, 'Komentarze wy��czone' => -1),
+    18 => array('Wy��czone' => 0, 'W��czone (Dok�adne trafienie)' =>  
1, 'W��czone (Pocz�tek s�owa)' => 2, 'W��czone (Fragment s�owa)' => 3)
  );

-?>
\ No newline at end of file
+?>

Modified: trunk/geeklog-1-jp-extended/language/polish_utf-8.php
==============================================================================
--- trunk/geeklog-1-jp-extended/language/polish_utf-8.php	(original)
+++ trunk/geeklog-1-jp-extended/language/polish_utf-8.php	Sat Feb  7  
08:26:59 2009
@@ -2,7 +2,7 @@

   
###############################################################################
  # polish_utf-8.php
-# This is the Polish language page for GeekLog!
+# This is the Polish language file for Geeklog!
  # Special thanks to Robert Stadnik geekl****@geekl***** for his work on  
this project
  #
  # Copyright (C) 2000 Jason Whittenburg
@@ -80,7 +80,7 @@
      37 => 'Brak artykułów użytkownika',
      38 => 'Syndykacja Treści',
      39 => 'Odśwież',
-    40 => 'Masz <tt>register_globals = Off</tt> w pliku <tt>php.ini</tt>.  
Niestety, Geeklog wymaga <tt>register_globals</tt> aby były ustawione na  
<strong>on</strong>. Proszę zminieć ustawienia na <strong>on</strong> i  
restartować serwer www.',
+    40 => 'Masz <tt>register_globals = Off</tt> w pliku <tt>php.ini</tt>.  
Niestety, Geeklog wymaga <tt>register_globals</tt> aby były ustawione na  
<strong>on</strong>. Proszę zmienieć ustawienia na <strong>on</strong> i  
restartować serwer www.',
      41 => 'Gość',
      42 => 'Autor:',
      43 => 'Odpowiedz',
@@ -1579,90 +1579,90 @@
      'sections' => 'Configuration Sections',
      'restore' => 'Restore',
      'add_element' => 'Add Element',
-    'save_changes' => 'Save Changes',
-    'reset_form' => 'Reset Form',
+    'save_changes' => 'Zapisz zmiany',
+    'reset_form' => 'Resetuj zmiany',
      'changes_made' => 'Changes were successfully made to',
-    'title' => 'Configuration Manager',
-    'disable' => 'Click to disable this option'
+    'title' => 'Menadżer ustawień',
+    'disable' => 'Kliknij aby wyłączyć tą opcję'
  );

  $LANG_configsections['Core'] = array(
      'label' => 'Geeklog',
-    'title' => 'Geeklog Configuration'
+    'title' => 'Konfiguracja Geeklog-a'
  );

  $LANG_confignames['Core'] = array(
-    'path_html' => 'HTML Path',
-    'site_url' => 'Site URL',
-    'site_admin_url' => 'Admin URL',
-    'site_mail' => 'Site E-Mail',
-    'noreply_mail' => 'No-Reply E-Mail',
-    'site_name' => 'Site Name',
+    'path_html' => 'Ścieżka HTML',
+    'site_url' => 'Adres URL',
+    'site_admin_url' => 'Adres panelu administracyjnego',
+    'site_mail' => 'E-Mail strony',
+    'noreply_mail' => 'E-Mail w jedną stronę',
+    'site_name' => 'Nazwa strony',
      'site_slogan' => 'Slogan',
-    'microsummary_short' => 'Microsummary',
+    'microsummary_short' => 'Mikro streszczenie',
      'path_log' => 'Log',
-    'path_language' => 'Language',
-    'backup_path' => 'Backup',
-    'path_data' => 'Data',
-    'path_images' => 'Images',
-    'path_pear' => 'Path Pear',
-    'have_pear' => 'Have Pear?',
-    'mail_settings' => 'Mail Settings',
-    'allow_mysqldump' => 'Allow MySQL Dump',
-    'mysqldump_path' => 'Path of Executable',
-    'mysqldump_options' => 'MySQL Dump Options',
-    'theme' => 'Theme',
-    'menu_elements' => 'Menu Elements',
-    'path_themes' => 'Themes Path',
-    'disable_new_user_registration' => 'Disable New Registrations',
-    'allow_user_themes' => 'Allow User Themes',
-    'allow_user_language' => 'Allow User Language',
-    'allow_user_photo' => 'Allow User Photo',
-    'allow_username_change' => 'Allow Username Changes',
-    'allow_account_delete' => 'Allow Account Deletion',
-    'hide_author_exclusion' => 'Allow Hide Author',
-    'show_fullname' => 'Show Fullname',
-    'show_servicename' => 'Show Service Name',
-    'custom_registration' => 'Enable Custom Registration',
-    'user_login_method' => 'User Login Method',
-    'spamx' => 'Spam-X Actions',
-    'sort_admin' => 'Sort Links',
-    'language' => 'Language',
-    'locale' => 'Locale',
-    'date' => 'Date Format',
-    'daytime' => 'Daytime Format',
-    'shortdate' => 'Short Date Format',
-    'dateonly' => 'Date Only Format',
-    'timeonly' => 'Time Only Format',
-    'week_start' => 'Week Start',
-    'hour_mode' => 'Hour Mode',
-    'thousand_separator' => 'Thousands Separator',
-    'decimal_separator' => 'Decimal Separator',
-    'decimal_count' => 'Decimal Count',
-    'language_files' => 'Language Files',
-    'languages' => 'Languages',
-    'timezone' => 'Timezone',
-    'site_disabled_msg' => 'Site Disabled Message or URL',
+    'path_language' => 'Język',
+    'backup_path' => 'Kopia zapasowa',
+    'path_data' => 'Dane',
+    'path_images' => 'Zdjęcia',
+    'path_pear' => 'Ścieżka do Pear',
+    'have_pear' => 'Czy jest biblioteka Pear?',
+    'mail_settings' => 'Ustawienia poczty',
+    'allow_mysqldump' => 'Zezwalaj na zrzut MySQL',
+    'mysqldump_path' => 'Ścieżka do plików wykonawczych',
+    'mysqldump_options' => 'Opcje zrzutu MySQL',
+    'theme' => 'Layout',
+    'menu_elements' => 'Elementy Menu',
+    'path_themes' => 'Ścieżka do katalogu z layoutami',
+    'disable_new_user_registration' => 'Wyłącz rejestrację nowych  
użytkowników',
+    'allow_user_themes' => 'Użytkownik może zmieniać layout',
+    'allow_user_language' => 'Użytkownik może zmieniać język',
+    'allow_user_photo' => 'Użytkownik może dodać swoje zdjęcie',
+    'allow_username_change' => 'Użytkownik może zmienić nazwę konta',
+    'allow_account_delete' => 'Użytkownik może usunąć swoje',
+    'hide_author_exclusion' => 'Zezwalaj na ukrycie autora',
+    'show_fullname' => 'Pokaż pełną nazwę użytkwonika',
+    'show_servicename' => 'Pokazuj nazwę usługi',
+    'custom_registration' => 'Włącz własną rejestrację',
+    'user_login_method' => 'Metoda logowania użytkownika',
+    'spamx' => 'Spam-X ustawienia',
+    'sort_admin' => 'Sortowanie odnośników',
+    'language' => 'Język',
+    'locale' => 'Opcje regionalne',
+    'date' => 'Format Daty',
+    'daytime' => 'Format daty dziennej',
+    'shortdate' => 'Format daty krótkiej',
+    'dateonly' => 'Tylko data - format',
+    'timeonly' => 'Tylko godzina - format',
+    'week_start' => 'Początek Tygodnia',
+    'hour_mode' => 'Tryb godzinowy',
+    'thousand_separator' => 'Separator tysięczny',
+    'decimal_separator' => 'Separator dziesiętny',
+    'decimal_count' => 'Liczenie dziesiętne',
+    'language_files' => 'Pliki językowe',
+    'languages' => 'Języki',
+    'timezone' => 'Strefa czasowa',
+    'site_disabled_msg' => 'Komunikat lub odnośnik podczas wyłączenia  
strony',
      'rootdebug' => 'Root Debugging',
-    'cookie_session' => 'Session Cookie Name',
-    'cookie_name' => 'Permanent Cookie Name',
-    'cookie_password' => 'Password Cookie Name',
-    'cookie_theme' => 'Theme Cookie Name',
-    'cookie_language' => 'Language Cookie Name',
-    'cookie_tzid' => 'Timezone Cookie Name',
-    'cookie_ip' => 'Cookies embed IP?',
-    'default_perm_cookie_timeout' => 'Permanent Timeout',
-    'session_cookie_timeout' => 'Session Timeout',
-    'cookie_path' => 'Cookie Path',
-    'cookiedomain' => 'Cookie Domain',
+    'cookie_session' => 'Nazwa ciasteczka sesji',
+    'cookie_name' => 'Nazwa ciasteczka stałego',
+    'cookie_password' => 'Nazwa ciasteczka z hasłem',
+    'cookie_theme' => 'Nazwa ciasteczka layoutu',
+    'cookie_language' => 'Nazwa ciasteczka językowego',
+    'cookie_tzid' => 'Nazwa ciasteczka strefy czasowej',
+    'cookie_ip' => 'Czy ciasteczko ma zawierać adres IP?',
+    'default_perm_cookie_timeout' => 'Stałe wygaśnięcie',
+    'session_cookie_timeout' => 'Wygaśnięcie sesji',
+    'cookie_path' => 'Ścieżka ciasteczek',
+    'cookiedomain' => 'Domena ciasteczek',
      'cookiesecure' => 'Cookie Secure',
-    'lastlogin' => 'Record Last Login?',
-    'pdf_enabled' => 'PDF Enabled?',
-    'num_search_results' => 'Number of Search Results',
-    'loginrequired' => 'Login Required?',
-    'submitloginrequired' => 'Submit Login Required?',
-    'commentsloginrequired' => 'Comment Login Required?',
-    'statsloginrequired' => 'Stats Login Required?',
+    'lastlogin' => 'Zarejestrować ostatnie logowanie?',
+    'pdf_enabled' => 'PDF włączony?',
+    'num_search_results' => 'Liczba wyników z wyszukiwarki',
+    'loginrequired' => 'Wymagane zalogowanie?',
+    'submitloginrequired' => 'Wymagane zalogowanie do przesłania  
materiałów?',
+    'commentsloginrequired' => 'Wymagane zalogowanie do skomentowania?',
+    'statsloginrequired' => 'Wymagane zalogowanie do przeglądania  
statystyk?',
      'searchloginrequired' => 'Search Login Required?',
      'profileloginrequired' => 'Profile Login Required?',
      'emailuserloginrequired' => 'E-Mail User Login Required?',
@@ -1708,33 +1708,33 @@
      'pingback_excerpt' => 'Create Pingback Excerpt?',
      'link_documentation' => 'Link to Documentation?',
      'link_versionchecker' => 'Link to Version Checker?',
-    'maximagesperarticle' => 'Max Images per Article',
-    'limitnews' => 'Stories per Page',
-    'minnews' => 'Min. Stories per Page',
-    'contributedbyline' => 'Show "Contributed By"?"',
-    'hideviewscount' => 'Hide Views Count?',
-    'hideemailicon' => 'Hide E-Mail Icon?',
-    'hideprintericon' => 'Hide Print Icon?',
-    'allow_page_breaks' => 'Allow Page Breaks?',
-    'page_break_comments' => 'Comments on Multi-Page Articles',
-    'article_image_align' => 'Topic Icon Alignment',
-    'show_topic_icon' => 'Show Topic Icon?',
+    'maximagesperarticle' => 'Maks. liczba zdjęć w artykule',
+    'limitnews' => 'Liczba artykułów na stronę',
+    'minnews' => 'Min. liczba artykułów na stronę',
+    'contributedbyline' => 'Pokaż "Autor"?"',
+    'hideviewscount' => 'Ukryj liczbę odsłon?',
+    'hideemailicon' => 'Ukryj ikonę emaila?',
+    'hideprintericon' => 'Ukryj ikonę drukowania?',
+    'allow_page_breaks' => 'Zezwalaj na łamanie stron?',
+    'page_break_comments' => 'Komentarze dla artykułów wielostronicowych',
+    'article_image_align' => 'Wyrównywanie ikon sekcji',
+    'show_topic_icon' => 'Pokaż ikonę sekcji?',
      'draft_flag' => 'Draft Flag Default',
      'frontpage' => 'Frontpage Default',
      'hide_no_news_msg' => 'Hide "No News" Message?',
      'hide_main_page_navigation' => 'Hide Main Page Navigation?',
      'onlyrootfeatures' => 'Only Root can Feature?',
-    'aftersave_story' => 'After Saving Story',
-    'aftersave_user' => 'After Saving User',
-    'show_right_blocks' => 'Always Show Right Blocks?',
-    'showfirstasfeatured' => 'Show First Story as Featured?',
-    'backend' => 'Enable Feeds?',
-    'rdf_file' => 'Syndication Output Folder',
-    'rdf_limit' => 'Feed Limit',
-    'rdf_storytext' => 'Length of Stories in Feed',
-    'rdf_language' => 'Feed Language',
-    'syndication_max_headlines' => 'Max. Number of Headlines (portal  
blocks)',
-    'copyrightyear' => 'Copyright Year',
+    'aftersave_story' => 'Po zapisaniu artykułu',
+    'aftersave_user' => 'Po zapisaniu użytkownika',
+    'show_right_blocks' => 'Zawsze pokazuj prawe bloki?',
+    'showfirstasfeatured' => 'Pokaż pierwszy artykuł jako Artykuł Dnia?',
+    'backend' => 'Włącz kanały RSS?',
+    'rdf_file' => 'Katalog z plikami do syndykacji treści',
+    'rdf_limit' => 'Limit kanałów RSS',
+    'rdf_storytext' => 'Długość artykułu w pliku RSS',
+    'rdf_language' => 'Język kanału RSS',
+    'syndication_max_headlines' => 'Maks. liczba tytułów (bloki  
portalowe)',
+    'copyrightyear' => 'Prawa Autorskie Rok',
      'image_lib' => 'Image Library',
      'path_to_mogrify' => 'Path to Mogrify',
      'path_to_netpbm' => 'Path to Netpbm',
@@ -1770,7 +1770,7 @@
      'censorreplace' => 'Censor Replace Text',
      'censorlist' => 'Censor List',
      'ip_lookup' => 'IP Lookup',
-    'url_rewrite' => 'Enable URL Rewrite',
+    'url_rewrite' => 'Włącz przyjazne adresy URL',
      'default_permissions_block' => 'Block Default Permissions',
      'default_permissions_story' => 'Story Default Permissions',
      'default_permissions_topic' => 'Topic Default Permissions',
@@ -1780,80 +1780,80 @@
  );

  $LANG_configsubgroups['Core'] = array(
-    'sg_site' => 'Site',
-    'sg_stories' => 'Stories and Trackback',
-    'sg_theme' => 'Theme',
-    'sg_blocks' => 'Blocks',
-    'sg_users' => 'Users and Submissions',
-    'sg_images' => 'Images',
-    'sg_locale' => 'Languages and Locale',
-    'sg_misc' => 'Miscellaneous'
+    'sg_site' => 'Strona',
+    'sg_stories' => 'Artykuły i Powiadomienia Zwrotne',
+    'sg_theme' => 'Layout',
+    'sg_blocks' => 'Bloki',
+    'sg_users' => 'Użytkownicy i Przesłane materiały',
+    'sg_images' => 'Zdjęcia',
+    'sg_locale' => 'Języki i Ustawienia regionalne',
+    'sg_misc' => 'Różne'
  );

  $LANG_fs['Core'] = array(
-    'fs_site' => 'Site',
-    'fs_paths' => 'Paths',
-    'fs_theme' => 'Theme',
-    'fs_mail' => 'Mail',
+    'fs_site' => 'Strona',
+    'fs_paths' => 'Ścieżki',
+    'fs_theme' => 'Layout',
+    'fs_mail' => 'Poczta',
      'fs_pear' => 'Pear',
      'fs_mysql' => 'MySQL',
-    'fs_users' => 'Users',
-    'fs_misc' => 'Miscellaneous',
+    'fs_users' => 'Użytkownicy',
+    'fs_misc' => 'Różne',
      'fs_spamx' => 'Spam-X',
      'fs_admin_block' => 'Admin Block',
-    'fs_locale' => 'Locale',
-    'fs_language' => 'Language',
+    'fs_locale' => 'Ustawienia regionalne',
+    'fs_language' => 'Język',
      'fs_debug' => 'Debug',
-    'fs_cookies' => 'Cookies',
-    'fs_login' => 'Login Settings',
-    'fs_search' => 'Search',
-    'fs_user_submission' => 'User Submission',
-    'fs_submission' => 'Submission Settings',
-    'fs_topics_block' => 'Topics Block',
+    'fs_cookies' => 'Ciasteczka',
+    'fs_login' => 'Ustawienia logowania',
+    'fs_search' => 'Szukaj',
+    'fs_user_submission' => 'Materiały użytkowników',
+    'fs_submission' => 'Ustawienia przesyłania materiałów',
+    'fs_topics_block' => 'Blok sekcji',
      'fs_whosonline_block' => 'Who\'s Online Block',
      'fs_daily_digest' => 'Daily Digest',
-    'fs_whatsnew_block' => 'What\'s New Block',
+    'fs_whatsnew_block' => 'Nowości',
      'fs_trackback' => 'Trackback',
      'fs_pingback' => 'Pingback',
-    'fs_story' => 'Story',
-    'fs_theme_advanced' => 'Advanced Settings',
-    'fs_syndication' => 'Syndication',
-    'fs_imagelib' => 'Image Library',
-    'fs_upload' => 'Upload',
-    'fs_articleimg' => 'Images in Articles',
-    'fs_topicicon' => 'Topic Icons',
-    'fs_userphoto' => 'Photos',
+    'fs_story' => 'Artykuł',
+    'fs_theme_advanced' => 'Ustawienia zaawansowane',
+    'fs_syndication' => 'Syndykacja treści',
+    'fs_imagelib' => 'Katalog zdjęć',
+    'fs_upload' => 'Ładuj',
+    'fs_articleimg' => 'Zdjęcia w artykułach',
+    'fs_topicicon' => 'Ikony sekcji',
+    'fs_userphoto' => 'Zdjęcia',
      'fs_gravatar' => 'Gravatar',
-    'fs_comments' => 'Comments',
-    'fs_htmlfilter' => 'HTML Filtering',
-    'fs_censoring' => 'Censoring',
-    'fs_iplookup' => 'IP Lookup',
-    'fs_perm_story' => 'Story Default Permission',
-    'fs_perm_topic' => 'Topic Default Permission',
-    'fs_perm_block' => 'Block Default Permission',
-    'fs_webservices' => 'Webservices'
+    'fs_comments' => 'Komentarze',
+    'fs_htmlfilter' => 'Filtrowanie HTML',
+    'fs_censoring' => 'Cenzura',
+    'fs_iplookup' => 'Podgląd IP',
+    'fs_perm_story' => 'Domyślne ustawienia dla artykułów',
+    'fs_perm_topic' => 'Domyślne ustawienia dla sekcji',
+    'fs_perm_block' => 'Domyślne ustawienia dla bloków',
+    'fs_webservices' => 'Usługi WWW'
  );

  $LANG_configselects['Core'] = array(
-    0 => array('True' => 1, 'False' => 0),
-    1 => array('True' => true, 'False' => false),
-    2 => array('Reject' => 0, 'Only Keep Latest' => 1, 'Allow Multiple  
Posts' => 2),
-    3 => array('Trackback Enabled' => 0, 'Trackback Disabled' => -1),
-    4 => array('Don\'t Check Anything' => 0, 'Check against Site URL' =>  
1, 'Check full URL' => 2, 'Check against Site URL and full URL' =>  
3, 'Check IP against Site IP' => 4, 'Check IP and Site URL' => 5, 'Check IP  
and Full URL' => 6, 'Check IP, Full URL, and Site URL' => 7),
-    5 => array('Plain Old Text' => 'plaintext', 'HTML Formatted'  
=> 'html'),
+    0 => array('Tak' => 1, 'Nie' => 0),
+    1 => array('Tak' => true, 'Nie' => false),
+    2 => array('Odrzuć' => 0, 'Tylko Najnowsze' => 1, 'Zezwalaj na Wiele  
Postów' => 2),
+    3 => array('Trackback Włączony' => 0, 'Trackback Wyłączony' => -1),
+    4 => array('Nie sprawdzaj Niczego' => 0, 'Sprawdź wedle adresu strony'  
=> 1, 'Sprawdź cały URL' => 2, 'Sprawdź wedle adresu strony i kompletnego  
URL' => 3, 'Check IP against Site IP' => 4, 'Sprawdź IP i URL strony' =>  
5, 'Sprawdź IP i pełny URL' => 6, 'Sprawdź IP, pełny URL, i URL strony' =>  
7),
+    5 => array('Tekst' => 'plaintext', 'HTML' => 'html'),
      6 => array('12' => 12, '24' => 24),
-    7 => array('Last Page' => 'last', 'First Page' => 'first', 'Every  
Page' => 'all'),
-    8 => array('Right' => 'right', 'Left' => 'left'),
-    9 => array('Forward to page' => 'item', 'Display List'  
=> 'list', 'Display Home' => 'home', 'Display Admin' => 'admin'),
-    10 => array('None' => '', 'Netpbm' => 'netpbm', 'ImageMagick'  
=> 'imagemagick', 'gdLib' => 'gdlib'),
-    11 => array('Flat' => 'flat', 'Nested' => 'nested', 'Threaded'  
=> 'threaded', 'No Comments' => 'nocomment'),
-    12 => array('No access' => 0, 'Read-Only' => 2, 'Read-Write' => 3),
-    13 => array('Skip' => 0, 'Allow, with speedlimit' => 1, 'Allow, no  
speedlimit' => 2),
-    14 => array('Sunday' => 'Sun', 'Monday' => 'Mon'),
-    15 => array('By Number' => 'sortnum', 'Alphabetically' => 'alpha'),
-    16 => array('No Login required' => 0, 'Advanced Search only' =>  
1, 'Simple + Advanced Search' => 2),
-    17 => array('Comments Enabled' => 0, 'Comments Disabled' => -1),
-    18 => array('Disabled' => 0, 'Enabled (Exact Match)' => 1, 'Enabled  
(Word Beginning)' => 2, 'Enabled (Word Fragment)' => 3)
+    7 => array('Ostatnia Strona' => 'last', 'Pierwsza Strona'  
=> 'first', 'Wszystkie Strony' => 'all'),
+    8 => array('Prawa' => 'right', 'Lewa' => 'left'),
+    9 => array('Idź do strony' => 'item', 'Pokaż listę' => 'list', 'Pokaż  
stronę główną' => 'home', 'Pokaż panel sterowania' => 'admin'),
+    10 => array('Brak' => '', 'Netpbm' => 'netpbm', 'ImageMagick'  
=> 'imagemagick', 'gdLib' => 'gdlib'),
+    11 => array('Lista' => 'flat', 'Chronologicznie' => 'nested', 'Wg  
wątku' => 'threaded', 'Bez komentarzy' => 'nocomment'),
+    12 => array('Brak dostępu' => 0, 'Tylko do Odczytu' =>  
2, 'Odczyt-Zapis' => 3),
+    13 => array('Pomiń' => 0, 'Allow, with speedlimit' => 1, 'Allow, no  
speedlimit' => 2),
+    14 => array('Niedziela' => 'Sun', 'Poniedziałek' => 'Mon'),
+    15 => array('Liczbowo' => 'sortnum', 'Alfabetycznie' => 'alpha'),
+    16 => array('Login nie wymagany' => 0, 'Tylko wyszukiwanie  
zaawansowane' => 1, 'Wyszukiwanie proste + zaawansowane' => 2),
+    17 => array('Komentarze włączone' => 0, 'Komentarze wyłączone' => -1),
+    18 => array('Wyłączone' => 0, 'Włączone (Dokładne trafienie)' =>  
1, 'Włączone (Początek słowa)' => 2, 'Włączone (Fragment słowa)' => 3)
  );

-?>
\ No newline at end of file
+?>

Modified: trunk/geeklog-1-jp-extended/plugins/calendar/functions.inc
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/calendar/functions.inc	(original)
+++ trunk/geeklog-1-jp-extended/plugins/calendar/functions.inc	Sat Feb  7  
08:26:59 2009
@@ -10,7 +10,7 @@
  // | API method and 2) implements all the common code needed by the  
CAlendar   |
  // | plugin' PHP  
files.                                                        |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs       - tony AT tonybibbs DOT  
com                     |
  // |          Tom Willett      - twillett AT users DOT sourceforge DOT  
net     |
@@ -33,8 +33,6 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: functions.inc,v 1.95 2008/09/21 08:37:07 dhaun Exp $

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.inc') !== false) {
      die('This file can not be used on its own.');
@@ -59,7 +57,7 @@
      $_CA_CONF = $ca_config->get_config('calendar');
  }

-$_CA_CONF['version'] = '1.0.2';
+$_CA_CONF['version'] = '1.0.3';

  //  
+---------------------------------------------------------------------------+
  // | Geeklog Plugin API  
Implementations                                        |
@@ -830,7 +828,7 @@

          DB_delete($_TABLES['events'], 'eid', $eid);
          DB_delete($_TABLES['personal_events'], 'eid', $eid);
-        COM_rdfUpToDateCheck('geeklog', 'calendar', $eid);
+        COM_rdfUpToDateCheck('calendar');

          return  
COM_refresh($_CONF['site_admin_url'] . '/plugins/calendar/index.php?msg=18');
      } elseif ($type == 'submission') {

Modified: trunk/geeklog-1-jp-extended/plugins/links/functions.inc
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/links/functions.inc	(original)
+++ trunk/geeklog-1-jp-extended/plugins/links/functions.inc	Sat Feb  7  
08:26:59 2009
@@ -10,7 +10,7 @@
  // | API method and 2) implements all the common code needed by the  
Links      |
  // | Plugins' PHP  
files.                                                       |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs         - tony AT tonybibbs DOT  
com                   |
  // |          Mark Limburg       - mlimb****@users***** DOT  
net       |
@@ -35,8 +35,6 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: functions.inc,v 1.111 2008/09/21 08:37:08 dhaun Exp $

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.inc') !== false) {
      die('This file can not be used on its own.');
@@ -61,7 +59,7 @@
      $_LI_CONF = $li_config->get_config('links');
  }

-$_LI_CONF['version'] = '2.0.0';
+$_LI_CONF['version'] = '2.0.1';

  //  
+---------------------------------------------------------------------------+
  // | Geeklog Plugin API  
Implementation                                         |
@@ -363,13 +361,13 @@

      // link search
      $select = 'SELECT lid,title,url,owner_id,hits,UNIX_TIMESTAMP(date) AS  
day';
-    $sql = " FROM {$_TABLES['links']} WHERE date <> 1 ";
+    $sql = " FROM {$_TABLES['links']} WHERE date <> 1";

      if (!empty ($query)) {
          if ($keyType == 'phrase') {
              $mysearchterm = addslashes ($query);
-            $sql .= " AND (description LIKE '%$mysearchterm%')"
-                 . " OR (title LIKE '%$mysearchterm%')";
+            $sql .= " AND ((description LIKE '%$mysearchterm%')"
+                 . " OR (title LIKE '%$mysearchterm%'))";
          } else if ($keyType == 'all') {
              $mywords = explode (' ', $query);
              $sql .= ' AND (';
@@ -377,8 +375,8 @@
              foreach ($mywords AS $mysearchterm) {
                  $mysearchterm = addslashes (trim ($mysearchterm));
                  if (!empty ($mysearchterm)) {
-                    $tmp .= "(description LIKE '%$mysearchterm%')"
-                         . " OR (title LIKE '%$mysearchterm%') AND ";
+                    $tmp .= "((description LIKE '%$mysearchterm%')"
+                         . " OR (title LIKE '%$mysearchterm%')) AND ";
                  }
              }
              $tmp = substr ($tmp, 0, strlen ($tmp) - 5);
@@ -390,16 +388,16 @@
              foreach ($mywords AS $mysearchterm) {
                  $mysearchterm = addslashes (trim ($mysearchterm));
                  if (!empty ($mysearchterm)) {
-                    $tmp .= "(description LIKE '%$mysearchterm%')"
-                         . " OR (title LIKE '%$mysearchterm%') OR ";
+                    $tmp .= "((description LIKE '%$mysearchterm%')"
+                         . " OR (title LIKE '%$mysearchterm%')) OR ";
                  }
              }
              $tmp = substr ($tmp, 0, strlen ($tmp) - 4);
              $sql .= $tmp . ')';
          } else {  // quick search
              $mysearchterm = addslashes ($query);
-            $sql .= " AND (description LIKE '%$mysearchterm%')"
-                 . " OR (title LIKE '%$mysearchterm%')";
+            $sql .= " AND ((description LIKE '%$mysearchterm%')"
+                 . " OR (title LIKE '%$mysearchterm%'))";
          }
      }

@@ -415,9 +413,9 @@
      }

      if (!empty ($author)) {
-        $sql .= "AND (owner_id = '$author')";
+        $sql .= " AND (owner_id = '$author')";
      }
-    $sql .= COM_getPermSQL ('AND');
+    $sql .= COM_getPermSQL('AND');
      $sql .= ' GROUP BY date, lid, cid, url, description, title, hits,  
owner_id, group_id, perm_owner, perm_group, perm_members, perm_anon ORDER  
BY date DESC';
      $l = ($perpage * $page) - $perpage;
      $sql .= ' LIMIT ' . $l . ',' . $perpage;

Modified: trunk/geeklog-1-jp-extended/plugins/links/language/slovenian.php
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/links/language/slovenian.php	 
(original)
+++ trunk/geeklog-1-jp-extended/plugins/links/language/slovenian.php	Sat  
Feb  7 08:26:59 2009
@@ -1,7 +1,7 @@
  <?php

   
###############################################################################
-# slovenian.php - version 1.4.1
+# slovenian.php - version 1.5.1
  # This is the slovenian language file for the Geeklog Links Plugin
  # language file for geeklog version 1.4.1 beta by mb
  # gape****@gape***** ; za pripombe, predloge ipd ... pi�i na email
@@ -43,16 +43,16 @@
      88 => 'Ni nedavnih novih povezav',
      114 => 'Povezave',
      116 => 'Dodaj povezavo',
-    117 => 'Report Broken Link',
-    118 => 'Broken Link Report',
-    119 => 'The following link has been reported to be broken: ',
-    120 => 'To edit the link, click here: ',
-    121 => 'The broken Link was reported by: ',
-    122 => 'Thank you for reporting this broken link. The administrator  
will correct the problem as soon as possible',
-    123 => 'Thank you',
+    117 => 'Prijavi napako v povezavi',
+    118 => 'Prijava napake v povezavi',
+    119 => 'Te povezave so prijavljene kot nedelujo�e: ',
+    120 => 'Da popravi� povezavo klikni tukj: ',
+    121 => 'Napako v povezavi je prijavil: ',
+    122 => 'Hvala da ste prijavili to napako v povezavi. Administrator bo  
odpravil te�avo takoj ko bo mogo�e.',
+    123 => 'Hvala',
      124 => 'Go',
-    125 => 'Categories',
-    126 => 'You are here:',
+    125 => 'Kategorije',
+    126 => 'Ti si tukaj:',
      'root' => 'Root'
  );

@@ -60,10 +60,10 @@
  # for stats

  $LANG_LINKS_STATS = array(
-    'links' => 'Links (Clicks) in the System',
-    'stats_headline' => 'Top Ten Links',
-    'stats_page_title' => 'Links',
-    'stats_hits' => 'Hits',
+    'links' => 'Povezave (Kliki) v Sistemu',
+    'stats_headline' => '10 najbolj popularnih povezav',
+    'stats_page_title' => 'Povezave',
+    'stats_hits' => 'Zadetki',
      'stats_no_hits' => 'Izgleda, da na tem mestu ni povezav ali pa �e  
nikoli ni nih�e kliknil na nobeno.'
  );

@@ -74,7 +74,7 @@
      'results' => 'Rezultati povezav',
      'title' => 'Naslov',
      'date' => 'Dodani datum',
-    'author' => 'Odposlal:',
+    'author' => 'Avtor:',
      'hits' => 'Kliki'
  );

@@ -102,20 +102,20 @@
  $PLG_links_MESSAGE2 = 'Tvoja povezava je uspe�no shranjena.';
  $PLG_links_MESSAGE3 = 'Povezava je uspe�no izbrisana.';
  $PLG_links_MESSAGE4 = "Hvala, da si povezavo oddal/a na spletno mesto  
{$_CONF['site_name']}.  Sedaj jo lahko vidi� v razdelku <a  
href={$_CONF['site_url']}/links/index.php>povezave</a>.";
-$PLG_links_MESSAGE5 = 'You do not have sufficient access rights to view  
this category.';
-$PLG_links_MESSAGE6 = 'You do not have sufficient rights to edit this  
category.';
-$PLG_links_MESSAGE7 = 'Please enter a Category Name and Description.';
-$PLG_links_MESSAGE10 = 'Your category has been successfully saved.';
-$PLG_links_MESSAGE11 = 'You are not allowed to set the id of a category  
to "site" or "user" - these are reserved for internal use.';
+$PLG_links_MESSAGE5 = 'Nima� zadosti visokih pravic za prikaz te  
kategorije.';
+$PLG_links_MESSAGE6 = 'Nima� zadosti visokih pravic za urejanje te  
kategorije.';
+$PLG_links_MESSAGE7 = 'Prosim vpi�i ime kategorije in njen opis.';
+$PLG_links_MESSAGE10 = 'Kategorija je bila uspe�no shranjena.';
+$PLG_links_MESSAGE11 = 'Ni dovoljeno uporabiti imen "site" ali "user" za  
kategorijo - ta so rezervirana za notranjo uporabo.';
  $PLG_links_MESSAGE12 = 'You are trying to make a parent category the child  
of it\'s own subcategory. This would create an orphan category, so please  
first move the child category or categories up to a higher level.';
-$PLG_links_MESSAGE13 = 'The category has been successfully deleted.';
-$PLG_links_MESSAGE14 = 'Category contains links and/or categories. Please  
remove these first.';
-$PLG_links_MESSAGE15 = 'You do not have sufficient rights to delete this  
category.';
-$PLG_links_MESSAGE16 = 'No such category exists.';
-$PLG_links_MESSAGE17 = 'This category id is already in use.';
+$PLG_links_MESSAGE13 = 'Kategorija je bila uspe�no izbrisana.';
+$PLG_links_MESSAGE14 = 'Kategorija vsebuje povezave in ali kategorije.  
Prosim da jih prej izbri�e�.';
+$PLG_links_MESSAGE15 = 'Nima� dovolj visokih pravic za izbris te  
kategorije.';
+$PLG_links_MESSAGE16 = 'Kategorija s tem imenom ne obstaja.';
+$PLG_links_MESSAGE17 = 'Ime (id) te kategorije je �e uporabljeno.';

  // Messages for the plugin upgrade
-$PLG_links_MESSAGE3001 = 'Plugin upgrade not supported.';
+$PLG_links_MESSAGE3001 = 'Nadgradnja vti�nika ni podprta.';
  $PLG_links_MESSAGE3002 = $LANG32[9];

   
###############################################################################
@@ -141,7 +141,7 @@
      21 => 'shrani',
      22 => 'prekli�i',
      23 => 'izbri�i',
-    24 => 'Link not found',
+    24 => 'Ne najdem povezave',
      25 => 'The link you selected for editing could not be found.',
      26 => 'Validate Links',
      27 => 'HTML Status',
@@ -258,4 +258,4 @@
      12 => array('No access' => 0, 'Read-Only' => 2, 'Read-Write' => 3)
  );

-?>
\ No newline at end of file
+?>

Modified:  
trunk/geeklog-1-jp-extended/plugins/links/language/slovenian_utf-8.php
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/links/language/slovenian_utf-8.php	 
(original)
+++ trunk/geeklog-1-jp-extended/plugins/links/language/slovenian_utf-8.php	 
Sat Feb  7 08:26:59 2009
@@ -1,7 +1,7 @@
  <?php

   
###############################################################################
-# slovenian.php - version 1.4.1
+# slovenian_utf-8.php - version 1.5.1
  # This is the slovenian language file for the Geeklog Links Plugin
  # language file for geeklog version 1.4.1 beta by mb
  # gape****@gape***** ; za pripombe, predloge ipd ... piši na email
@@ -43,16 +43,16 @@
      88 => 'Ni nedavnih novih povezav',
      114 => 'Povezave',
      116 => 'Dodaj povezavo',
-    117 => 'Report Broken Link',
-    118 => 'Broken Link Report',
-    119 => 'The following link has been reported to be broken: ',
-    120 => 'To edit the link, click here: ',
-    121 => 'The broken Link was reported by: ',
-    122 => 'Thank you for reporting this broken link. The administrator  
will correct the problem as soon as possible',
-    123 => 'Thank you',
+    117 => 'Prijavi napako v povezavi',
+    118 => 'Prijava napake v povezavi',
+    119 => 'Te povezave so prijavljene kot nedelujoče: ',
+    120 => 'Da popraviš povezavo klikni tukj: ',
+    121 => 'Napako v povezavi je prijavil: ',
+    122 => 'Hvala da ste prijavili to napako v povezavi. Administrator bo  
odpravil težavo takoj ko bo mogoče.',
+    123 => 'Hvala',
      124 => 'Go',
-    125 => 'Categories',
-    126 => 'You are here:',
+    125 => 'Kategorije',
+    126 => 'Ti si tukaj:',
      'root' => 'Root'
  );

@@ -60,10 +60,10 @@
  # for stats

  $LANG_LINKS_STATS = array(
-    'links' => 'Links (Clicks) in the System',
-    'stats_headline' => 'Top Ten Links',
-    'stats_page_title' => 'Links',
-    'stats_hits' => 'Hits',
+    'links' => 'Povezave (Kliki) v Sistemu',
+    'stats_headline' => '10 najbolj popularnih povezav',
+    'stats_page_title' => 'Povezave',
+    'stats_hits' => 'Zadetki',
      'stats_no_hits' => 'Izgleda, da na tem mestu ni povezav ali pa še  
nikoli ni nihče kliknil na nobeno.'
  );

@@ -74,7 +74,7 @@
      'results' => 'Rezultati povezav',
      'title' => 'Naslov',
      'date' => 'Dodani datum',
-    'author' => 'Odposlal:',
+    'author' => 'Avtor:',
      'hits' => 'Kliki'
  );

@@ -102,20 +102,20 @@
  $PLG_links_MESSAGE2 = 'Tvoja povezava je uspešno shranjena.';
  $PLG_links_MESSAGE3 = 'Povezava je uspešno izbrisana.';
  $PLG_links_MESSAGE4 = "Hvala, da si povezavo oddal/a na spletno mesto  
{$_CONF['site_name']}.  Sedaj jo lahko vidiš v razdelku <a  
href={$_CONF['site_url']}/links/index.php>povezave</a>.";
-$PLG_links_MESSAGE5 = 'You do not have sufficient access rights to view  
this category.';
-$PLG_links_MESSAGE6 = 'You do not have sufficient rights to edit this  
category.';
-$PLG_links_MESSAGE7 = 'Please enter a Category Name and Description.';
-$PLG_links_MESSAGE10 = 'Your category has been successfully saved.';
-$PLG_links_MESSAGE11 = 'You are not allowed to set the id of a category  
to "site" or "user" - these are reserved for internal use.';
+$PLG_links_MESSAGE5 = 'Nimaš zadosti visokih pravic za prikaz te  
kategorije.';
+$PLG_links_MESSAGE6 = 'Nimaš zadosti visokih pravic za urejanje te  
kategorije.';
+$PLG_links_MESSAGE7 = 'Prosim vpiši ime kategorije in njen opis.';
+$PLG_links_MESSAGE10 = 'Kategorija je bila uspešno shranjena.';
+$PLG_links_MESSAGE11 = 'Ni dovoljeno uporabiti imen "site" ali "user" za  
kategorijo - ta so rezervirana za notranjo uporabo.';
  $PLG_links_MESSAGE12 = 'You are trying to make a parent category the child  
of it\'s own subcategory. This would create an orphan category, so please  
first move the child category or categories up to a higher level.';
-$PLG_links_MESSAGE13 = 'The category has been successfully deleted.';
-$PLG_links_MESSAGE14 = 'Category contains links and/or categories. Please  
remove these first.';
-$PLG_links_MESSAGE15 = 'You do not have sufficient rights to delete this  
category.';
-$PLG_links_MESSAGE16 = 'No such category exists.';
-$PLG_links_MESSAGE17 = 'This category id is already in use.';
+$PLG_links_MESSAGE13 = 'Kategorija je bila uspešno izbrisana.';
+$PLG_links_MESSAGE14 = 'Kategorija vsebuje povezave in ali kategorije.  
Prosim da jih prej izbrišeš.';
+$PLG_links_MESSAGE15 = 'Nimaš dovolj visokih pravic za izbris te  
kategorije.';
+$PLG_links_MESSAGE16 = 'Kategorija s tem imenom ne obstaja.';
+$PLG_links_MESSAGE17 = 'Ime (id) te kategorije je že uporabljeno.';

  // Messages for the plugin upgrade
-$PLG_links_MESSAGE3001 = 'Plugin upgrade not supported.';
+$PLG_links_MESSAGE3001 = 'Nadgradnja vtičnika ni podprta.';
  $PLG_links_MESSAGE3002 = $LANG32[9];

   
###############################################################################
@@ -141,7 +141,7 @@
      21 => 'shrani',
      22 => 'prekliči',
      23 => 'izbriši',
-    24 => 'Link not found',
+    24 => 'Ne najdem povezave',
      25 => 'The link you selected for editing could not be found.',
      26 => 'Validate Links',
      27 => 'HTML Status',

Modified: trunk/geeklog-1-jp-extended/plugins/polls/functions.inc
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/polls/functions.inc	(original)
+++ trunk/geeklog-1-jp-extended/plugins/polls/functions.inc	Sat Feb  7  
08:26:59 2009
@@ -10,7 +10,7 @@
  // | API method and 2) implements all the common code needed by the  
Polls      |
  // | plugin' PHP  
files.                                                        |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs       - tony AT tonybibbs DOT  
com                     |
  // |          Tom Willett      - twillett AT users DOT sourceforge DOT  
net     |
@@ -33,8 +33,6 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: functions.inc,v 1.92 2008/09/21 08:37:08 dhaun Exp $

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.inc') !== false) {
      die('This file can not be used on its own.');
@@ -59,7 +57,7 @@
      $_PO_CONF = $po_config->get_config('polls');
  }

-$_PO_CONF['version'] = '2.0.1';
+$_PO_CONF['version'] = '2.0.2';

  //  
+---------------------------------------------------------------------------+
  // | Geeklog Plugin API  
Implementations                                        |

Modified: trunk/geeklog-1-jp-extended/plugins/polls/install_defaults.php
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/polls/install_defaults.php	 
(original)
+++ trunk/geeklog-1-jp-extended/plugins/polls/install_defaults.php	Sat Feb   
7 08:26:59 2009
@@ -10,7 +10,7 @@
  // | records. These settings are only used during the initial  
installation     |
  // | and not referenced any more once the plugin is  
installed.                 |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2008 by the following  
authors:                              |
+// | Copyright (C) 2009 by the following  
authors:                              |
  //  
|                                                                            
|
  // | Authors: Dirk Haun        - dirk AT haun-online DOT  
de                    |
  //  
+---------------------------------------------------------------------------+
@@ -30,8 +30,6 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: install_defaults.php,v 1.8 2008/09/21 08:37:08 dhaun Exp $

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'install_defaults.php') !==  
false) {
      die('This file can not be used on its own!');
@@ -54,8 +52,8 @@
  // Set to 1 to hide the "Polls" entry from the top menu:
  $_PO_DEFAULT['hidepollsmenu']      = 0;

-$_PO_DEFAULT['maxquestions']       = 10; // max. number of questions in a  
poll
-$_PO_DEFAULT['maxanswers']         = 10; // max. number of options in a  
question
+$_PO_DEFAULT['maxquestions']       = 5; // max. number of questions in a  
poll
+$_PO_DEFAULT['maxanswers']         = 8; // max. number of options in a  
question

  // 'submitorder' is the order in which answers are saved in admin/poll.php
  // 'voteorder' will list answers ordered by number of votes  
(highest->lowest);

Modified:  
trunk/geeklog-1-jp-extended/plugins/polls/templates/admin/polleditor.thtml
==============================================================================
---  
trunk/geeklog-1-jp-extended/plugins/polls/templates/admin/polleditor.thtml	 
(original)
+++  
trunk/geeklog-1-jp-extended/plugins/polls/templates/admin/polleditor.thtml	 
Sat Feb  7 08:26:59 2009
@@ -42,5 +42,10 @@
                                      <p>{lang_permissionskey}</p>
                                      <div>{permissions_editor}</div>
                                      <p>{lang_permissions_msg}</p>
-                                    <p><input type="submit" name="mode"  
value="{lang_save}"{xhtml}><input type="submit" name="mode"  
value="{lang_cancel}"{xhtml}>{delete_option}<input type="hidden"  
name="{gltoken_name}" value="{gltoken}"{xhtml}></p>
+                                    <p>
+                                    <input type="submit" name="mode"  
value="{lang_save}"{xhtml}>
+                                    <input type="submit" name="mode"  
value="{lang_cancel}"{xhtml}>{delete_option}
+                                    <input type="hidden"  
name="{gltoken_name}" value="{gltoken}"{xhtml}>
+                                    <input type="hidden" value="{poll_id}"  
name="old_pid"{xhtml}>
+                                    </p>
                                  </form>

Modified: trunk/geeklog-1-jp-extended/plugins/spamx/functions.inc
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/spamx/functions.inc	(original)
+++ trunk/geeklog-1-jp-extended/plugins/spamx/functions.inc	Sat Feb  7  
08:26:59 2009
@@ -4,13 +4,12 @@
   * File: functions.inc
   * This is the functions.inc for the Geeklog Spam-X plugin
   *
- * Copyright (C) 2004-2008 by the following authors:
+ * Copyright (C) 2004-2009 by the following authors:
   * Authors      Tom Willett     tomw AT pigstye DOT net
   *              Dirk Haun       dirk AT haun-online DOT de
   *
   * Licensed under GNU General Public License
   *
- * $Id: functions.inc,v 1.37 2008/09/21 08:37:08 dhaun Exp $
   */

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.inc') !== false) {
@@ -39,7 +38,7 @@
      $_SPX_CONF = $spx_config->get_config('spamx');
  }

-$_SPX_CONF['version'] = '1.1.1';
+$_SPX_CONF['version'] = '1.1.2';

  //  
+---------------------------------------------------------------------------+
  // | Geeklog Plugin API  
Implementations                                        |

Modified:  
trunk/geeklog-1-jp-extended/plugins/spamx/language/hebrew_utf-8.php
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/spamx/language/hebrew_utf-8.php	 
(original)
+++ trunk/geeklog-1-jp-extended/plugins/spamx/language/hebrew_utf-8.php	Sat  
Feb  7 08:26:59 2009
@@ -105,7 +105,7 @@
      'import_success' => '<p>יובאו בהצלחה %d פרטי רשימות שחורות.',
      'import_failure' => '<p><strong>שגיאה:</strong> לא נמצאו פריטים.',
      'allow_url_fopen' => '<p>מצטערים, כיוון השרת שלכם לא מרשה לקרוא קבצים  
לא מקומיים (<code>allow_url_fopen</code> הוא במצב off). אנא הורידו את  
הרשימה השחורה מהכתובת הבאה והעלו אותה לספריית ה-"data" של התוכנה,  
<tt>%s</tt>, לפנו שתנסו שוב:',
-    'documentation' => 'הדוקומנצטיה של ה-Spam-X Plugin',
+    'documentation' => 'הדוקומנטציה של ה-Spam-X Plugin',
      'emailmsg' => "פריט ספאם חדש נשלח ב: \"%s\"\nקוד זיהוי משתמש:  
\"%s\"\n\nתוכן:\"%s\"",
      'emailsubject' => 'פריט ספאם ב: %s',
      'ipblack' => 'הרשימה השחורה של כתובות IP של Spam-X',

Modified: trunk/geeklog-1-jp-extended/plugins/staticpages/functions.inc
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/staticpages/functions.inc	(original)
+++ trunk/geeklog-1-jp-extended/plugins/staticpages/functions.inc	Sat Feb   
7 08:26:59 2009
@@ -10,7 +10,7 @@
  // | API method and 2) implements all the common code needed by the  
Static     |
  // | Pages' PHP  
files.                                                         |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs       - tony AT tonybibbs DOT  
com                     |
  // |          Tom Willett      - twillett AT users DOT sourceforge DOT  
net     |
@@ -33,8 +33,6 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: functions.inc,v 1.127 2008/09/21 08:37:08 dhaun Exp $

  if (strpos(strtolower($_SERVER['PHP_SELF']), 'functions.inc') !== false) {
      die('This file can not be used on its own.');
@@ -59,7 +57,7 @@
      $_SP_CONF = $sp_config->get_config('staticpages');
  }

-$_SP_CONF['version'] = '1.5.0';
+$_SP_CONF['version'] = '1.5.1';

  //  
+---------------------------------------------------------------------------+
  // | Plugin API -  
Services                                                     |
@@ -260,14 +258,15 @@
  /**
  * Prepare static page for display.
  *
-* @param    string  $page       static page id
-* @param    array   $A          static page data
-* @param    string  comment_order sorting of comments
-* @param    string  comment_mode
-* @return   string              HTML for the static page
+* @param    string  $page           static page id
+* @param    array   $A              static page data
+* @param    string  $comment_order  sorting of comments
+* @param    string  $comment_mode   comment mode (nested, flat, etc.)
+* @param    int     $msg            optional message number
+* @return   string                  HTML for the static page
  *
  */
-function SP_displayPage ($page, $A, $comment_order = 'ASC', $comment_mode  
='nested')
+function SP_displayPage ($page, $A, $comment_order = 'ASC', $comment_mode  
= 'nested', $msg = 0)
  {
      global $_CONF, $_TABLES, $_USER,
             $LANG01, $LANG11, $LANG_STATIC, $_IMAGE_TYPE, $_SP_CONF;
@@ -281,6 +280,9 @@
              $retval .= COM_siteHeader ('none');
          }
      }
+    if ($msg > 0) {
+        $retval .= COM_showMessage($msg, 'staticpages');
+    }
      if (($A['sp_inblock'] == 1) && ($A['sp_format'] != 'blankpage')) {
          $retval .= COM_startBlock (stripslashes ($A['sp_title']),  
$A['sp_help'],
                          COM_getBlockTemplate  
('_staticpages_block', 'header'));
@@ -391,59 +393,66 @@
  * @return   string              HTML for the static page
  *
  */
-function SP_printPage ($page, $A)
+function SP_printPage($page, $A)
  {
-    global $_CONF, $LANG01, $_TABLES;
+    global $_CONF, $_TABLES, $LANG01, $LANG_DIRECTION;

-    $template_path = staticpages_templatePath ();
-    $print = new Template ($template_path);
-    $print->set_file (array ('print' => 'printable.thtml'));
-    $print->set_var ('site_url', $_CONF['site_url']);
-    $print->set_var ('site_name', $_CONF['site_name']);
-    $print->set_var ('site_slogan', $_CONF['site_slogan']);
-
-    $print->set_var ('page_title', $_CONF['site_name'] . ' - '
-                                   . stripslashes ($A['sp_title']));
-    $sp_url = COM_buildUrl ($_CONF['site_url']
-                               . '/staticpages/index.php?page=' . $page);
-    $print->set_var ('sp_url', $sp_url);
-    $print->set_var ('sp_title', stripslashes ($A['sp_title']));
-    $print->set_var ('sp_content',
-            SP_render_content (stripslashes ($A['sp_content']),  
$A['sp_php']));
-    $print->set_var ('sp_hits', COM_numberFormat ($A['sp_hits']));
+    $template_path = staticpages_templatePath();
+    $print = new Template($template_path);
+    $print->set_file(array('print' => 'printable.thtml'));
+    $print->set_var('site_url', $_CONF['site_url']);
+    $print->set_var('site_admin_url', $_CONF['site_admin_url']);
+    $print->set_var('layout_url', $_CONF['layout_url']);
+    $print->set_var('site_name', $_CONF['site_name']);
+    $print->set_var('site_slogan', $_CONF['site_slogan']);
+
+    $print->set_var('direction', $LANG_DIRECTION);
+    COM_setLangIdAndAttribute($print);
+    $print->set_var('xhtml', XHTML);
+    $print->set_var('page_title', $_CONF['site_name'] . ' - '
+                                  . stripslashes($A['sp_title']));
+    $sp_url = COM_buildUrl($_CONF['site_url']
+                                  . '/staticpages/index.php?page=' .  
$page);
+    $print->set_var('sp_url', $sp_url);
+    $print->set_var('sp_title', stripslashes($A['sp_title']));
+    $print->set_var('sp_content',
+            SP_render_content(stripslashes($A['sp_content']),  
$A['sp_php']));
+    $print->set_var('sp_hits', COM_numberFormat($A['sp_hits']));
      if ($A['commentcode'] >= 0) {
          $commentsUrl = $sp_url . '#comments';
          $comments = DB_count($_TABLES['comments'],
                               array('sid', 'type'),  
array($page, 'staticpages'));
-        $numComments = COM_numberFormat ($comments);
-        $print->set_var ('story_comments', $numComments);
-        $print->set_var ('comments_url', $commentsUrl);
-        $print->set_var ('comments_text', $numComments . ' ' . $LANG01[3]);
-        $print->set_var ('comments_count', $numComments);
-        $print->set_var ('lang_comments', $LANG01[3]);
-        $comments_with_count = sprintf ($LANG01[121], $numComments);
+        $numComments = COM_numberFormat($comments);
+        $print->set_var('story_comments', $numComments);
+        $print->set_var('comments_url', $commentsUrl);
+        $print->set_var('comments_text', $numComments . ' ' . $LANG01[3]);
+        $print->set_var('comments_count', $numComments);
+        $print->set_var('lang_comments', $LANG01[3]);
+        $comments_with_count = sprintf($LANG01[121], $numComments);

          if ($comments > 0) {
-            $comments_with_count = COM_createLink($comments_with_count,  
$commentsUrl);
+            $comments_with_count = COM_createLink($comments_with_count,
+                                                  $commentsUrl);
          }
-        $print->set_var ('comments_with_count', $comments_with_count);
+        $print->set_var('comments_with_count', $comments_with_count);
      }
-    $print->parse ('output', 'print');
+    $print->parse('output', 'print');

-    return $print->finish ($print->get_var ('output'));
+    return $print->finish($print->get_var('output'));
  }

  /**
  * Prepare static page for display
  *
-* @param    string  $page       static page id
-* @param    string  $mode       type of display to return  
('', 'print', 'autotag'
-* @param    string  comment_order sorting of comments
-* @param    string  comment_mode
-* @return   string              HTML for the static page
+* @param    string  $page           static page id
+* @param    string  $mode           type of display to return  
('', 'print', 'autotag'
+* @param    string  $comment_order  sorting of comments
+* @param    string  $comment_mode   comment mode (nested, flat, etc.)
+* @param    int     $msg            optional message number
+* @return   string                  HTML for the static page
  *
  */
-function SP_returnStaticpage($page='', $mode='', $comment_order = 'ASC',  
$comment_mode ='nested')
+function SP_returnStaticpage($page='', $mode='', $comment_order = 'ASC',  
$comment_mode = 'nested', $msg = 0)
  {
      global $_CONF, $_TABLES, $LANG_ACCESS, $LANG_STATIC, $LANG_LOGIN;

@@ -462,7 +471,7 @@
          } else if ($mode =='autotag') {
              $retval =  
SP_render_content(stripslashes($retval['sp_content']), $retval['sp_php']);
          } else {
-            $retval = SP_displayPage($page, $retval, $comment_order,  
$comment_mode);
+            $retval = SP_displayPage($page, $retval, $comment_order,  
$comment_mode, $msg);
          }

          // increment hit counter for page

Modified:  
trunk/geeklog-1-jp-extended/plugins/staticpages/language/japanese_utf-8.php
==============================================================================
---  
trunk/geeklog-1-jp-extended/plugins/staticpages/language/japanese_utf-8.php	 
(original)
+++  
trunk/geeklog-1-jp-extended/plugins/staticpages/language/japanese_utf-8.php	 
Sat Feb  7 08:26:59 2009
@@ -163,4 +163,4 @@
      12 => array('アクセス不可' => 0, '表示' => 2, '表示・編集' => 3)
  );

-?>
\ No newline at end of file
+?>

Modified: trunk/geeklog-1-jp-extended/plugins/staticpages/services.inc.php
==============================================================================
--- trunk/geeklog-1-jp-extended/plugins/staticpages/services.inc.php	 
(original)
+++ trunk/geeklog-1-jp-extended/plugins/staticpages/services.inc.php	Sat  
Feb  7 08:26:59 2009
@@ -51,6 +51,8 @@
      global $_CONF, $_TABLES, $_USER, $LANG_ACCESS, $LANG12, $LANG_STATIC,
             $LANG_LOGIN, $_GROUPS, $_SP_CONF;

+    require_once $_CONF['path_system'] . '/lib-webservices.php';
+
      $output = '';

      if (!SEC_hasRights('staticpages.edit')) {
@@ -101,7 +103,9 @@
          }
      }

-    $args['sp_uid'] = $_USER['uid'];
+    if (!isset($args['sp_uid'])) {
+        $args['sp_uid'] = $_USER['uid'];
+    }

      if (empty($args['sp_title']) && !empty($args['title'])) {
          $args['sp_title'] = $args['title'];
@@ -116,7 +120,9 @@
          $args['sp_tid'] = $args['category'][0];
      }

-    $args['owner_id'] = $_USER['uid'];
+    if (!isset($args['owner_id'])) {
+        $args['owner_id'] = $_USER['uid'];
+    }

      if (empty($args['group_id'])) {
          $args['group_id'] = SEC_getFeatureGroup('staticpages.edit',  
$_USER['uid']);
@@ -125,7 +131,11 @@
      $args['sp_id'] = COM_sanitizeID($args['sp_id']);
      if (!$gl_edit) {
          if (strlen($args['sp_id']) > STATICPAGE_MAX_ID_LENGTH) {
-            $args['sp_id'] = WS_makeId($args['slug'],  
STATICPAGE_MAX_ID_LENGTH);
+            $slug = '';
+            if (isset($args['slug'])) {
+                $slug = $args['slug'];
+            }
+            $args['sp_id'] = WS_makeId($slug, STATICPAGE_MAX_ID_LENGTH);
          }
      }


Modified:  
trunk/geeklog-1-jp-extended/plugins/staticpages/templates/printable.thtml
==============================================================================
---  
trunk/geeklog-1-jp-extended/plugins/staticpages/templates/printable.thtml	 
(original)
+++  
trunk/geeklog-1-jp-extended/plugins/staticpages/templates/printable.thtml	 
Sat Feb  7 08:26:59 2009
@@ -1,9 +1,9 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML  
4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html {lang_attribute}>
  <head>
-    <title>{page_title}</title>
+  <title>{page_title}</title>
  </head>
-<body>
+<body dir="{direction}">
      <h1>{sp_title}</h1>

      <p>{sp_content}</p>
@@ -13,6 +13,6 @@
      <p>{site_name}<br{xhtml}>
          <a href="{sp_url}">{sp_url}</a>
      </p>
-({comments_text})
+<p>({comments_text})</p>
  </body>
  </html>

Modified: trunk/geeklog-1-jp-extended/public_html/article.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/article.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/article.php	Sat Feb  7 08:26:59  
2009
@@ -8,7 +8,7 @@
  //  
|                                                                            
|
  // | Shows articles in various  
formats.                                        |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2008 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs        - tony AT tonybibbs DOT  
com                    |
  // |          Jason Whittenburg - jwhitten AT securitygeeks DOT  
com            |
@@ -31,15 +31,13 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: article.php,v 1.99 2008/07/27 09:11:29 dhaun Exp $

  /**
  * This page is responsible for showing a single article in different modes  
which
  * may, or may not, include the comments attached
  *
  * @author   Jason Whittenburg
-* @author   Tony Bibbbs <tony****@tonyb*****>
+* @author   Tony Bibbbs <tony AT tonybibbs DOT com>
  * @author   Vincent Furia <vinny01 AT users DOT sourceforge DOT net>
  */

@@ -136,96 +134,65 @@
      } elseif ( $output == STORY_INVALID_SID ) {
          $display .= COM_refresh($_CONF['site_url'] . '/index.php');
      } elseif (($mode == 'print') && ($_CONF['hideprintericon'] == 0)) {
-        $story_template = new Template ($_CONF['path_layout'] . 'article');
-        $story_template->set_file ('article', 'printable.thtml');
-        $story_template->set_var ('xhtml', XHTML);
-        $story_template->set_var ('page_title',
+        $story_template = new Template($_CONF['path_layout'] . 'article');
+        $story_template->set_file('article', 'printable.thtml');
+        $story_template->set_var('xhtml', XHTML);
+        $story_template->set_var('direction', $LANG_DIRECTION);
+        $story_template->set_var('page_title',
                  $_CONF['site_name'] . ': ' .  
$story->displayElements('title'));
-        $story_template->set_var ( 'story_title',  
$story->DisplayElements( 'title' ) );
-        header ('Content-Type: text/html; charset=' . COM_getCharset ());
-        $story_template->set_var ('story_date',  
$story->displayElements('date'));
+        $story_template->set_var('story_title',
+                                 $story->DisplayElements('title'));
+        header('Content-Type: text/html; charset=' . COM_getCharset());
+        $story_template->set_var('story_date',  
$story->displayElements('date'));

          if ($_CONF['contributedbyline'] == 1) {
-            $story_template->set_var ('lang_contributedby', $LANG01[1]);
-            $authorname = COM_getDisplayName  
($story->displayElements('uid'));
-            $story_template->set_var ('author', $authorname);
-            $story_template->set_var ('story_author', $authorname);
-            $story_template->set_var ('story_author_username',  
$story->DisplayElements('username'));
+            $story_template->set_var('lang_contributedby', $LANG01[1]);
+            $authorname =  
COM_getDisplayName($story->displayElements('uid'));
+            $story_template->set_var('author', $authorname);
+            $story_template->set_var('story_author', $authorname);
+            $story_template->set_var('story_author_username',
+                                     $story->DisplayElements('username'));
          }

-        $story_template->set_var ('story_introtext',
-                                    $story->DisplayElements('introtext'));
-        $story_template->set_var ('story_bodytext',
-                                    $story->DisplayElements('bodytext'));
-
-        $story_template->set_var ('site_url', $_CONF['site_url']);
-        $story_template->set_var ('layout_url', $_CONF['layout_url']);
-        $story_template->set_var ('site_name', $_CONF['site_name']);
-        $story_template->set_var ('site_slogan', $_CONF['site_slogan']);
-        $story_template->set_var ('story_id', $story->getSid());
-        $articleUrl = COM_buildUrl ($_CONF['site_url']
-                                    . '/article.php?story=' .  
$story->getSid());
+        $story_template->set_var('story_introtext',
+                                 $story->DisplayElements('introtext'));
+        $story_template->set_var('story_bodytext',
+                                 $story->DisplayElements('bodytext'));
+
+        $story_template->set_var('site_url', $_CONF['site_url']);
+        $story_template->set_var('site_admin_url',  
$_CONF['site_admin_url']);
+        $story_template->set_var('layout_url', $_CONF['layout_url']);
+        $story_template->set_var('site_name', $_CONF['site_name']);
+        $story_template->set_var('site_slogan', $_CONF['site_slogan']);
+        $story_template->set_var('story_id', $story->getSid());
+        $articleUrl = COM_buildUrl($_CONF['site_url']
+                                   . '/article.php?story=' .  
$story->getSid());
          if ($story->DisplayElements('commentcode') >= 0) {
              $commentsUrl = $articleUrl . '#comments';
              $comments = $story->DisplayElements('comments');
-            $numComments = COM_numberFormat ($comments);
-            $story_template->set_var ('story_comments', $numComments);
-            $story_template->set_var ('comments_url', $commentsUrl);
-            $story_template->set_var ('comments_text',
+            $numComments = COM_numberFormat($comments);
+            $story_template->set_var('story_comments', $numComments);
+            $story_template->set_var('comments_url', $commentsUrl);
+            $story_template->set_var('comments_text',
                      $numComments . ' ' . $LANG01[3]);
-            $story_template->set_var ('comments_count', $numComments);
-            $story_template->set_var ('lang_comments', $LANG01[3]);
-            $comments_with_count = sprintf ($LANG01[121], $numComments);
+            $story_template->set_var('comments_count', $numComments);
+            $story_template->set_var('lang_comments', $LANG01[3]);
+            $comments_with_count = sprintf($LANG01[121], $numComments);

              if ($comments > 0) {
-                $comments_with_count =  
COM_createLink($comments_with_count, $commentsUrl);
+                $comments_with_count = COM_createLink($comments_with_count,
+                                                      $commentsUrl);
              }
-            $story_template->set_var ('comments_with_count',  
$comments_with_count);
+            $story_template->set_var('comments_with_count',
+                                     $comments_with_count);
          }
          $story_template->set_var ('lang_full_article', $LANG08[33]);
          $story_template->set_var ('article_url', $articleUrl);

-        $langAttr = '';
-        if( !empty( $_CONF['languages'] ) && !empty(  
$_CONF['language_files'] ))
-        {
-            $langId = COM_getLanguageId();
-        }
-        else
-        {
-            // try to derive the language id from the locale
-            $l = explode( '.', $_CONF['locale'] );
-            $langId = $l[0];
-        }
-        if( !empty( $langId ))
-        {
-            $l = explode( '-', str_replace( '_', '-', $langId ));
-            if(( count( $l ) == 1 ) && ( strlen( $langId ) == 2 ))
-            {
-                $langAttr = 'lang="' . $langId . '"';
-            }
-            else if( count( $l ) == 2 )
-            {
-                if(( $l[0] == 'i' ) || ( $l[0] == 'x' ))
-                {
-                    $langId = implode( '-', $l );
-                    $langAttr = 'lang="' . $langId . '"';
-                }
-                else if( strlen( $l[0] ) == 2 )
-                {
-                    $langId = implode( '-', $l );
-                    $langAttr = 'lang="' . $langId . '"';
-                }
-                else
-                {
-                    $langId = $l[0];
-                }
-            }
-        }
-        $story_template->set_var( 'lang_id', $langId );
-        $story_template->set_var( 'lang_attribute', $langAttr );
+        COM_setLangIdAndAttribute($story_template);

-        $story_template->parse ('output', 'article');
-        $display = $story_template->finish  
($story_template->get_var('output'));
+        $story_template->parse('output', 'article');
+        $display =  
$story_template->finish($story_template->get_var('output'));
      } else {
          // Set page title
          $pagetitle = $story->DisplayElements('title');
@@ -246,8 +213,15 @@
          }
          $display .= COM_siteHeader ('menu', $pagetitle, $rdf);

-        if (isset ($_GET['msg'])) {
-            $display .= COM_showMessage (COM_applyFilter ($_GET['msg'],  
true));
+        if (isset($_GET['msg'])) {
+            $msg = COM_applyFilter($_GET['msg'], true);
+            if ($msg > 0) {
+                $plugin = '';
+                if (isset($_GET['plugin'])) {
+                    $plugin = COM_applyFilter($_GET['plugin']);
+                }
+                $display .= COM_showMessage($msg, $plugin);
+            }
          }

          DB_query ("UPDATE {$_TABLES['stories']} SET hits = hits + 1 WHERE  
(sid = '".$story->getSid()."') AND (date <= NOW()) AND (draft_flag = 0)");
@@ -307,6 +281,15 @@
                                                    array('type'  =>  
$feedType,
                                                          'class' =>  
$feedClass));
              }
+        }
+        if ($_CONF['trackback_enabled'] &&
+                ($story->displayElements('trackbackcode') >= 0) &&
+                SEC_hasRights('story.ping') &&
+                ($story->displayElements('draft_flag') == 0) &&
+                ($story->displayElements('day') < time ())) {
+            $url = $_CONF['site_admin_url']
+                 . '/trackback.php?mode=sendall&amp;id=' .  
$story->getSid();
+            $story_options[] = COM_createLink($LANG_TRB['send_trackback'],  
$url);
          }
          $related = STORY_whatsRelated($story->displayElements('related'),
                                        $story->displayElements('uid'),

Modified: trunk/geeklog-1-jp-extended/public_html/calendar/event.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/calendar/event.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/calendar/event.php	Sat Feb  7  
08:26:59 2009
@@ -553,6 +553,7 @@
                  $event_title = stripslashes($A['title']);
                  if (!empty($A['url'])) {
                      $event_title = COM_createLink($event_title, $A['url']);
+                    $cal_templates->set_var('event_url', $A['url']);
                  }
                  $cal_templates->set_var('event_title', $event_title);
                  if (($_CA_CONF['personalcalendars'] == 1)

Modified: trunk/geeklog-1-jp-extended/public_html/calendar/index.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/calendar/index.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/calendar/index.php	Sat Feb  7  
08:26:59 2009
@@ -801,8 +801,8 @@
      break;

  case 'addentry':
-    $display .= plugin_submit_calendar($mode);
-    $display .= COM_siteFooter();
+     $display .= plugin_submit_calendar($mode);
+     $display .= COM_siteFooter();
      break;

  case 'savepersonal':

Modified: trunk/geeklog-1-jp-extended/public_html/docs/changes.html
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/docs/changes.html	(original)
+++ trunk/geeklog-1-jp-extended/public_html/docs/changes.html	Sat Feb  7  
08:26:59 2009
@@ -16,6 +16,43 @@
  <p>このドキュメントでは最も重要な変更点や目につく変更点を簡潔に説明していま 
す。変更点の詳細なリストは、
  <a href="history">ChangeLog</a>をご覧ください。 
<tt>docs/changed-files</tt>には、前回リリース以来変更されたファイルの一覧が 
あります。</p>

+<h2><a name="changes152">Geeklog 1.5.2</a></h2>
+
+<h3>Bugfixes</h3>
+
+<ul>
+<li>Fixed a bug in the story preview where the story content was lost when
+    previewing a story with a duplicate story ID.</li>
+<li>The Trackback editor didn't work since the security token was missing  
from
+    the editor template.</li>
+<li>Fixed issues with clickable links in plain text postings.</li>
+<li>Fixed various problems with updating feeds, e.g. when changing topic
+    permissions.</li>
+</ul>
+
+<h3>Fixes in the bundled Plugins</h3>
+
+<ul>
+<li>Calendar: You couldn't add a new event to your personal calendar.</li>
+<li>Links: Changing a link's ID to one that was already in use overwrote  
the
+    other link.</li>
+<li>Polls: Changing a poll's ID created a new poll. Also fixed an SQL error
+    when the poll question contained single quotes.</li>
+<li>Static Pages: Saving a static page changed the owner to the user who  
saved
+    it.</li>
+</ul>
+
+<h3>Other Changes</h3>
+
+<ul>
+<li>Improved image quality when using gdlib to rescale uploaded  
images.</li>
+<li>Theme changes are documented in the <a href="theme.html#changes">theme
+    documentation</a>, as usual. There are 4 bugfixes (one of which is in  
the
+    templates for the Polls plugin) that should be applied to all themes  
for
+    the 1.5.x series.</li>
+</ul>
+
+
  <h2><a name="changes151">Geeklog 1.5.1</a></h2>

  <p>Geeklog 1.5.1の大半はバグ修正リリースであり、Geeklog 1.5.0のユーザにはア 
ップグレードをお勧めします。小さなものですが、いくつか機能追加もあります。 
</p>

Modified: trunk/geeklog-1-jp-extended/public_html/docs/config.html
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/docs/config.html	(original)
+++ trunk/geeklog-1-jp-extended/public_html/docs/config.html	Sat Feb  7  
08:26:59 2009
@@ -74,7 +74,7 @@
      <strong>注:</strong>実際にサイトを閉鎖するかどうかを決める設定は、 
<tt>siteconfig.php</tt>ファイルにある。</td></tr>
  <tr>
    <td valign="top"><a name="desc_copyrightyear">コピーライトの年 
(copyrightyear)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">サイトのフッタに表示するcopyrightの年を設定する。設定し 
ない場合、現在の年が使われる。</td></tr>
  <tr>
    <td valign="top"><a name="desc_url_rewrite">URLリライト 
(url_rewrite)</a></td>
@@ -763,13 +763,13 @@
    <td valign="top">画像ライブラリを「ImageMagick」、「Netpbm」、「GDライブ 
ラリ」から選ぶ。画像アップロード時にリサイズしたくない場合や、画像ライブラリ 
を使えない場合は「なし」にする。</td></tr>
  <tr>
    <td valign="top"><a name="desc_path_to_mogrify">Mogrifyへのパス 
(path_to_mogrify)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
-  <td valign="top">上記の「画像ライブラリ」にImageMagickを選んだ場合、 
mogrifyバイナリの<strong>完全なパス</strong>を '/usr/bin/mogrify' のように指 
定する。<br>
+  <td valign="top"><i>(無効)</i></td>
+  <td valign="top">上記の「画像ライブラリ」にimagemagickを選んだ場合、 
mogrifyバイナリの<strong>完全なパス</strong>を '/usr/bin/mogrify' のように指 
定する。<br>
      かなり新しいバージョンの<a  
href="http://www.imagemagick.org/">ImageMagick</a>が必要(バージョン5.4.9以 
降推奨)。</td></tr>
  <tr>
    <td valign="top"><a name="desc_path_to_netpbm">Netpbmへのパス 
(path_to_netpbm)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
-  <td valign="top">上記の「画像ライブラリ」に Netpbm を選んだ場合、Netpbmの 
バイナリがある<em>ディレクトリ</em>の完全なパスを  
<code>'/usr/bin/netpbm/'</code> のように指定する。パスの最後はスラッシ 
ュ'/'でなければならない。<br>様々なプラットフォーム用にコンパイルされた 
etpbmバイナリのパッケージは、<a  
href="http://sourceforge.net/projects/gallery/">Homepage of the Gallery  
project</a>からダウンロードできる。</td></tr>
+  <td valign="top"><i>(無効)</i></td>
+  <td valign="top">上記の「画像ライブラリ」にnetpbmを選んだ場合、Netpbmのバ 
イナリがある<em>ディレクトリ</em>の完全なパスを  
<code>'/usr/bin/netpbm/'</code> のように指定する。パスの最後はスラッシ 
ュ'/'でなければならない。<br>様々なプラットフォーム用にコンパイルされたバイ 
ナリのパッケージは、<a href="http://netpbm.sourceforge.net/">Netpbm  
homepage</a>からダウンロードできる。</td></tr>
  </table>

  <h3><a name="images_upload">画像: アップロード</a></h3>
@@ -788,8 +788,8 @@
    <td valign="top">はい(1)にすると、上記のように元画像を保存する場合、記事 
の中でリサイズされた画像を使えるようになる。言い換えると、記事中で 
(<code>[image<i>X</i>]</code> に加えて)<code>[unscaled<i>X</i>]</code> タ 
グを使えるようになる。</td></tr>
  <tr>
    <td valign="top"><a name="desc_debug_image_upload">画像アップロードのデバ 
ッグを行う(debug_image_upload)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
-  <td valign="top">コメントアウトされておらず、はい(<code>true</code>)にす 
ると、画像のアップロード中に,デバッグ情報がGeeklogの<tt>error.log</tt>に書き 
込まれる。画像アップロード時の問題を解明する際に役立つ。</td></tr>
+  <td valign="top"><i>いいえ(false)</i></td>
+  <td valign="top">はい(<code>true</code>)にすると、画像のアップロード中 
に,デバッグ情報がGeeklogの<tt>error.log</tt>に書き込まれる。画像アップロード 
時の問題を解明する際に役立つ。</td></tr>
  </table>

  <h3><a name="images_articles">画像: 記事の画像</a></h3>
@@ -852,11 +852,11 @@
    <td valign="top">ファイルサイズの最大値。この数値を超えた場合は、リサイズ 
用の画像ライブラリを使っていても、その画像ファイルは拒否される。</td></tr>
  <tr>
    <td valign="top"><a name="desc_force_photo_width">幅を固定する 
(force_photo_width)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">この設定を有効にしても、ユーザの写真を<em>表示する 
</em>ときにしか適用されない。写真表示用の <code>&lt;img&gt;</code>タグがここ 
で指定されたサイズで出力される。つまり、実際の写真のサイズはより大きなものか 
もしれないが、小さな(ここで指定された)サイズでしか表示されないということで 
ある。(掲示板などで)奇妙な形をしたユーザの写真がページのレイアウトを台無し 
にするのを防ぎたい場合に役に立つ。</td></tr>
  <tr>
    <td valign="top"><a name="desc_default_photo">デフォルトの写真 
(default_photo)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">有効にする場合には、画像ファイルの完全なURLを指定する。 
写真のないユーザの場合、このデフォルトの写真が表示される。この設定が無効で 
ユーザが写真もアバターを持っていない場合、何も表示されない。</td></tr>
  </table>

@@ -873,7 +873,7 @@
      このオプションを有効にすると、(掲示板のスレッドなどの)複数ユーザの多 
数の写真を表示するページでは、スピードダウンする可能性があることに注意。 
</td></tr>
  <tr>
    <td valign="top"><a name="desc_gravatar_rating">Gravatar評価を許可 
(gravatar_rating)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">gravatar.comへ投稿されたアバターは、(米国で)映画用に使 
われている評価システム<br>
  		<ul>
  			<li>(G = General:一般向け</li>
@@ -881,7 +881,7 @@
  			<li>R = Restriced:保護者同伴で入場可</li>
  			<li>X = Banned:17歳未満入場禁止</li>
  		</ul>
-		で<a href="http://gravatar.com/rating.php">評価される</a>。このオプション 
は表示されるアバターの<em>最も厳しい</em> ランクを設定する。たとえば、Rと設 
定すると、G, PG, Rランクのアバターは表示されるが、Xランクのアバターは一切表 
示されなくなる。</td></tr>
+		で評価される。このオプションは表示されるアバターの<em>最も厳しい</em> ラ 
ンクを設定する。たとえば、Rと設定すると、G, PG, Rランクのアバターは表示され 
るが、Xランクのアバターは一切表示されなくなる。</td></tr>
  </table>


@@ -899,11 +899,11 @@
    <td valign="top">言語ファイル名。追加の言語ファイルは<a  
href="http://www.geeklog.net/">http://www.geeklog.net</a>でダウンロードでき 
る。言語ファイルを翻訳した場合は、送ってください。下記の<a  
href="#Localization">ローカリゼーション</a>も参照してください。</td></tr>
  <tr>
    <td valign="top"><a name="desc_language_files">言語ファイル[多言語モード 
](language_files)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">多言語サイト用。言語の短縮形('en', 'de', 'ja'など)と言語 
ファイルの対応関係を指定する。</td></tr>
  <tr>
    <td valign="top"><a name="desc_languages">言語名[多言語モード 
](languages)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">多言語サイト用。言語の短縮形('en', 'de', 'ja'など)と言語 
名("English", "Deutsch", "Japanese"など)の対応関係を指定する。</td></tr>
  </table>

@@ -961,7 +961,7 @@
    <td valign="top">小数点以下で表示する桁数</td></tr>
  <tr>
    <td valign="top"><a name="desc_timezone">タイムゾーン(timezone)</a></td>
-  <td valign="top"><i>(コメントアウトされている)</i></td>
+  <td valign="top"><i>(無効)</i></td>
    <td valign="top">サーバが異なるタイムゾーンに配置されている場合、時刻が正 
しく表示されるようにローカルのタイムゾーンを設定する。この設定は、<a  
href="http://www.geeklog.net/forum/viewtopic.php?showtopic=21232">タイムゾー 
ンハック(timezone hack)</a>という名前で知られており、サーバによっては機能し 
ない場合がある。</td></tr>
  </table>


Modified: trunk/geeklog-1-jp-extended/public_html/docs/history
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/docs/history	(original)
+++ trunk/geeklog-1-jp-extended/public_html/docs/history	Sat Feb  7  
08:26:59 2009
@@ -1,5 +1,121 @@
  Geeklog History/Changes:

+Jan 24, 2009 (1.5.2rc1)
+------------
+
+- Fixed various issues with COM_makeClickableLinks (bug #0000767, #0000793,
+  #0000796) [Sami]
+- The comment submission form didn't show the user's full name when
+  $_CONF['show_fullname'] was enabled [Dirk]
+- Comments were always showing the username, even when  
$_CONF['show_fullname']
+  was enabled (reported and patch provided by mystral-kk, bug #0000800)
+- Fixed story preview losing the story when the sid already existed (bug
+  #0000789) [Dirk]
+- Fixed wrong use of str_replace in STORY_extractLinks (bug #0000794)  
[Dirk]
+- Added "Send Pings" to the Story Options block (if enabled and allowed  
for the
+  current user) [Dirk]
+- Don't let the user enable plugins when there's no functions.inc for the
+  plugin [Dirk]
+- When the install script can't find db-config.php, that message was always
+  displayed in English, i.e. you could not change the language for that  
screen
+  [Dirk]
+- When upgrading from a Geeklog version prior to 1.5.0, the plugin  
config.php
+  files are no longer renamed [Dirk]
+- Admin lists allowed non-sortable columns to be sortable (reported and  
patch
+  provided by hiroron, bug #0000791)
+- Fixed STORY_getItemInfo - need to check the draft flag and for a publish  
date
+  in the future [mystral-kk, Dirk]
+- Fixed wrong use of COM_isAnonUser in COM_getPermSQL (since 1.5.0) [Dirk]
+- When calling COM_getYearFormOptions with a $startoffset parameter, the  
list
+  of years was off by one (bug #0000783; patch provided by hiroron)
+- Fixed updating feeds after changing topic permissions (bug #0000779)  
[Dirk]
+- The security token was missing from the trackback editor template file
+  (reported and patch provided by hiroron, bug #0000778)
+- Removed rel="tag" from topic links in lib-story.php as that would  
indicate a
+  Microformat with a slightly different meaning [Dirk]
+- Don't include X-Originating-IP header in emails sent from the site's  
admin
+  area (bug #0000701) [Dirk]
+- Check if COM_errorLog exists before using it in the config class (for  
possible
+  problems during installation, bug #0000768) [Dirk]
+- Fixed filling out the Site Email / No-Reply Email fields in the install
+  script, which was overwriting the correct values from config.php during
+  upgrades (bug #0000759) [Dirk]
+- Set language direction in templates for printable versions of articles  
and
+  static pages. Also set $LANG_DIRECTION to 'ltr' now if the language file  
does
+  not already define it (bug #0000762) [Dirk]
+- Removing an element from the middle of the censorlist caused the  
censoring
+  to act up (bug #0000763) [Dirk]
+- Saving a story tried to update a feed of type 'geeklog' instead  
of 'article'
+  (reported by Tom Homer)
+- Delete a feed's file when deleting a feed (bug #0000758) [Dirk]
+- When using gdlib, use imagecopyresampled instead or imagecopyresized to  
scale
+  images. This should result in better image quality (part of Feature  
request
+  #0000720) [Dirk]
+- The {start_storylink_anchortag} variable in the story templates was  
missing
+  a '>' (reported by Michael Brusletten) [Dirk]
+- Display a "Service" column in the Admin's list of users when remote auth  
is
+  activated [Dirk]
+- Introduced new function COM_showMessageText to display a free-form text  
in a
+  "System Message" box (feature request #0000676) [Dirk]
+- Introduced new function COM_showMessageFromParameter for easy and  
consistent
+  display of messages passed in the URL, including plugin messages (second
+  attempt to fix bug #0000618) [Dirk]
+- Display confirmation message when emailing a story (feature request  
#0000689)
+  [Dirk]
+- Implemented new function COM_renderWikiText to convert wiki-formatted  
text
+  to (X)HTML (feature request #0000643) [Dirk]
+- Added support for CUSTOM_formatEmailAddress and CUSTOM_emailEscape  
functions
+  (feature request #0000727) [Dirk]
+- Fixed 'cookiedomain' being reported as changed in the Configuration
+  (bug #0000638) [Dirk]
+- Reverted fix for bug #0000618 (COM_showMessage automatically picking up a
+  'plugin' parameter) as it's causing problems when displaying more than  
one
+  message on the same page [Dirk]
+- Added missing check for allowed IP addresses in downloader class
+  (bug #0000709) [Dirk]
+- Force a refresh after uninstalling a plugin so that the plugin's entry
+  disappears from the Admins block [Dirk]
+- Fixed an issue with story expiry dates on PHP 4/Windows (reported by zeb)
+  [Mike]
+
+- Updated Hebrew language file for the install script and Spam-X plugin,
+  provided by LWC
+- Updated Japanese language files, provided by the Geeklog.jp group
+- Updated Polish language files, provided by Robert Stadnik
+- Updated Slovenian language file for the Links plugin, provided by gape
+
+Calendar plugin
+---------------
+- Fix for calendar plugin - unable to add personal event [Blaine]
+- Make {event_url} available in eventdetails.thtml [Dirk]
+
+Links plugin
+------------
+- Missing parentheses my have resulted in incorrect search results [Dirk]
+- Added urlencoded versions of {link_actual_url} and {link_name} [Dirk]
+- Prevent overwriting existing links when changing the link ID [Dirk]
+
+Polls plugin
+------------
+- Lowered the default number of questions per poll to 5 and the number of
+  answers per question to 8 to avoid running into Suhosin's default
+  post.max_vars limit (for new installs only) [Dirk]
+- Fixed SQL error when poll questions contained single quotes (bug  
#0000756)
+  [Dirk]
+- Fixed handling of poll IDs in Polls editor (bug #0000753) [Dirk]
+
+Spam-X
+------
+- Fixed compatibility check in the plugin install script [Dirk]
+
+Static Pages plugin
+-------------------
+- The owner of a static page changed to the user who last edited it
+  (bug #0000777) [Dirk]
+- Fixed call to WS_makeId when sp_id was longer than  
STATICPAGE_MAX_ID_LENGTH
+  (found by Marc Maier) [Dirk]
+
+
  Sep 22, 2008 (1.5.1)
  ------------


Modified: trunk/geeklog-1-jp-extended/public_html/docs/theme.html
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/docs/theme.html	(original)
+++ trunk/geeklog-1-jp-extended/public_html/docs/theme.html	Sat Feb  7  
08:26:59 2009
@@ -103,7 +103,51 @@
  </ol>


-<h2><a name="changes">Geeklog 1.5.1でのテーマの変更点</a></h2>
+<h2><a name="changes">Theme changes in Geeklog 1.5.2</a></h2>
+
+<p>Note: Themes made for Geeklog 1.5.0 or 1.5.1 should work just fine with
+Geeklog 1.5.2. In this release, we only fixed a few problems in the themes
+(detailed below) that also affected 1.5.0 and 1.5.1. The other changes  
listed
+here are optional.</p>
+
+<h3>Bugfixes</h3>
+
+<p>These changes are actual bugs in the template files that also exist in
+Geeklog 1.5.0 and 1.5.1. We recommend making these changes to all custom
+themes.</p>
+
+<ul>
+<li>The security token was missing from the trackback editor template file,
+    <tt>admin/trackback/trackbackeditor.thtml</tt></li>
+<li>The <code>{start_storylink_anchortag}</code> variable in the story  
templates
+    was missing the closing '&gt;'. This caused the story title to  
disappear
+    on some themes. (This was a bug in Geeklog's code, so no theme changes
+    required)</li>
+<li>The <code>{site_admin_url}</code> was missing from the Configuration  
form
+    action in <tt>admin/config/configuration.thtml</tt>. This may have  
caused
+    problems making configuration changes on some setups.</li>
+<li>Added a hidden <code>old_pid</code> input field to the polls editor  
template
+    file, <tt>plugins/polls/templates/admin/polleditor.thtml</tt>, to fix
+    problems when changing a poll's ID.</li>
+</ul>
+
+<h3>Other changes</h3>
+
+<p>These changes are optional. They fix cosmetic issues or issues that only
+affect some setups.</p>
+
+<ul>
+<li>Cosmetics: In the Professional theme, the last menu entry isn't  
different
+    from the other entries, so the
+    <code>.header-navigation-container li.last</code> rule in  
<tt>style.css</tt>
+    is not needed for this theme.</li>
+<li>Internationalisation: The language direction variable,
+    <code>{direction}</code>, was not available in the printer-friendly
+    templates for articles and static pages.</li>
+</ul>
+
+
+<h2><a name="changes151">Geeklog 1.5.1でのテーマの変更点</a></h2>

  <p>注意: Geeklog 1.5.0用に作成されたテーマはたいていの場合、Geeklog 1.5.1と 
互換性があります。必ず変更しなければならないのは管理者メニューのコンフィギュ 
レーション用のものが1つあるだけで、以下に列挙する変更点はすべて任意か、特別 
な設定時(多言語サイトや、右から左へと表示する言語など)のものです。詳細は以 
下をご覧ください。</p>


Modified:  
trunk/geeklog-1-jp-extended/public_html/layout/professional/admin/config/configuration.thtml
==============================================================================
---  
trunk/geeklog-1-jp-extended/public_html/layout/professional/admin/config/configuration.thtml	 
(original)
+++  
trunk/geeklog-1-jp-extended/public_html/layout/professional/admin/config/configuration.thtml	 
Sat Feb  7 08:26:59 2009
@@ -1,6 +1,6 @@
  <script type="text/javascript"  
src="{site_url}/javascript/configmanager.js"></script>

-<form method="post" action="configuration.php" name="group">
+<form method="post" action="{site_admin_url}/configuration.php"  
name="group">
  <input type="hidden" value="{open_group}" name="conf_group"{xhtml}>
  <input type="hidden" value="" name="subgroup"{xhtml}>
  <input type="hidden" name="{gltoken_name}" value="{gltoken}"{xhtml}>
@@ -16,7 +16,7 @@
                  {change_block}
              </div>

-            <form action="configuration.php" method="post" name="subgroup">
+            <form action="{site_admin_url}/configuration.php"  
method="post" name="subgroup">
              <input type="hidden" name="conf_group"  
value="{open_group}"{xhtml}>
              <input type="hidden" name="sub_group" value="{open_sg}"{xhtml}>
              <input type="hidden" name="{gltoken_name}"  
value="{gltoken}"{xhtml}>

Modified:  
trunk/geeklog-1-jp-extended/public_html/layout/professional/article/printable.thtml
==============================================================================
---  
trunk/geeklog-1-jp-extended/public_html/layout/professional/article/printable.thtml	 
(original)
+++  
trunk/geeklog-1-jp-extended/public_html/layout/professional/article/printable.thtml	 
Sat Feb  7 08:26:59 2009
@@ -3,7 +3,7 @@
  <head>
      <title>{page_title}</title>
  </head>
-<body>
+<body dir="{direction}">
      <h1>{story_title}</h1>
      <h3>{story_date}</h3>
      <b>{lang_contributedby} {story_author}</b>

Modified:  
trunk/geeklog-1-jp-extended/public_html/layout/professional/style.css
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/layout/professional/style.css	 
(original)
+++ trunk/geeklog-1-jp-extended/public_html/layout/professional/style.css	 
Sat Feb  7 08:26:59 2009
@@ -532,11 +532,6 @@
    font-size:.9em;
    border-left: 1px dotted #FFFFFF;
  }
-
-.header-navigation-container li.last {
-  border:none;
-}
-
  .header-navigation-container a:link {
    color:#0000FF;
  }

Modified: trunk/geeklog-1-jp-extended/public_html/lib-common.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/lib-common.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/lib-common.php	Sat Feb  7  
08:26:59 2009
@@ -394,7 +394,12 @@
  *
  */

-require_once( $_CONF['path_language'] . $_CONF['language'] . '.php' );
+require_once $_CONF['path_language'] . $_CONF['language'] . '.php';
+
+if (empty($LANG_DIRECTION)) {
+    // default to left-to-right
+    $LANG_DIRECTION = 'ltr';
+}

  COM_switchLocaleSettings();

@@ -1011,48 +1016,7 @@
      }
      $header->set_var('page_title_and_site_name', $title_and_name);

-    $langAttr = '';
-    if( !empty( $_CONF['languages'] ) && !empty( $_CONF['language_files']  
))
-    {
-        $langId = COM_getLanguageId();
-    }
-    else
-    {
-        // try to derive the language id from the locale
-        $l = explode( '.', $_CONF['locale'] );
-        $langId = $l[0];
-    }
-    if( !empty( $langId ))
-    {
-        $l = explode( '-', str_replace( '_', '-', $langId ));
-        if(( count( $l ) == 1 ) && ( strlen( $langId ) == 2 ))
-        {
-            $langAttr = 'lang="' . $langId . '"';
-        }
-        else if( count( $l ) == 2 )
-        {
-            if(( $l[0] == 'i' ) || ( $l[0] == 'x' ))
-            {
-                $langId = implode( '-', $l );
-                $langAttr = 'lang="' . $langId . '"';
-            }
-            else if( strlen( $l[0] ) == 2 )
-            {
-                $langId = implode( '-', $l );
-                $langAttr = 'lang="' . $langId . '"';
-            }
-            else
-            {
-                $langId = $l[0];
-            }
-        }
-    }
-    $header->set_var('lang_id', $langId );
-    if (!empty($_CONF['languages']) && !empty($_CONF['language_files'])) {
-        $header->set_var('lang_attribute', $langAttr);
-    } else {
-        $header->set_var('lang_attribute', '');
-    }
+    COM_setLangIdAndAttribute($header);

      $header->set_var( 'background_image', $_CONF['layout_url']
                                            . '/images/bg.' . $_IMAGE_TYPE );
@@ -1084,16 +1048,8 @@
      $header->set_var( 'css_url', $_CONF['layout_url'] . '/style.css' );
      $header->set_var( 'theme', $_CONF['theme'] );

-    $header->set_var( 'charset', COM_getCharset());
-    if( empty( $LANG_DIRECTION ))
-    {
-        // default to left-to-right
-        $header->set_var( 'direction', 'ltr' );
-    }
-    else
-    {
-        $header->set_var( 'direction', $LANG_DIRECTION );
-    }
+    $header->set_var('charset', COM_getCharset());
+    $header->set_var('direction', $LANG_DIRECTION);

      // Now add variables for buttons like e.g. those used by the Yahoo  
theme
      $header->set_var( 'button_home', $LANG_BUTTONS[1] );
@@ -2873,10 +2829,11 @@
                      break;
              }

-            $censor_entries = count( $_CONF['censorlist'] );
-            for( $i = 0; $i < $censor_entries; $i++ )
-            {
-                $EditedMessage = MBYTE_eregi_replace( $RegExPrefix .  
$_CONF['censorlist'][$i] . $RegExSuffix, "\\1$Replacement\\2",  
$EditedMessage );
+            foreach ($_CONF['censorlist'] as $c) {
+                if (!empty($c)) {
+                    $EditedMessage = MBYTE_eregi_replace($RegExPrefix . $c
+                        . $RegExSuffix, "\\1$Replacement\\2",  
$EditedMessage);
+                }
              }
          }
      }
@@ -3126,14 +3083,8 @@
  {
      global $_CONF;

-    /**
-    *  @author  geeklog.jp
-    *  @note    This hack is to return a string WITHOUT being escaped when
-    *           CUSTOM_mail() is defined.  The string will be escaped  
later in
-    *           CUSTOM_emailEscape(().
-    */
-    if (function_exists('CUSTOM_mail')) {
-        return $string;
+    if (function_exists('CUSTOM_emailEscape')) {
+        return CUSTOM_emailEscape($string);
      }

      $charset = COM_getCharset();
@@ -3173,15 +3124,10 @@
  */
  function COM_formatEmailAddress( $name, $address )
  {
-    /**
-    *  @author  geeklog.jp
-    *  @note    This hack is to return an email address WITHOUT being  
escaped
-    *           when CUSTOM_mail() is defined.  The email address will be
-    *           escaped and formatted later in CUSTOM_formatEmailAddress().
-    */
-    if (function_exists('CUSTOM_mail')) {
-        return $name . ' <' . $address . '>';
+    if (function_exists('CUSTOM_formatEmailAddress')) {
+        return CUSTOM_formatEmailAddress($name, $address);
      }
+
      $formatted_name = COM_emailEscape( $name );

      // if the name comes back unchanged, it's not UTF-8, so preg_match is  
fine
@@ -3290,7 +3236,11 @@

      if (!empty($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['SERVER_ADDR'])  
&&
              ($_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'])) {
-        $headers['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
+        $url = COM_getCurrentURL();
+        if (substr($url, 0, strlen($_CONF['site_admin_url']))
+                != $_CONF['site_admin_url']) {
+            $headers['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
+        }
      }

      $retval = $mailobj->send( $to, $headers, $message );
@@ -4477,6 +4427,35 @@
      return $retval;
  }

+/**
+* Displays a message text in a "System Message" block
+*
+* @param    string  $message    Message text; may contain HTML
+* @param    string  $title      (optional) alternative block title
+* @return   string              HTML block with message
+*
+*/
+function COM_showMessageText($message, $title = '')
+{
+    global $_CONF, $MESSAGE, $_IMAGE_TYPE;
+
+    $retval = '';
+
+    if (!empty($message)) {
+        if (empty($title)) {
+            $title = $MESSAGE[40];
+        }
+        $timestamp = strftime($_CONF['daytime']);
+        $retval .= COM_startBlock($title . ' - ' . $timestamp, '',
+                                   
COM_getBlockTemplate('_msg_block', 'header'))
+                . '<p class="sysmessage"><img src="' . $_CONF['layout_url']
+                . '/images/sysmessage.' . $_IMAGE_TYPE . '" alt="" ' .  
XHTML
+                . '>' . $message . '</p>'
+                .  
COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'));
+    }
+
+    return $retval;
+}

  /**
  * Displays a message on the webpage
@@ -4484,22 +4463,17 @@
  * Pulls $msg off the URL string and gets the corresponding message and  
returns
  * it for display on the calling page
  *
-* @param      int     $msg        ID of message to show
-* @param      string  $plugin     Optional Name of plugin to lookup plugin  
defined message
-* @return     string  HTML block with message
+* @param    int     $msg        ID of message to show
+* @param    string  $plugin     Optional Name of plugin to lookup plugin  
defined message
+* @return   string              HTML block with message
  */
-
  function COM_showMessage($msg, $plugin = '')
  {
-    global $_CONF, $MESSAGE, $_IMAGE_TYPE;
+    global $MESSAGE;

      $retval = '';
-    if (empty($plugin) AND !empty($_REQUEST['plugin'])) {
-        $plugin = COM_applyFilter($_REQUEST['plugin']);
-    };

      if ($msg > 0) {
-        $timestamp = strftime($_CONF['daytime']);
          if (!empty($plugin)) {
              $var = 'PLG_' . $plugin . '_MESSAGE' . $msg;
              global $$var;
@@ -4513,17 +4487,41 @@
              $message = $MESSAGE[$msg];
          }

-        $retval .= COM_startBlock($MESSAGE[40] . ' - ' . $timestamp, '',
-                                   
COM_getBlockTemplate('_msg_block', 'header'))
-                . '<p class="sysmessage"><img src="' . $_CONF['layout_url']
-                . '/images/sysmessage.' . $_IMAGE_TYPE . '" alt="" ' .  
XHTML
-                . '>' . $message . '</p>'
-                .  
COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'));
+        if (!empty($message)) {
+            $retval .= COM_showMessageText($message);
+        }
      }

      return $retval;
  }

+/**
+* Displays a message, as defined by URL parameters
+*
+* Helper function to display a message, if URL parameters 'msg'  
and 'plugin'
+* (optional) are defined. Only for GET requests, but that's what Geeklog  
uses
+* everywhere anyway.
+*
+* @return   string  HTML block with message
+*
+*/
+function COM_showMessageFromParameter()
+{
+    $retval = '';
+
+    if (isset($_GET['msg'])) {
+        $msg = COM_applyFilter($_GET['msg'], true);
+        if ($msg > 0) {
+            $plugin = '';
+            if (isset($_GET['plugin'])) {
+                $plugin = COM_applyFilter($_GET['plugin']);
+            }
+            $retval .= COM_showMessage($msg, $plugin);
+        }
+    }
+
+    return $retval;
+}

  /**
  * Prints Google(tm)-like paging navigation
@@ -4901,34 +4899,23 @@
  * @return string  HTML years as option values
  */

-function COM_getYearFormOptions( $selected = '', $startoffset=0,  
$endoffset=5 )
+function COM_getYearFormOptions($selected = '', $startoffset = -1,  
$endoffset = 5)
  {
      $year_options = '';
-    if ($startoffset != 0)
-    {
-        $start_year = date ( 'Y' ) + $startoffset;
-    }
-    else
-    {
-        $start_year = date( 'Y', time() );
-    }
-    $cur_year = date( 'Y', time() );
+    $start_year  = date('Y') + $startoffset;
+    $cur_year    = date('Y', time());
      $finish_year = $cur_year + $endoffset;

-    if( !empty( $selected ))
-    {
-        if( $selected < $cur_year )
-        {
+    if (!empty($selected)) {
+        if ($selected < $cur_year) {
              $start_year = $selected;
          }
      }

-    for( $i = $start_year - 1; $i <= $finish_year; $i++ )
-    {
+    for ($i = $start_year; $i <= $finish_year; $i++) {
          $year_options .= '<option value="' . $i . '"';

-        if( $i == $selected )
-        {
+        if ($i == $selected) {
              $year_options .= ' selected="selected"';
          }

@@ -5402,7 +5389,7 @@
      }

      $UserGroups = array();
-    if( COM_isAnonUser() || ( $uid == $_USER['uid'] ))
+    if(( empty( $_USER['uid'] ) && ( $uid == 1 )) || ( $uid ==  
$_USER['uid'] ))
      {
          if( empty( $_GROUPS ))
          {
@@ -5715,19 +5702,42 @@
  * Detect links in a plain-ascii text and turn them into clickable links.
  * Will detect links starting with "http:", "https:", "ftp:", and "www.".
  *
-* Derived from a newsgroup posting by Andreas Schwarz in
-* news:de.comp.lang.php <aieq4p$12jn2i$3****@ID-16*****>
-*
  * @param    string    $text     the (plain-ascii) text string
  * @return   string    the same string, with links enclosed in <a>...</a>  
tags
  *
  */
  function COM_makeClickableLinks( $text )
  {
-   $regex = '/((ht|f)tp(s?)\:\/\/|~\/| 
\/)?([\w]+:\w+@)?(([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((\/?\w+\/)+| 
\/?)([\w\-%]+(\.[\w]{3,4})?)?((\?|&|&amp;)[\w\-%]+=[\w\-%]+)*)/is';
+    // These regular expressions will work for this purpuse, but
+    // they should NOT be used for validating links.
+
+    // matches anything starting with http:// or https:// or ftp:// or  
ftps://
+    $regex[] = '/(?<=^|[\n\r\t\s\(\)\[\]<>";])((?:(?:ht| 
f)tps?:\/{2})(?:[^\n\r\t\s\(\)\[\]<>"&]+(?:&amp;)?)+)(?=[\n\r\t\s\(\)\[\]<>"&]| 
$)/ei';
+    $replace[] = "COM_makeClickableLinksCallback('', '\\1')";
+
+    // matches anything containing a top level domain: xxx.com or  
xxx.yyy.net/stuff.php or xxx.yyy.zz
+    // list taken from: http://en.wikipedia.org/wiki/List_of_Internet_TLDs
+    $regex[] = '/(?<=^| 
[\n\r\t\s\(\)\[\]<>";])((?:[a-z0-9]+\.)*[a-z0-9]+\.(?:aero|asia|biz|cat|com| 
coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel| 
[a-z]{2})(?:[\/?#](?:[^\n\r\t\s\(\)\[\]<>"&]+(?:&amp;)?)*)?)(?=[\n\r\t\s\(\)\[\]<>"&]| 
$)/ei';
+    $replace[] = "COM_makeClickableLinksCallback('http://', '\\1')";
+
+    $text = preg_replace( $regex, $replace, $text );
+
+    return $text;
+}
+
+/**
+* Callback function to help format links in COM_makeClickableLinks
+*
+* @param    string  $http   set to 'http://' when not aleady in the url
+* @param    string  $link   the url
+* @return   string          link enclosed in <a>...</a> tags
+*
+*/
+function COM_makeClickableLinksCallback( $http, $link )
+{
+    $text = COM_truncate( $link, 50, '...', '10' );

-   $text = preg_replace( $regex, '<a href="\\1\\5">\\6</a>', $text );
-   return $text;
+    return "<a href=\"$http$link\">$text</a>";
  }

  /**
@@ -6484,22 +6494,23 @@
  * e.g. '...', to indicate the truncation.
  * This function is multi-byte string aware, based on a patch by Yusuke  
Sakata.
  *
-* @param    string  $text   the text string to truncate
-* @param    int     $maxlen max. number of characters in the truncated  
string
-* @param    string  $filler optional filler string, e.g. '...'
-* @return   string          truncated string
+* @param    string  $text       the text string to truncate
+* @param    int     $maxlen     max. number of characters in the truncated  
string
+* @param    string  $filler     optional filler string, e.g. '...'
+* @param    int     $endchars   number of characters to show after the  
filler
+* @return   string              truncated string
  *
  * @note The truncated string may be shorter but will never be longer than
  *       $maxlen characters, i.e. the $filler string is taken into account.
  *
  */
-function COM_truncate( $text, $maxlen, $filler = '' )
+function COM_truncate( $text, $maxlen, $filler = '', $endchars = 0 )
  {
      $newlen = $maxlen - MBYTE_strlen( $filler );
      $len = MBYTE_strlen( $text );
      if( $len > $maxlen )
      {
-        $text = MBYTE_substr( $text, 0, $newlen ) . $filler;
+        $text = MBYTE_substr( $text, 0, $newlen - $endchars ) . $filler .  
MBYTE_substr( $text, $len - $endchars, $endchars );
      }

      return $text;
@@ -6557,34 +6568,45 @@
      global $_CONF, $_USER;

      // Handle @ operator
-    if( error_reporting() == 0 )
-    {
+    if (error_reporting() == 0) {
          return;
      }

-    /* If in PHP4, then respect error_reporting */
-    if( (PHP_VERSION < 5) && (($errno & error_reporting()) == 0) ) return;
+    // If in PHP4, then respect error_reporting
+    if ((PHP_VERSION < 5) && (($errno & error_reporting()) == 0)) {
+        return;
+    }

      /*
       * If we have a root user, then output detailed error message:
       */
-    if( ( is_array($_USER) && function_exists('SEC_inGroup') ) ||  
(isset($_CONF['rootdebug']) && $_CONF['rootdebug']) )
-    {
-        if($_CONF['rootdebug'] || SEC_inGroup('Root'))
-        {
+    if ((is_array($_USER) && function_exists('SEC_inGroup'))
+            || (isset($_CONF['rootdebug']) && $_CONF['rootdebug'])) {
+        if ($_CONF['rootdebug'] || SEC_inGroup('Root')) {
+
+            header('HTTP/1.1 500 Internal Server Error');
+            header('Status: 500 Internal Server Error');
+
+            $title = 'An Error Occurred';
+            if (!empty($_CONF['site_name'])) {
+                $title = $_CONF['site_name'] . ' - ' . $title;
+            }
+            echo("<html><head><title>$title</title></head>\n<body>\n");
+
              echo('<h1>An error has occurred:</h1>');
-            if($_CONF['rootdebug']) {
+            if ($_CONF['rootdebug']) {
                  echo('<h2 style="color: red">This is being displayed  
as "Root Debugging" is enabled
                          in your Geeklog configuration.</h2><p>If this is a  
production
                          website you <strong><em>must disable</em></strong>  
this
                          option once you have resolved any issues you are
                          investigating.</p>');
              } else {
-                echo('(This text is only displayed to users in the group  
\'Root\')<br>');
+                echo('<p>(This text is only displayed to users in the  
group \'Root\')</p>');
              }
-            echo("$errno - $errstr @ $errfile line $errline<br>");
-            if(!SEC_inGroup('Root')) {
-                if('force' != ''.$_CONF['rootdebug']) {
+            echo("<p>$errno - $errstr @ $errfile line $errline</p>");
+
+            if (!function_exists('SEC_inGroup') || !SEC_inGroup('Root')) {
+                if ('force' != ''.$_CONF['rootdebug']) {
                      $errcontext = COM_rootDebugClean($errcontext);
                  } else {
                      echo('<h2 style="color: red">Root Debug is set  
to "force", this
@@ -6597,7 +6619,7 @@
              var_dump($errcontext);
              $errcontext = htmlspecialchars(ob_get_contents());
              ob_end_clean();
-            echo("$errcontext</pre>");
+            echo("$errcontext</pre></body></html>");
              exit;
          }
      }
@@ -6605,15 +6627,12 @@
      /* If there is a custom error handler, fail over to that, but only
       * if the error wasn't in lib-custom.php
       */
-    if( is_array($_CONF) && !(strstr($errfile, 'lib-custom.php')))
-    {
-        if( array_key_exists('path_system', $_CONF) )
-        {
-            if (file_exists($_CONF['path_system'].'lib-custom.php')) {
-                require_once($_CONF['path_system'].'lib-custom.php');
+    if (is_array($_CONF) && !(strstr($errfile, 'lib-custom.php'))) {
+        if (array_key_exists('path_system', $_CONF)) {
+            if (file_exists($_CONF['path_system'] . 'lib-custom.php')) {
+                require_once $_CONF['path_system'] . 'lib-custom.php';
              }
-            if( function_exists('CUSTOM_handleError') )
-            {
+            if (function_exists('CUSTOM_handleError')) {
                  CUSTOM_handleError($errno, $errstr, $errfile, $errline,  
$errcontext);
                  exit;
              }
@@ -6623,14 +6642,17 @@
      // if we do not throw the error back to an admin, still log it in the  
error.log
      COM_errorLog("$errno - $errstr @ $errfile line $errline", 1);

-    /* Does the theme implement an error message html file? */
+    header('HTTP/1.1 500 Internal Server Error');
+    header('Status: 500 Internal Server Error');
+
+    // Does the theme implement an error message html file?
      if (!empty($_CONF['path_layout']) &&
              file_exists($_CONF['path_layout'] . 'errormessage.html')) {
          // NOTE: NOT A TEMPLATE! JUST HTML!
          include $_CONF['path_layout'] . 'errormessage.html';
      } else {
-        /* Otherwise, display simple error message */
-        $title = "An Error Occurred";
+        // Otherwise, display simple error message
+        $title = 'An Error Occurred';
          if (!empty($_CONF['site_name'])) {
              $title = $_CONF['site_name'] . ' - ' . $title;
          }
@@ -6711,20 +6733,93 @@
      }
  }

-// Now include all plugin functions
-foreach( $_PLUGINS as $pi_name )
+/**
+* Convert wiki-formatted text to (X)HTML
+*
+* @param    string  $wikitext   wiki-formatted text
+* @return   string              XHTML formatted text
+*
+*/
+function COM_renderWikiText($wikitext)
  {
-    require_once( $_CONF['path'] . 'plugins/' .  
$pi_name . '/functions.inc' );
+    global $_CONF;
+
+    if (!$_CONF['wikitext_editor']) {
+        return $wikitext;
+    }
+
+    require_once 'Text/Wiki.php';
+
+    $wiki = &new Text_Wiki();
+    $wiki->disableRule('wikilink');
+    $wiki->disableRule('freelink');
+    $wiki->disableRule('interwiki');
+
+    return $wiki->transform($wikitext, 'Xhtml');
+}
+
+/**
+* Set the {lang_id} and {lang_attribute} variables for a template
+*
+* @param    ref     $template   template to use
+* @return   void
+* @note     {lang_attribute} is only set in multi-language environments.
+*
+*/
+function COM_setLangIdAndAttribute(&$template)
+{
+    global $_CONF;
+
+    $langAttr = '';
+    $langId   = '';
+
+    if (!empty($_CONF['languages']) && !empty($_CONF['language_files'])) {
+        $langId = COM_getLanguageId();
+    } else {
+        // try to derive the language id from the locale
+        $l = explode('.', $_CONF['locale']); // get rid of character set
+        $langId = $l[0];
+        $l = explode('@', $langId); // get rid of '@euro', etc.
+        $langId = $l[0];
+    }
+
+    if (!empty($langId)) {
+        $l = explode('-', str_replace('_', '-', $langId));
+        if ((count($l) == 1) && (strlen($langId) == 2)) {
+            $langAttr = 'lang="' . $langId . '"';
+        } else if (count($l) == 2) {
+            if (($l[0] == 'i') || ($l[0] == 'x')) {
+                $langId = implode('-', $l);
+                $langAttr = 'lang="' . $langId . '"';
+            } else if (strlen($l[0]) == 2) {
+                $langId = implode('-', $l);
+                $langAttr = 'lang="' . $langId . '"';
+            } else {
+                $langId = $l[0];
+                // this isn't a valid lang attribute, so don't set  
$langAttr
+            }
+        }
+    }
+    $template->set_var('lang_id', $langId);
+
+    if (!empty($_CONF['languages']) && !empty($_CONF['language_files'])) {
+        $template->set_var('lang_attribute', $langAttr);
+    } else {
+        $template->set_var('lang_attribute', '');
+    }
+}
+
+// Now include all plugin functions
+foreach ($_PLUGINS as $pi_name) {
+    require_once $_CONF['path'] . 'plugins/' . $pi_name . '/functions.inc';
  }

  // Check and see if any plugins (or custom functions)
  // have scheduled tasks to perform
-if( $_CONF['cron_schedule_interval'] > 0 )
-{
-    if(( DB_getItem(  
$_TABLES['vars'], 'value', "name='last_scheduled_run'" )
-            + $_CONF['cron_schedule_interval'] ) <= time())
-    {
-        DB_query( "UPDATE {$_TABLES['vars']} SET value=UNIX_TIMESTAMP()  
WHERE name='last_scheduled_run'" );
+if ($_CONF['cron_schedule_interval'] > 0) {
+    if ((DB_getItem($_TABLES['vars'], 'value', "name='last_scheduled_run'")
+            + $_CONF['cron_schedule_interval']) <= time()) {
+        DB_query("UPDATE {$_TABLES['vars']} SET value=UNIX_TIMESTAMP()  
WHERE name='last_scheduled_run'");
          PLG_runScheduledTask();
      }
  }

Modified: trunk/geeklog-1-jp-extended/public_html/links/index.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/links/index.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/links/index.php	Sat Feb  7  
08:26:59 2009
@@ -348,7 +348,9 @@
                   . '/links/portal.php?what=link&amp;item=' . $A['lid']);
      $template->set_var ('link_url', $url);
      $template->set_var ('link_actual_url', $A['url']);
+    $template->set_var ('link_actual_url_encoded', urlencode($A['url']));
      $template->set_var ('link_name', stripslashes ($A['title']));
+    $template->set_var ('link_name_encoded', urlencode($A['title']));
      $template->set_var ('link_hits', COM_numberFormat ($A['hits']));
      $template->set_var ('link_description',
                          nl2br (stripslashes ($A['description'])));

Modified: trunk/geeklog-1-jp-extended/public_html/profiles.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/profiles.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/profiles.php	Sat Feb  7  
08:26:59 2009
@@ -2,14 +2,14 @@

  /* Reminder: always indent with 4 spaces (no tabs). */
  //  
+---------------------------------------------------------------------------+
-// | Geeklog  
1.4                                                               |
+// | Geeklog  
1.5                                                               |
  //  
+---------------------------------------------------------------------------+
  // |  
profiles.php                                                              |
  //  
|                                                                            
|
  // | This pages lets GL users communicate with each other without risk  
of      |
  // | their email address being intercepted by  
spammers.                        |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2000-2006 by the following  
authors:                         |
+// | Copyright (C) 2000-2009 by the following  
authors:                         |
  //  
|                                                                            
|
  // | Authors: Tony Bibbs        - tony AT tonybibbs DOT  
com                    |
  // |          Mark Limburg      - mlimburg AT users DOT sourceforge DOT  
net    |
@@ -32,10 +32,8 @@
  // | Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,  
USA.           |
  //  
|                                                                            
|
  //  
+---------------------------------------------------------------------------+
-//
-// $Id: profiles.php,v 1.56 2008/02/20 20:32:37 mjervis Exp $

-require_once ('lib-common.php');
+require_once 'lib-common.php';

  /**
  * Mails the contents of the contact form to that user
@@ -54,10 +52,10 @@
      $retval = '';

      // check for correct $_CONF permission
-    if (empty ($_USER['username']) &&
-        (($_CONF['loginrequired'] == 1) ||  
($_CONF['emailuserloginrequired'] == 1))
-        && ($uid != 2)) {
-        return COM_refresh ($_CONF['site_url'] . '/index.php');
+    if (COM_isAnonUser() && (($_CONF['loginrequired'] == 1) ||
+                             ($_CONF['emailuserloginrequired'] == 1))
+                         && ($uid != 2)) {
+        return COM_refresh($_CONF['site_url'] . '/index.php?msg=85');
      }

      // check for correct 'to' user preferences
@@ -70,13 +68,13 @@
      }
      if ((($P['emailfromadmin'] != 1) && $isAdmin) ||
          (($P['emailfromuser'] != 1) && !$isAdmin)) {
-        return COM_refresh ($_CONF['site_url'] . '/index.php');
+        return COM_refresh ($_CONF['site_url'] . '/index.php?msg=85');
      }

      // check mail speedlimit
      COM_clearSpeedlimit ($_CONF['speedlimit'], 'mail');
      if (COM_checkSpeedlimit ('mail') > 0) {
-        return COM_refresh ($_CONF['site_url'] . '/index.php');
+        return COM_refresh ($_CONF['site_url'] . '/index.php?msg=85');
      }

      if (!empty($author) && !empty($subject) && !empty($message)) {
@@ -86,8 +84,9 @@

              // Append the user's signature to the message
              $sig = '';
-            if (isset ($_USER['uid']) && ($_USER['uid'] > 1)) {
-                $sig = DB_getItem  
($_TABLES['users'], 'sig', "uid={$_USER['uid']}");
+            if (!COM_isAnonUser()) {
+                $sig = DB_getItem($_TABLES['users'], 'sig',
+                                  "uid={$_USER['uid']}");
                  if (!empty ($sig)) {
                      $sig = strip_tags (COM_stripslashes ($sig));
                      $sig = "\n\n-- \n" . $sig;
@@ -125,10 +124,12 @@
              }
              $from = COM_formatEmailAddress ($author, $authoremail);

-            COM_mail ($to, $subject, $message, $from);
-            COM_updateSpeedlimit ('mail');
+            $sent = COM_mail($to, $subject, $message, $from);
+            COM_updateSpeedlimit('mail');

-            $retval .=  
COM_refresh($_CONF['site_url'] . '/index.php?msg=27');
+            $retval .= COM_refresh($_CONF['site_url']
+                                   . '/users.php?mode=profile&amp;uid=' .  
$uid
+                                   . '&amp;msg=' . ($sent ? '27' : '85'));
          } else {
              $subject = strip_tags ($subject);
              $subject = substr ($subject, 0, strcspn ($subject, "\r\n"));
@@ -166,8 +167,8 @@

      $retval = '';

-    if (empty ($_USER['username']) &&
-        (($_CONF['loginrequired'] == 1) ||  
($_CONF['emailuserloginrequired'] == 1))) {
+    if (COM_isAnonUser() && (($_CONF['loginrequired'] == 1) ||
+                             ($_CONF['emailuserloginrequired'] == 1))) {
          $retval = COM_startBlock ($LANG_LOGIN[1], '',
                            COM_getBlockTemplate ('_msg_block', 'header'));
          $login = new Template($_CONF['path_layout'] . 'submit');
@@ -202,7 +203,7 @@
              $mail_template->set_var ('site_url', $_CONF['site_url']);
              $mail_template->set_var ('lang_description', $LANG08[26]);
              $mail_template->set_var ('lang_username', $LANG08[11]);
-            if (empty ($_USER['username'])) {
+            if (COM_isAnonUser()) {
                  $sender = '';
                  if (isset ($_POST['author'])) {
                      $sender = strip_tags ($_POST['author']);
@@ -216,7 +217,7 @@
                                              $_USER['fullname']));
              }
              $mail_template->set_var ('lang_useremail', $LANG08[12]);
-            if (empty ($_USER['email'])) {
+            if (COM_isAnonUser()) {
                  $email = '';
                  if (isset ($_POST['authoremail'])) {
                      $email = strip_tags ($_POST['authoremail']);
@@ -271,16 +272,20 @@
  *                this code
  *
  */
-function mailstory ($sid, $to, $toemail, $from, $fromemail, $shortmsg)
+function mailstory($sid, $to, $toemail, $from, $fromemail, $shortmsg)
  {
-    global $_CONF, $_TABLES, $_USER, $LANG01, $LANG08;
+    global $_CONF, $_TABLES, $LANG01, $LANG08;

-    $retval = COM_refresh (COM_buildUrl ($_CONF['site_url']
-                                         . '/article.php?story=' . $sid));
+    $storyurl = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' .  
$sid);
+    if ($_CONF['url_rewrite']) {
+        $retval = COM_refresh($storyurl . '?msg=85');
+    } else {
+        $retval = COM_refresh($storyurl . '&amp;msg=85');
+    }

      // check for correct $_CONF permission
-    if (empty ($_USER['username']) &&
-        (($_CONF['loginrequired'] == 1) ||  
($_CONF['emailstoryloginrequired'] == 1))) {
+    if (COM_isAnonUser() && (($_CONF['loginrequired'] == 1) ||
+                             ($_CONF['emailstoryloginrequired'] == 1))) {
          return $retval;
      }

@@ -290,8 +295,8 @@
      }

      // check mail speedlimit
-    COM_clearSpeedlimit ($_CONF['speedlimit'], 'mail');
-    if (COM_checkSpeedlimit ('mail') > 0) {
+    COM_clearSpeedlimit($_CONF['speedlimit'], 'mail');
+    if (COM_checkSpeedlimit('mail') > 0) {
          return $retval;
      }

@@ -338,12 +343,18 @@
      $mailfrom = COM_formatEmailAddress ($from, $fromemail);
      $subject =  
COM_undoSpecialChars(strip_tags(stripslashes('Re: '.$A['title'])));

-    COM_mail ($mailto, $subject, $mailtext, $mailfrom);
+    $sent = COM_mail ($mailto, $subject, $mailtext, $mailfrom);
      COM_updateSpeedlimit ('mail');

      // Increment numemails counter for story
      DB_query ("UPDATE {$_TABLES['stories']} SET numemails = numemails + 1  
WHERE sid = '$sid'");

+    if ($_CONF['url_rewrite']) {
+        $retval = COM_refresh($storyurl . '?msg=' . ($sent ? '27' : '85'));
+    } else {
+        $retval = COM_refresh($storyurl . '&amp;msg=' .  
($sent ? '27' : '85'));
+    }
+
      return $retval;
  }

@@ -361,8 +372,8 @@

      $retval = '';

-    if (empty ($_USER['username']) &&
-        (($_CONF['loginrequired'] == 1) ||  
($_CONF['emailstoryloginrequired'] == 1))) {
+    if (COM_isAnonUser() && (($_CONF['loginrequired'] == 1) ||
+                             ($_CONF['emailstoryloginrequired'] == 1))) {
          $retval = COM_startBlock ($LANG_LOGIN[1], '',
                            COM_getBlockTemplate ('_msg_block', 'header'));
          $login = new Template($_CONF['path_layout'] . 'submit');
@@ -386,7 +397,7 @@
      }

      if (empty ($from) && empty ($fromemail)) {
-        if (!empty ($_USER['username'])) {
+        if (!COM_isAnonUser()) {
              $from = COM_getDisplayName ($_USER['uid'], $_USER['username'],
                                          $_USER['fullname']);
              $fromemail = DB_getItem ($_TABLES['users'], 'email',
@@ -481,7 +492,7 @@
                                            $_POST['shortmsg'])
                           . COM_siteFooter ();
              } else {
-                $msg = PLG_itemPreSave ('emailstory', $message);
+                $msg = PLG_itemPreSave ('emailstory', $_POST['shortmsg']);
                  if (!empty ($msg)) {
                      $display .= COM_siteHeader ('menu', '')
                               . COM_errorLog ($msg, 2)

Modified: trunk/geeklog-1-jp-extended/public_html/siteconfig.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/siteconfig.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/siteconfig.php	Sat Feb  7  
08:26:59 2009
@@ -20,7 +20,7 @@
  // If you have errors on your site, can't login, or can't get to the
  // config UI, then you can comment this in to set the root debug option
  // on and get detailed error messages. You can set this to 'force' (which  
the
-// Config UI won't allow you to do, to override hiding of password and  
cookie
+// Config UI won't allow you to do) to override hiding of password and  
cookie
  // items in the debug trace.
  // $_CONF['rootdebug'] = true;

@@ -38,7 +38,7 @@
    define('LB',"\n");
  }
  if (!defined('VERSION')) {
-  define('VERSION', '1.5.1');
+  define('VERSION', '1.5.2rc1');
  }

  ?>

Modified: trunk/geeklog-1-jp-extended/public_html/staticpages/index.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/staticpages/index.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/staticpages/index.php	Sat Feb   
7 08:26:59 2009
@@ -65,7 +65,19 @@
      $display_mode = '';
  }

-$retval = SP_returnStaticpage($page, $display_mode, $comment_order,  
$comment_mode);
+$msg = 0;
+if (isset($_GET['msg'])) {
+    $msg = COM_applyFilter($_GET['msg'], true);
+    if ($msg <= 0) {
+        $msg = 0;
+    }
+}
+
+$retval = SP_returnStaticpage($page, $display_mode, $comment_order,  
$comment_mode, $msg);
+
+if ($display_mode == 'print') {
+    header('Content-Type: text/html; charset=' . COM_getCharset());
+}

  echo $retval;


Modified: trunk/geeklog-1-jp-extended/public_html/users.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/users.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/users.php	Sat Feb  7 08:26:59  
2009
@@ -63,10 +63,11 @@
  *
  * @param    int     $user   User ID of profile to get
  * @param    int     $msg    Message to display (if != 0)
+* @param    string  $plugin optional plugin name for message
  * @return   string          HTML for user profile page
  *
  */
-function userprofile ($user, $msg = 0)
+function userprofile($user, $msg = 0, $plugin = '')
  {
      global $_CONF, $_TABLES, $_USER, $LANG01, $LANG04, $LANG09, $LANG28,  
$LANG_LOGIN;

@@ -109,7 +110,7 @@

      $retval .= COM_siteHeader ('menu', $LANG04[1] . ' ' . $display_name);
      if ($msg > 0) {
-        $retval .= COM_showMessage ($msg);
+        $retval .= COM_showMessage($msg, $plugin);
      }

      // format date/time to user preference
@@ -867,10 +868,14 @@
      $uid = COM_applyFilter ($_GET['uid'], true);
      if (is_numeric ($uid) && ($uid > 0)) {
          $msg = 0;
-        if (isset ($_GET['msg'])) {
-            $msg = COM_applyFilter ($_GET['msg'], true);
+        if (isset($_GET['msg'])) {
+            $msg = COM_applyFilter($_GET['msg'], true);
          }
-        $display .= userprofile ($uid, $msg);
+        $plugin = '';
+        if (($msg > 0) && isset($_GET['plugin'])) {
+            $plugin = COM_applyFilter($_GET['plugin']);
+        }
+        $display .= userprofile($uid, $msg, $plugin);
      } else {
          $display .= COM_refresh ($_CONF['site_url'] . '/index.php');
      }
@@ -1109,6 +1114,7 @@
                          $_CONF['site_url'], // Trust root.
                          null,
                          "email,nickname,fullname")); // Required fields.
+                exit;
              }
          } elseif (isset($query['openid.mode']) ||  
isset($query['openid_mode'])) {
              $openid_mode = '';

Modified: trunk/geeklog-1-jp-extended/public_html/usersettings.php
==============================================================================
--- trunk/geeklog-1-jp-extended/public_html/usersettings.php	(original)
+++ trunk/geeklog-1-jp-extended/public_html/usersettings.php	Sat Feb  7  
08:26:59 2009
@@ -1511,14 +1511,8 @@
          break;

      default: // also if $mode == 'edit', 'preferences', or 'comments'
-        $display .= COM_siteHeader ('menu', $LANG04[16]);
-        $msg = 0;
-        if (isset ($_GET['msg'])) {
-            $msg = COM_applyFilter ($_GET['msg'], true);
-            if ($msg > 0) {
-                $display .= COM_showMessage ($msg);
-            }
-        }
+        $display .= COM_siteHeader('menu', $LANG04[16]);
+        $display .= COM_showMessageFromParameter();
          $display .= edituser();
          $display .= COM_siteFooter();
          break;

Modified: trunk/geeklog-1-jp-extended/readme
==============================================================================
--- trunk/geeklog-1-jp-extended/readme	(original)
+++ trunk/geeklog-1-jp-extended/readme	Sat Feb  7 08:26:59 2009
@@ -124,9 +124,7 @@
  All known issues are tracked in our bug tracker. If you identify a bug  
please
  let us know by filling out a bug report at:

-http://project.geeklog.net/tracker/?group_id=6&atid=105
-
-*** Currently down for maintenance for an undefined period of time, Tony!  
***
+http://project.geeklog.net/tracking/


  4) System Requirements and Installation

Modified: trunk/geeklog-1-jp-extended/sql/mssql_tableanddata.php
==============================================================================
--- trunk/geeklog-1-jp-extended/sql/mssql_tableanddata.php	(original)
+++ trunk/geeklog-1-jp-extended/sql/mssql_tableanddata.php	Sat Feb  7  
08:26:59 2009
@@ -1568,7 +1568,7 @@
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (18,'staticpages.delete','Ability to delete static pages',0)
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (19,'story.submit','May skip the story submission queue',1)
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (21,'calendar.submit','May skip the event submission queue',1)
-INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (22,'staticpages.PHP','Ability use PHP in static pages',0)
+INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (22,'staticpages.PHP','Ability to use PHP in static pages',0)
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (23,'spamx.admin', 'Full access to Spam-X plugin', 0)
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (24,'story.ping', 'Ability to send pings, pingbacks, or trackbacks  
for stories', 1)
  INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr, ft_gl_core)  
VALUES (3,'links.moderate','Ability to moderate pending links',0)
@@ -1670,11 +1670,11 @@



-$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('staticpages', '1.5','1.4.1',1,'http://www.geeklog.net/')";
-$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('spamx', '1.1.1','1.4.1',1,'http://www.pigstye.net/gplugs/staticpages/index.php/spamx')";
-$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES ('links', '2.0', '1.4.1',  
1, 'http://www.geeklog.net/')";
-$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('polls', '2.0.1', '1.4.1', '1', 'http://www.geeklog.net/')";
-$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('calendar', '1.0.2', '1.4.1', '1', 'http://www.geeklog.net/')";
+$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('staticpages', '1.5.1','1.5.0',1,'http://www.geeklog.net/')";
+$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('spamx', '1.1.2','1.5.0',1,'http://www.pigstye.net/gplugs/staticpages/index.php/spamx')";
+$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES ('links', '2.0.1', '1.5.0',  
1, 'http://www.geeklog.net/')";
+$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('polls', '2.0.2', '1.5.0', '1', 'http://www.geeklog.net/')";
+$_SQL[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('calendar', '1.0.3', '1.5.0', '1', 'http://www.geeklog.net/')";

  $_DATA[] = "INSERT INTO `{$_TABLES['pollquestions']}` (`pid`, `qid`,  
`question`) VALUES ('geeklogfeaturepoll', 0, 'What is the best new feature  
of Geeklog?');";
  $_DATA[] = "INSERT INTO `{$_TABLES['pollquestions']}` (`pid`, `qid`,  
`question`) VALUES ('geeklogfeaturepoll', 1, 'What is the all-time best  
feature of Geeklog?');";

Modified: trunk/geeklog-1-jp-extended/sql/mysql_tableanddata.php
==============================================================================
--- trunk/geeklog-1-jp-extended/sql/mysql_tableanddata.php	(original)
+++ trunk/geeklog-1-jp-extended/sql/mysql_tableanddata.php	Sat Feb  7  
08:26:59 2009
@@ -840,7 +840,7 @@
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (19,'story.submit','May skip the story submission  
queue',1) ";
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (20,'links.submit','May skip the links submission  
queue',0) ";
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (21,'calendar.submit','May skip the event submission  
queue',1) ";
-$_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (22,'staticpages.PHP','Ability use PHP in static  
pages',0) ";
+$_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (22,'staticpages.PHP','Ability to use PHP in static  
pages',0) ";
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (23,'spamx.admin', 'Full access to Spam-X plugin', 0) ";
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (24,'story.ping', 'Ability to send pings, pingbacks, or  
trackbacks for stories', 1) ";
  $_DATA[] = "INSERT INTO {$_TABLES['features']} (ft_id, ft_name, ft_descr,  
ft_gl_core) VALUES (25,'syndication.edit', 'Access to Content Syndication',  
1) ";
@@ -918,11 +918,11 @@

  $_DATA[] = "INSERT INTO {$_TABLES['pingservice']} (pid, name, site_url,  
ping_url, method, is_enabled) VALUES  
(1, 'Ping-O-Matic', 'http://pingomatic.com/', 'http://rpc.pingomatic.com/', 'weblogUpdates.ping',  
1)";

-$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('staticpages', '1.5.0','1.5.0',1,'http://www.geeklog.net/') ";
-$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('spamx', '1.1.1','1.5.0',1,'http://www.pigstye.net/gplugs/staticpages/index.php/spamx') ";
-$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES ('links', '2.0.0', '1.5.0',  
1, 'http://www.geeklog.net/')";
-$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('polls', '2.0.1', '1.5.0', '1', 'http://www.geeklog.net/')";
-$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('calendar', '1.0.2', '1.5.0', '1', 'http://www.geeklog.net/')";
+$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('staticpages', '1.5.1','1.5.0',1,'http://www.geeklog.net/') ";
+$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('spamx', '1.1.2','1.5.0',1,'http://www.pigstye.net/gplugs/staticpages/index.php/spamx') ";
+$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES ('links', '2.0.1', '1.5.0',  
1, 'http://www.geeklog.net/')";
+$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('polls', '2.0.2', '1.5.0', '1', 'http://www.geeklog.net/')";
+$_DATA[] = "INSERT INTO {$_TABLES['plugins']} (pi_name, pi_version,  
pi_gl_version, pi_enabled, pi_homepage) VALUES  
('calendar', '1.0.3', '1.5.0', '1', 'http://www.geeklog.net/')";

  $_DATA[] = "INSERT INTO `{$_TABLES['pollanswers']}` (`pid`, `qid`, `aid`,  
`answer`, `votes`, `remark`) VALUES ('geeklogfeaturepoll', 0, 1, 'MS SQL  
support', 0, '');";
  $_DATA[] = "INSERT INTO `{$_TABLES['pollanswers']}` (`pid`, `qid`, `aid`,  
`answer`, `votes`, `remark`) VALUES ('geeklogfeaturepoll', 0,  
2, 'Multi-language support', 0, '');";

Modified: trunk/geeklog-1-jp-extended/sql/updates/mssql_1.4.1_to_1.5.0.php
==============================================================================
--- trunk/geeklog-1-jp-extended/sql/updates/mssql_1.4.1_to_1.5.0.php	 
(original)
+++ trunk/geeklog-1-jp-extended/sql/updates/mssql_1.4.1_to_1.5.0.php	Sat  
Feb  7 08:26:59 2009
@@ -459,12 +459,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -503,12 +497,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -558,12 +546,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -595,12 +577,6 @@
          return false;
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -696,12 +672,6 @@
              echo "Error inserting categories into linkcategories table";
              return false;
          }
-    }
-
-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
      }

      return true;

Modified: trunk/geeklog-1-jp-extended/sql/updates/mysql_1.3.9_to_1.3.10.php
==============================================================================
--- trunk/geeklog-1-jp-extended/sql/updates/mysql_1.3.9_to_1.3.10.php	 
(original)
+++ trunk/geeklog-1-jp-extended/sql/updates/mysql_1.3.9_to_1.3.10.php	Sat  
Feb  7 08:26:59 2009
@@ -111,7 +111,7 @@
          }

          $rel[] = '<a href="' . $matches[1][$i] . '">'
-               . str_replace ("/(\015\012)|(\015)|(\012)/", '',  
$matches[2][$i])
+               . str_replace(array("\015", "\012"), '', $matches[2][$i])
                 . '</a>';
      }


Modified: trunk/geeklog-1-jp-extended/sql/updates/mysql_1.4.1_to_1.5.0.php
==============================================================================
--- trunk/geeklog-1-jp-extended/sql/updates/mysql_1.4.1_to_1.5.0.php	 
(original)
+++ trunk/geeklog-1-jp-extended/sql/updates/mysql_1.4.1_to_1.5.0.php	Sat  
Feb  7 08:26:59 2009
@@ -422,12 +422,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -466,12 +460,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -521,12 +509,6 @@
          }
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -558,12 +540,6 @@
          return false;
      }

-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
-    }
-
      return true;
  }

@@ -655,12 +631,6 @@
              echo "Error inserting categories into linkcategories table";
              return false;
          }
-    }
-
-    if (file_exists($plugin_path . 'config.php')) {
-        // Rename the existing config.php as it's not needed any more
-        $ren = @rename($plugin_path . 'config.php',
-                       $plugin_path . 'config-pre1.5.0.php');
      }

      return true;

Modified: trunk/geeklog-1-jp-extended/system/classes/calendar.class.php
==============================================================================
--- trunk/geeklog-1-jp-extended/system/classes/calendar.class.php	(original)
+++ trunk/geeklog-1-jp-extended/system/classes/calendar.class.php	Sat Feb   
7 08:26:59 2009
@@ -87,7 +87,7 @@
      */
      function isHoliday()
      {
-        return $this->holdiayflag;
+        return $this->holidayflag;
      }

      /**

Modified: trunk/geeklog-1-jp-extended/system/classes/config.class.php
==============================================================================
--- trunk/geeklog-1-jp-extended/system/classes/config.class.php	(original)
+++ trunk/geeklog-1-jp-extended/system/classes/config.class.php	Sat Feb  7  
08:26:59 2009
@@ -118,7 +118,9 @@
                      !array_key_exists($row[0],  
$this->config_array[$row[2]])) {
                      $value = @unserialize($row[1]);
                      if (($value === false) && ($row[1] != $false_str)) {
-                        COM_errorLog("Unable to unserialize {$row[1]} for  
{$row[2]}:{$row[0]}");
+                        if (function_exists('COM_errorLog')) {
+                            COM_errorLog("Unable to unserialize {$row[1]}  
for {$row[2]}:{$row[0]}");
+                        }
                      } else {
                          $this->config_array[$row[2]][$row[0]] = $value;
                      }
@@ -574,14 +576,11 @@

      function _UI_perm_denied()
      {
-        global $MESSAGE;
+        global $_USER, $MESSAGE;

          $display = COM_siteHeader('menu', $MESSAGE[30])
-            . COM_startBlock($MESSAGE[30], '',
-                             COM_getBlockTemplate ('_msg_block', 'header'))
-            . $MESSAGE[96]
-            . COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'))
-            . COM_siteFooter();
+                 . COM_showMessageText($MESSAGE[96], $MESSAGE[30])
+                 . COM_siteFooter();
          COM_accessLog("User {$_USER['username']} tried to illegally access  
the config administration screen.");

          return $display;
@@ -738,6 +737,14 @@
              $value = DB_getItem($_TABLES['conf_values'], 'value',
                                  "group_name='Core' AND name='language'");
              $this->config_array['Core']['language'] = unserialize($value);
+
+            /**
+             * Same with $_CONF['cookiedomain'], which is overwritten in
+             * in lib-sessions.php (if empty).
+             */
+            $value = DB_getItem($_TABLES['conf_values'], 'value',
+                                "group_name='Core' AND  
name='cookiedomain'");
+            $this->config_array['Core']['cookiedomain'] =  
unserialize($value);
          }

          $success_array = array();

Modified: trunk/geeklog-1-jp-extended/system/classes/downloader.class.php
==============================================================================
--- trunk/geeklog-1-jp-extended/system/classes/downloader.class.php	 
(original)
+++ trunk/geeklog-1-jp-extended/system/classes/downloader.class.php	Sat  
Feb  7 08:26:59 2009
@@ -32,8 +32,9 @@
  // $Id: downloader.class.php,v 1.15 2008/08/11 14:11:21 dhaun Exp $

  /**
-* This class allows you to download a file from outside the web tree.   
Many hooks
-* around security and file types have been added for customization within  
any app
+* This class allows you to download a file from outside the web tree.  Many
+* hooks around security and file types have been added for customization  
within
+* any app.
  *
  * @author   Tony Bibbs
  *
@@ -85,7 +86,7 @@
      * @access private
      */
      var $_limitByIP;            // Boolean
-
+
      /**
      * Constructor
      *
@@ -105,7 +106,7 @@
          $this->_setAvailableExtensions ();

      }
-
+
      // PRIVATE METHODS

      /**
@@ -124,7 +125,7 @@
              $this->_logItem('Warning',$warningText);
          }
      }
-
+
      /**
      * Adds an error that was encountered
      *
@@ -158,7 +159,7 @@
              $this->_logItem('Debug',$debugText);
          }
      }
-
+
      /**
      * Logs an item to the log file
      *
@@ -171,7 +172,7 @@
      function _logItem($logtype, $text)
      {
          $timestamp = strftime("%c");
-        if (!$file = fopen($this->_logFile,a)) {
+        if (!$file = fopen($this->_logFile, 'a')) {
              // couldn't open log file for writing so let's disable logging  
and add an error
              $this->setLogging(false);
              $this->_addError('Error writing to log file: ' .  
$this->_logFile . '.  Logging has been disabled');
@@ -181,7 +182,7 @@
          fclose($file);
          return true;
      }
-
+
      /**
      * Defines superset of available Mime types.
      *
@@ -193,30 +194,30 @@
          if (sizeof($extensions) == 0) {
              $this->_availableMimeTypes =
                  array(
-                    'tgz' => 'application/x-gzip-compressed',
-                    'gz' =>  'application/x-gzip-compressed',
-                    'zip' => 'application/x-zip-compresseed',
-                    'tar' => 'application/x-tar',
-                    'php' => 'text/plain',
+                    'tgz'  => 'application/x-gzip-compressed',
+                    'gz'   => 'application/x-gzip-compressed',
+                    'zip'  => 'application/x-zip-compresseed',
+                    'tar'  => 'application/x-tar',
+                    'php'  => 'text/plain',
                      'phps' => 'text/plain',
-                    'txt' => 'text/plain',
+                    'txt'  => 'text/plain',
                      'html' => 'text/html',
-                    'htm' => 'text/html',
-                    'bmp' => 'image/bmp',
-                    'ico' => 'image/bmp',
-                    'gif' => 'image/gif',
-                    'jpg' => 'image/jpeg',
+                    'htm'  => 'text/html',
+                    'bmp'  => 'image/bmp',
+                    'ico'  => 'image/bmp',
+                    'gif'  => 'image/gif',
+                    'jpg'  => 'image/jpeg',
                      'jpeg' => 'image/jpeg',
-                    'png' => 'image/png',
-                    'png' => 'image/x-png',
-                    'mp3' => 'audio/mpeg',
-                    'wav' => 'audio/wav',
-                    'pdf' => 'application/pdf',
-                    'swf' => 'application/x-shockwave-flash',
-                    'doc' => 'application/msword',
-                    'xls' => 'application/vnd.ms-excel',
-                    'exe' => 'application/octet-stream',
-                    'sql' => 'text/plain'
+                    'png'  => 'image/png',
+                    'png'  => 'image/x-png',
+                    'mp3'  => 'audio/mpeg',
+                    'wav'  => 'audio/wav',
+                    'pdf'  => 'application/pdf',
+                    'swf'  => 'application/x-shockwave-flash',
+                    'doc'  => 'application/msword',
+                    'xls'  => 'application/vnd.ms-excel',
+                    'exe'  => 'application/octet-stream',
+                    'sql'  => 'text/plain'
                  );
          } else {
              $this->_availableMimeTypes = $extensions;
@@ -227,9 +228,9 @@
              $this->_availableExtensions[] = $ext;
          }
      }
-
+
      // Public Methods
-
+
      /**
      * Extra security option that forces all attempts to upload a file to  
be done
      * so from a set of VERY specific IP's.  This is only good for those  
who are
@@ -250,7 +251,7 @@
              return false;
          }
      }
-
+
      /**
      * Sets log file
      *
@@ -269,7 +270,7 @@
          $this->_logFile = $logFile;
          return true;
      }
-
+
      /**
      * Enables/disables logging of errors and warnings
      *
@@ -298,7 +299,7 @@
      {
          return $this->_doLogging;
      }
-
+
      /**
      * Will force the debug messages in this class to be
      * printed
@@ -316,7 +317,7 @@
              $this->_debug = false;
          }
      }
-
+
      /**
      * This function will print any errors out.  This is useful in debugging
      *
@@ -341,7 +342,7 @@
              return $retval;
          }
      }
-
+
      /**
      * This function will print any warnings out.  This is useful in  
debugging
      *
@@ -357,7 +358,7 @@
              }
          }
      }
-
+
      /**
      * This function will print any debmug messages out.
      *
@@ -373,7 +374,7 @@
              }
          }
      }
-
+
      /**
      * Returns if any errors have been encountered thus far
      *
@@ -388,7 +389,7 @@
              return false;
          }
      }
-
+
      /**
      * Sets allowed mime types for this instance
      *
@@ -408,7 +409,7 @@
          }
          $this->_allowedExtensions = $validExtensions;
      }
-
+
      /**
      * Gets allowed mime types for this instance
      *
@@ -419,7 +420,7 @@
      {
          return $this->_allowedExtensions;
      }
-
+
      /**
      * Checks to see that mime type for current file is allowed for upload
      *
@@ -436,7 +437,7 @@
              return true;
          }
      }
-
+
      /**
      * Sets file upload path
      *
@@ -460,7 +461,7 @@

          return true;
      }
-
+
      /**
      * Returns directory to upload to
      *
@@ -471,7 +472,7 @@
      {
          return $this->_sourceDirectory;
      }
-
+
      /**
      * Attempts to dowload a file
      *
@@ -481,6 +482,16 @@
      */
      function downloadFile($fileName)
      {
+        // Before we do anything, let's see if we are limiting file  
downloads by
+        // IP address and, if so, verify the user is originating from one  
of
+        // those places
+        if ($this->_limitByIP) {
+            if (!in_array($_SERVER['REMOTE_ADDR'], $this->_allowedIPS)) {
+                $this->_addError('The IP, ' . $_SERVER['REMOTE_ADDR'] . '  
is not in the list of accepted IP addresses.  Refusing to allow file  
download(s)');
+                return false;
+            }
+        }
+
          if (strstr( PHP_OS, "WIN")) {  // Added as test1 below was failing  
on Windows platforms
              $strPathSeparator = '\\';
              $this->_sourceDirectory =  
str_replace('/','\\',$this->_sourceDirectory);
@@ -515,14 +526,21 @@
          if ($this->checkExtension($fextension)) {
              // Display file inside browser.
              header('Content-Type: ' .  
$this->_availableMimeTypes[$fextension]);
-            header('Content-transfer-encoding: binary');
-            header('Content-length: ' . filesize($this->_sourceDirectory .  
$fileName));
-            header('Content-Disposition: attachment; filename="' .  
$fileName . '"');
+            header('Content-Transfer-Encoding: binary');
+            header('Content-Length: '
+                   . filesize($this->_sourceDirectory . $fileName));
+
+            // send images as 'inline' everything else as 'attachment'
+            if (substr($this->_availableMimeTypes[$fextension], 0, 6)  
== 'image/') {
+                header('Content-Disposition: inline; filename="' .  
$fileName . '"');
+            } else {
+                header('Content-Disposition: attachment; filename="' .  
$fileName . '"');
+            }

              // Send file contents.
              $fp = fopen($this->_sourceDirectory . $fileName, 'rb');
-
-            fpassthru( $fp );
+            fpassthru($fp);
+            fclose($fp);
          }

          return true;

Modified: trunk/geeklog-1-jp-extended/system/classes/sanitize.class.php
==============================================================================
--- trunk/geeklog-1-jp-extended/system/classes/sanitize.class.php	(original)
+++ trunk/geeklog-1-jp-extended/system/classes/sanitize.class.php	Sat Feb   
7 08:26:59 2009
@@ -2,17 +2,14 @@

  /* Reminder: always indent with 4 spaces (no tabs). */
  //  
+---------------------------------------------------------------------------+
-// | Geeklog  
1.5                                                               |
+// | Geeklog  
1.4                                                               |
  //  
+---------------------------------------------------------------------------+
  // |  
sanitize.class.php                                                        |
  //  
|                                                                            
|
  // | Geeklog data filtering or sanitizing class  
library.                       |
  //  
+---------------------------------------------------------------------------+
-// | Copyright (C) 2002-2008 by the following  
authors:                         |
-//  
|                                                                            
|
-// | Authors: Tony Bibbs       - tony AT tonybibbs DOT  
com                     |
-// |          Dirk Haun        - dirk AT haun-online DOT  
de                    |
-// |          Blaine Lang      - blaine AT portalparts DOT  
com                 |
+// | Copyright (C) 2007-2009 by the following  
authors:                         |
+// | Authors: Blaine Lang      - blaine AT portalparts DOT  
com                 |
  //  
+---------------------------------------------------------------------------+
  //  
|                                                                            
|
  // | This program is free software; you can redistribute it  
and/or             |
@@ -32,293 +29,464 @@
  //  
+---------------------------------------------------------------------------+
  //

-/* Class derived from original procedural code in Geeklog 1.3.x  
lib-common.php
-*  Jan 2005: Blaine Lang
+/* This class can be used to filter a single variable or an array of data
+*  Three filtering modes are currently supported but the class can easily  
be extended
+*  Mode int:   will return integer value or 0 if NULL or non-integer
+*  Mode char:  strong character  filter that will remove any HTML or quotes
+*  Mode text:  Use for text fields and will use the site HTML filtering  
functions and user allowable HTML returned as well as quotes
+*
+*  Data can be returned filtered or optionally prep'ed for DB or Web use
+*  Usage Examples:
+*  $filter = new sanitizer();
+*
+*  Example 1: Load up data to be filtered and then call method to return  
data prep'ed for DB, Web or default format
+*  Better if you have a lot of data to filter and if you want to return it  
for DB and Web Presentation format
+
+   $filter = new sanitizer();
+   $charvars = array(
+        'id'    => $_REQUEST['id'],
+        'mode'  => $_REQUEST['mode']
+    );
+    $textvars = array(
+        'title' => $_REQUEST['movietitle'],     // Able to change the key  
that will be used in filtered return array
+        'desc'  => $_REQUEST['moviedesc'],
+        'keywords'  => $_REQUEST['keywords'],
+    );
+
+    // Initialize the filter and load the data and types to be filtered
+    $filter = new nexfilter();
+    $filter->cleanData('char',$charvars);
+    $filter->cleanData('text',$textvars);
+
+    $dbData = $filter->getDbData();     // Filtered data is prep'ed for  
SQL use - addslashes added
+    $webData = $filter->getWebData();  //  Filtered data like text  
filtered data with stripslashes already done
+
+    $title = $dbData['title'];
+    DB_query("UPDATE {$_TABLES['media']} SET title='{$dbData['title']}  
WHERE id='{$dbData['id']}'");
+
+
+* Example 2:  Define the variables to be filtered, mode and returns  
sanitized data
+* Not able to specify SUPER GLOBAL to filter data from unless you call  
multiple methods
+* but you can specify multiple filtering modes
+
+  $filter = new sanitizer();
+  $clean = $filter->cleanPostData(array('movietitle' => 'text', 'id'  
=> 'int'));
+  DB_query("UPDATE {$_TABLES['media']} SET title='{$clean['movietitle']}  
WHERE id='{$clean['id']}'");
+
+* Example 3: Pass in multiple variables but a single filtering mode
+  $clean = $filter->getCleanData('text', array('title' =>  
$_POST['movietitle'],'desc' => $_POST['moviedesc'] ));
+
+* Example 4: Pass in a single variable to sanitize
+  $id = $filter->getCleanData('int',$_GET['id']);
+
+*  How to extend allowable types - add a new function
+*  Example Type: Int -- function _cleanInt(), so adding a function called  
_cleanDate could be added for a date filter
+
  */

-if (strpos(strtolower($_SERVER['PHP_SELF']), 'sanitize.class.php') !==  
false) {
-    die('This file can not be used on its own.');
+
+if (strpos ($_SERVER['PHP_SELF'], 'sanitize.class.php') !== false) {
+    die ('This file can not be used on its own.');
  }

-/**
- * Include the base kses class if not already loaded
- */
-require_once $_CONF['path_system'] . 'classes/kses.class.php';
-
-class sanitize extends kses {
-
-    var $string = '';
-    var $_parmissions = '';
-    var $_isnumeric = false;
-    var $_logging = false;
-    var $_setglobal = false;
-    var $_censordata = false;

-    /* Filter or sanitize single parm */
-    function filterparm ($parm) {
+class sanitizer {
+
+    var $_dirtydata = array();      // Data to be filtered
+    var $_cleandata = array();      // Sanitized Data after filtering
+    var $_makeglobal = false;       // Set to true to also create a global  
matching variable name if passed in
+    var $_logmode    = false;       // Set true to log to error.log
+    var $_checkwords = true;        // Set true to enable word censor  
filter
+    var $_checkhtml = true;         // Set true to enable HTML filtering
+    var $_prepfordb = false;        // Set true to place filter class into  
DB mode -- will addslashes around quotes
+    var $_prepforweb = false;       // Set true to place filter class into  
WEB mode - will use stripslashes before returning data
+    var $_maxlength = 0;            // Set to 0 to disable, else if set  
will trim data to this length
+
+    /* Filter modes allows this class to be extended.
+     * Need to have matching class method _cleanType
+     */
+    var $_filtermodes = array('int','char','text');
+
+
+    public function setLogging($state) {
+        if ($state === true or $state == 'on') {
+            $this->_logmode = true;
+        } elseif ($state === false or $state == 'off') {
+            $this->_logmode = false;
+        }
+    }
+
+    public function setGlobals($state) {
+        if ($state === true or $state == 'on') {
+            $this->_makeglobal = true;
+        } elseif ($state === false or $state == 'off') {
+            $this->_makeglobal = false;
+        }
+    }
+
+    public function setCheckwords($state) {
+        if ($state === true or $state == 'on') {
+            $this->_checkwords = true;
+        } elseif ($state === false or $state == 'off') {
+            $this->_checkwords = false;
+        }
+    }
+
+    public function setPrepfordb($state) {
+        if ($state === true or $state == 'on') {
+            $this->_prepfordb = true;
+            $this->_prepforweb = false;
+        } elseif ($state === false or $state == 'off') {
+            $this->_prepfordb = false;
+        }
+    }

-        $p = $this->Parse( $parm );
+    public function setPrepforweb($state) {
+        if ($state === true or $state == 'on') {
+            $this->_prepforweb = true;
+            $this->_prepfordb = false;
+        } elseif ($state === false or $state == 'off') {
+            $this->_prepforweb = false;
+        }
+    }

-        if( $this->_isnumeric )
-        {
+    public function setMaxlength($length) {
+        if ($length > 0) {
+            $this->_maxlength = $length;
+        } else {
+            $this->_maxlength = 0;
+        }
+    }
+
+    public function initFilter() {
+        $this->_dirtydata = array();
+        $this->_cleandata = array();
+    }
+
+    /* apply the free webtext filter to input which may need to contain  
quote's or other special characters */
+    private function _filterText( $var ) {
+        // Need to call addslashes again as COM_checkHTML strips it out
+        if ($this->_checkhtml) $var = COM_checkHTML($var);
+        if ($this->_checkwords) $var = COM_checkWords($var);
+        $var = COM_killJS($var);
+        if ($this->_maxlength > 0) {
+            $var = substr($var, 0, $this->_maxlength);
+        }
+        if ($this->_prepfordb) {
+            $var = addslashes($var);
+        } elseif ($this->_prepforweb) {
+            $var = stripslashes($var);
+        }
+        return $var;
+    }
+
+    /* Default filter for character and numeric data */
+    private function _applyFilter( $parameter, $isnumeric = false ) {
+        $p = COM_stripslashes( $parameter );
+        $p = strip_tags( $p );
+        $p = COM_killJS( $p ); // doesn't help a lot right now, but  
still ...
+        if( $isnumeric ) {
              // Note: PHP's is_numeric() accepts values like 4e4 as numeric
-            if( !is_numeric( $p ) || ( preg_match( '/^([0-9]+)$/', $p ) ==  
0 ))
-            {
-               $p = 0;
+            if( !is_numeric( $p ) || ( preg_match( '/^-?\d+$/', $p ) == 0  
)) {
+                $p = 0;
              }
-        }
-        else
-        {
+        } else {
+            if ($this->_checkwords) $p = COM_checkWords($p);
              $p = preg_replace( '/\/\*.*/', '', $p );
              $pa = explode( "'", $p );
              $pa = explode( '"', $pa[0] );
              $pa = explode( '`', $pa[0] );
              $pa = explode( ';', $pa[0] );
+            //$pa = explode( ',', $pa[0] );
              $pa = explode( '\\', $pa[0] );
              $p = $pa[0];
+
+            if ($this->_prepfordb) {
+                $p = addslashes($p);
+            } elseif ($this->_prepforweb) {
+                $p = stripslashes($p);
+            }
+        }
+
+        if ($this->_maxlength > 0) {
+            $p = substr($p, 0, $this->_maxlength);
          }

-        if( $this->logging )
-        {
-            if( strcmp( $p, $parm ) != 0 )
-            {
-                COM_errorLog( "Filter applied: >> $parm << filtered to $p  
[IP {$_SERVER['REMOTE_ADDR']}]", 1);
+        if( $this->_logmode ) {
+            if( strcmp( $p, $parameter ) != 0 ) {
+                COM_errorLog( "Filter applied: >> $parameter << filtered  
to $p [IP {$_SERVER['REMOTE_ADDR']}]", 1);
              }
          }

          return $p;
-
      }

-    /* Prepare data for SQL insert and apply filtering
-    *  Supports passing a single parm or array of parms
-    */
-    function prepareForDB($data) {
-        if (is_array($data)) {
-            # loop through array and apply the filters
-            foreach($data as $var)  {
-                $return_data[]  = addslashes($this->filterHTML($var));
+
+    private function _makeGlobal() {
+
+        if ($this->_makeglobal) {
+            foreach ($this->_cleandata as $var) {
+                if (is_array($var)) {
+                    foreach ($var as $varname => $value) {
+                        // Only if variable name is a true string like name
+                        if (!is_numeric($varname)) $GLOBALS[$varname] =  
$value;
+                    }
+                }
              }
-            return $return_data;
-        }
-        else
-        {
-            $data = $this->filterHTML($data);
-            $data = addslashes($data);
-            return $data;
          }
+
      }

-    function filterHTML ($message) {
-        global $_CONF;

-        // strip_tags() gets confused by HTML comments ...
-        $message = preg_replace( '/<!--.+?-->/', '', $message );
+    private function _cleanText() {

-        if( isset( $_CONF['allowed_protocols'] ) && is_array(  
$_CONF['allowed_protocols'] ) && ( sizeof( $_CONF['allowed_protocols'] ) >  
0 ))
-        {
-            $this->Protocols( $_CONF['allowed_protocols'] );
-        }
-        else
-        {
-            $this->Protocols( array( 'http:', 'https:', 'ftp:' ));
+        foreach ($this->_dirtydata['text'] as $var => $value) {
+            // Check if this variable is an array - maybe a checkbox or  
multiple select
+            if (is_array($value)) {
+                $subvalues_array = array();
+                foreach ($value as $subvalue) {
+                    $subvalues_array[] = $this->_filterText($subvalue);
+                }
+                $this->_cleandata['text'][$var] = $subvalues_array;
+            } else {
+                $this->_cleandata['text'][$var] =  
$this->_filterText($value);
+            }
          }

-        if( empty( $this->permissions) || !SEC_hasRights(  
$this->permissions ) ||
-                empty( $_CONF['admin_html'] ))
-        {
-            $html = $_CONF['user_html'];
-        }
-        else
-        {
-            $html = array_merge_recursive( $_CONF['user_html'],
-                                           $_CONF['admin_html'] );
-        }
+    }
+
+
+    private function _cleanChar() {

-        foreach( $html as $tag => $attr )
-        {
-            $this->AddHTML( $tag, $attr );
+        foreach ($this->_dirtydata['char'] as $var => $value) {
+            // Check if this variable is an array - maybe a checkbox or  
multiple select
+            if (is_array($value)) {
+                $subvalues_array = array();
+                foreach ($value as $subvalue) {
+                    $subvalues_array[] = $this->_applyFilter($subvalue);
+                }
+                $this->_cleandata['char'][$var] = $subvalues_array;
+            } else {
+                $this->_cleandata['char'][$var] =  
$this->_applyFilter($value);
+            }
          }

-        $message = $this->Parse( $message );
-        $message = $this->formatCode($message);
-        $message = $this->censor($message);
-        return $message;
+    }
+
+    private function _cleanInt() {
+
+        foreach ($this->_dirtydata['int'] as $var => $value) {
+            // Check if this variable is an array - maybe a checkbox or  
multiple select
+            if (is_array($value)) {
+                $subvalues_array = array();
+                foreach ($value as $subvalue) {
+                    $subvalues_array[] =  
$this->_applyFilter($subvalue,true);
+                }
+                $this->_cleandata['int'][$var] = $subvalues_array;
+            } else {
+                $this->_cleandata['int'][$var] =  
$this->_applyFilter($value,true);
+            }
+        }

      }

+    private function _santizeData($type='',$data='') {

-    /* Apply filtering to a single parm or array of parms
-    *  Parms may be in either $_POST or $_GET input parms array
-    *  If type (GET or POST) is not set then POST is checked first
-    *  Optionally Parms can be made global
-    */
-    function sanitizeParms($vars,$type='')  {
-      $return_data = array();
+        if (!empty($data)) {
+            $this->cleanData($type,$data);
+        }

-      #setup common reference to SuperGlobals depending which array is  
needed
-      if ($type == "GET" OR $type == "POST") {
-        if ($type =="GET") { $SG_Array =& $_GET; }
-        if ($type =="POST") { $SG_Array =& $_POST; }
-
-        # loop through SuperGlobal data array and grab out data for  
allowed fields if found
-        foreach($vars as $key)  {
-          if (array_key_exists($key,$SG_Array)) {  
$return_data[$key]=$SG_Array[$key]; }
-        }
-
-      }
-      else
-      {
-        foreach ($vars as $key) {
-          if (array_key_exists($key, $_POST)) {
-            $return_data[$key] = $_POST[$key];
-          }
-          elseif (array_key_exists($key, $_GET))
-          {
-            $return_data[$key] = $_GET[$key];
-          }
-        }
-      }
-
-        # loop through $vars array and apply the filter
-        foreach($vars as $value)  {
-          $return_data[$value]  = $this->filterparm($return_data[$value]);
-        }
-
-      // Optionally set $GLOBALS or return the array
-      if ($this->_setglobal) {
-          # loop through final data and define all the variables using the  
$GLOBALS array
-          foreach ($return_data as $key=>$value)  {
-            $GLOBALS[$key]=$value;
-          }
-      }
-      else
-      {
-         return $return_data;
-      }
-
-    }
-
-
-    function formatCode($message)  {
-
-        // Get rid of any newline characters
-        $message = preg_replace( "/\n/", '', $message );
-
-        // Replace any $ with &#36; (HTML equiv)
-        $message = str_replace( '$', '&#36;', $message );
-
-        // handle [code] ... [/code]
-        do
-        {
-            $start_pos = MBYTE_substr( MBYTE_strtolower( $message  
), '[code]' );
-            if( $start_pos !== false )
-            {
-                $end_pos = MBYTE_substr( MBYTE_strtolower( $message  
), '[/code]' );
-                if( $end_pos !== false )
-                {
-                    $encoded = $this->_handleCode( MBYTE_substr( $message,  
$start_pos + 6,
-                            $end_pos - ( $start_pos + 6 )));
-                    $encoded = '<pre><code>' . $encoded . '</code></pre>';
-                    $message = MBYTE_substr( $message, 0, $start_pos ) .  
$encoded
-                         . MBYTE_substr( $message, $end_pos + 7 );
-                }
-                else // missing [/code]
-                {
-                    // Treat the rest of the text as code (so as not to  
lose any
-                    // special characters). However, the calling entity  
should
-                    // better be checking for missing [/code] before  
calling this
-                    // function ...
-                    $encoded = $this->_handleCode( MBYTE_substr( $message,  
$start_pos + 6 ));
-                    $encoded = '<pre><code>' . $encoded . '</code></pre>';
-                    $message = MBYTE_substr( $message, 0, $start_pos ) .  
$encoded;
-                }
-            }
-        }
-        while( $start_pos !== false );
-
-        return $message;
-
-    }
-
-    /**
-    * Handles the part within a [code] ... [/code] section, i.e. escapes  
all
-    * special characters.
-    *
-    * @param   string  $str  the code section to encode
-    * @return  string  $str with the special characters encoded
-    *
-    */
-    function _handleCode( $str )
-    {
-        $search  =  
array( '&',     '\\',    '<',    '>',    '[',     ']'     );
-        $replace =  
array( '&amp;', '&#92;', '&lt;', '&gt;', '&#91;', '&#93;' );
+        /* Check if we need to return just one type of filtered data */
+        if ($type != '' AND in_array($type,$this->_filtermodes)) {
+            $filterFunction = '_clean' . ucfirst($type);
+            if (method_exists($this,$filterFunction)) {
+                $this->$filterFunction();
+                // If just one variable in clean data, then no need to  
return an array of values
+                if (count($this->_cleandata[$type]) == 1) {
+                    $retval = $this->_cleandata[$type][0];
+                } else {
+                    $retval = $this->_cleandata[$type];
+                }
+            }
+
+        } else {
+            /* Filter and return an associative array of filtered data -  
per filter type */
+            foreach($this->_dirtydata as $type => $data)  {
+                $filterFunction = '_clean' . ucfirst($type);
+                if (method_exists($this,$filterFunction)) {
+                    $this->$filterFunction();
+                }
+            }
+            $retval = $this->_cleandata;
+        }

-        $str = str_replace( $search, $replace, $str );
+        return $retval;

-        return( $str );
      }


-    /**
-    * This censors inappropriate content
-    *
-    * This will replace 'bad words' with something more appropriate
-    *
-    * @param        string      $message        String to check
-    * @return   string  Edited $Message
-    *
+    /* Used to load the data that you want cleaned
+    *  Call the getCleanData or getDbData or getWebData() methods to  
return filtered data
      */
+    public function cleanData($mode,$data) {
+        if (in_array($mode,$this->_filtermodes)) {
+            if (is_array($data)) {
+                foreach ($data as $var => $value ) {
+                  $this->_dirtydata[$mode][$var] = $value;
+                }
+            } else {
+                $this->_dirtydata[$mode][] = $data;
+            }
+        }
+    }

-    function censor ($message)
-    {
-        global $_CONF;
+    /* Optional methods to clean and return filtered data from a specific  
GLOBAL (GET, POST, COOKIE or REQUEST) */
+    /* Expect an array of variables from a specific SUPPER GLOBAL
+       $data is an array of variable names and type - example:
+         array ( 'var1' => 'int', 'var2name' => 'char', 'message'  
=> 'text')
+    */

-        $editedMessage = $message;
+    /* Expect an array of $_GET variables as per above array format to  
filter and return sanitized values  */
+    public function cleanGetData($data) {
+        if (!is_array($data)) {
+            return FALSE;
+        }
+        $cleandata = array();
+        foreach ($data as $varname => $type) {
+            if (isset($_GET[$varname]) AND !empty($_GET[$varname])) {
+                $data = $_GET[$varname];
+                $cleandata[$varname] = $this->getCleanData($type,$data);
+            } else {
+                if ($type = 'int') {
+                    $cleandata[$varname] = 0;
+                } else {
+                    $cleandata[$varname] = '';
+                }
+            }
+        }
+        return $cleandata;

-        if( $this->_censordata )
-        {
-            if( is_array( $_CONF['censorlist'] ))
-            {
-                $replacement = $_CONF['censorreplace'];
+    }

-                switch( $_CONF['censormode'])
-                {
-                    case 1: # Exact match
-                        $regExPrefix = '(\s*)';
-                        $regExSuffix = '(\W*)';
-                        break;
+    /* Expect an array of $_POST variables to filter and return sanitized  
values  */
+    public function cleanPostData($data) {
+        if (!is_array($data)) {
+            return FALSE;
+        }
+        $cleandata = array();
+        foreach ($data as $varname => $type) {
+            if (isset($_POST[$varname]) AND !empty($_POST[$varname])) {
+                $data = $_POST[$varname];
+                $cleandata[$varname] = $this->getCleanData($type,$data);
+            } else {
+                if ($type = 'int') {
+                    $cleandata[$varname] = 0;
+                } else {
+                    $cleandata[$varname] = '';
+                }
+            }
+        }
+        return $cleandata;

-                    case 2: # Word beginning
-                        $regExPrefix = '(\s*)';
-                        $regExSuffix = '(\w*)';
-                        break;
+    }

-                    case 3: # Word fragment
-                        $regExPrefix   = '(\w*)';
-                        $regExSuffix   = '(\w*)';
-                        break;
+    /* Expect an array of $_REQUEST variables to filter and return  
sanitized values  */
+    public function cleanRequestData($data) {
+        if (!is_array($data)) {
+            return FALSE;
+        }
+        $cleandata = array();
+        foreach ($data as $varname => $type) {
+            if (isset($_REQUEST[$varname])  
AND !empty($_REQUEST[$varname])) {
+                $data = $_REQUEST[$varname];
+                $cleandata[$varname] = $this->getCleanData($type,$data);
+            } else {
+                if ($type = 'int') {
+                    $cleandata[$varname] = 0;
+                } else {
+                    $cleandata[$varname] = '';
                  }
+            }
+        }
+        return $cleandata;

-                for( $i = 0; $i < count( $_CONF['censorlist']); $i++ )
-                {
-                    $editedMessage = MBYTE_eregi_replace( $regExPrefix .  
$_CONF['censorlist'][$i] . $regExSuffix, "\\1$replacement\\2",  
$editedMessage );
+    }
+
+
+    /* Expect an array of $_COOKIE variables to filter and return  
sanitized values  */
+    public function cleanCookieData($data) {
+        if (!is_array($data)) {
+            return FALSE;
+        }
+        $cleandata = array();
+        foreach ($data as $varname => $type) {
+            if (isset($_COOKIE[$varname]) AND !empty($_COOKIE[$varname])) {
+                $data = $_COOKIE[$varname];
+                $cleandata[$varname] = $this->getCleanData($type,$data);
+            } else {
+                if ($type = 'int') {
+                    $cleandata[$varname] = 0;
+                } else {
+                    $cleandata[$varname] = '';
                  }
              }
          }
+        return $cleandata;

-        return $editedMessage;
      }


-    function setPermissions($permissions) {
-        $this->permissions = $permissions;
+
+
+    /* Main public functions to filter data
+       Return the cleaned data loaded using the cleanData method
+     * Or optionally pass in the d

==============================================================================
Diff truncated at 200k characters



Geeklogjp-changes メーリングリストの案内
Back to archive index