dropbox
«前の日記(2007-02-28) 最新 次の日記(2007-03-02)» 編集

Yammy日記

私の日々の記録などです。この日記の内容は、私個人の意見/考えであり、所属する団体の意見/考えではありません。
RSS Web yammy.jpn.org
過去の日記
☆スキーウエアNOW ON SALE!!☆★2ピース上下スーツ★ 【エァウォーク】幼児用ウエアAWT‐5524 ピンク(桃色)サイズ:100・110・120 decorate
Plaitan 25リットル:Lサイズ 【MBRO】エムブロ 日産 セレナ
エムブロC25/CC25/NC25/CNC25
バルカンLEDハイマウントストップランプ クローム
【送料込】エムブロ MBRO
C25系セレナ スパークルLEDテール
クローム
【送料無料】ねばるパウダー
折れ脚伸長式テーブルGrande neo〔グランデネオ〕 大
佐藤錦 わけあり 1Kg
沖縄産スナックパイン1玉(500g〜800g)

N−95D23L/C3 互換インク CANON BCI-7e+9/5MP



track feed
Debian GNU/Linux
Apache
www.cacert.org
My Profile by iddy
technorati
RobotReplay

2004/09/30から

今日:
昨日:
最近のツッコミ10発


2007-03-01 [長年日記]

_ [dotProject][Know-How][OpenSource][Software] dotProject ガントチャート日本語表示

環境
OSUbuntu 6.06 LTS "Dapper Drake"
MySQL5.0.22
PHP5.1.2
Apache2.0.55
dotProjectdotProject日本語版 バージョン2.0.4
ガントチャートの日本語表示が出来ない。色々調べていると情報が多数あった。
okkezのPukiWiki 日記/2005-09-18を参考に以下のファイルを修正。
  • modules/projects/gantt.php
  • modules/projects/gantt2.php
  • modules/tasks/gantt.php
以下のような変更で、ガントチャートの日本語表示が出来るはず。

modules/projects/gantt.php
$ diff -u dotproject/modules/tasks/gantt.php.org dotproject/modules/tasks/gantt.php
--- dotproject/modules/projects/gantt.php.org	2007-02-28 20:51:50.000000000 +0900
+++ dotproject/modules/projects/gantt.php	2007-02-28 21:00:41.000000000 +0900
@@ -72,22 +72,25 @@
 
 $graph->SetFrame(false);
 $graph->SetBox(true, array(0,0,0), 2);
+$graph->scale->day->SetFont(FF_GOTHIC,FS_NORMAL);
 $graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
 
-/*$jpLocale = dPgetConfig( 'jpLocale' );
+$graph->scale->week->SetFont(FF_GOTHIC,FS_NORMAL);
+$graph->scale->month->SetFont(FF_GOTHIC,FS_NORMAL);
+/*
+$jpLocale = dPgetConfig( 'jpLocale' );
 if ($jpLocale) {
         $graph->scale->SetDateLocale( $jpLocale );
 }
-** the jpgraph date locale is now set
-** automatically by the user's locale settings
 */
-$graph->scale->SetDateLocale( $AppUI->user_lang[0] );
+$graph->scale->SetDateLocale( $AppUI->jpLocale );
 
 if ($start_date && $end_date) {
 	$graph->SetDateRange( $start_date, $end_date );
 }
 
 //$graph->scale->actinfo->SetFont(FF_ARIAL);
+$graph->scale->actinfo->SetFont(FF_GOTHIC);
 $graph->scale->actinfo->vgrid->SetColor('gray');
 $graph->scale->actinfo->SetColor('darkgray');
 $graph->scale->actinfo->SetColTitles(array( $AppUI->_('Project name', UI_OUTPUT_RAW), 
$AppUI->_('Start Date', UI_OUTPUT_RAW), $AppUI->_('Finish', UI_OUTPUT_RAW), 
$AppUI->_('Actual End', UI_OUTPUT_RAW)),array(160,10, 70,70));
@@ -98,8 +101,8 @@
 
 // Use TTF font if it exists
 // try commenting out the following two lines if gantt charts do not display
-if (is_file( TTF_DIR."arialbd.ttf" ))
-	$graph->scale->tableTitle->SetFont(FF_ARIAL,FS_BOLD,12);
+if (is_file( MBTTF_DIR."ipag.ttf" ))
+	$graph->scale->tableTitle->SetFont(FF_GOTHIC,FS_NORMAL,12);
 $graph->scale->SetTableTitleBackground("#eeeeee");
 $graph->scale->tableTitle->Show(true);
 
@@ -156,7 +159,9 @@
 if (!is_array($projects) || sizeof($projects) == 0) {
  $d = new CDate();
  $bar = new GanttBar($row++, array(' '.$AppUI->_('No projects found'),  ' ', ' ', ' '), 
$d->getDate(), $d->getDate(), ' ', 0.6);
+ //$bar->scale->SetDateLocale("ja_JP");
  $bar->title->SetCOlor('red');
+ $bar->title->SetFont(FF_GOTHIC,FS_NORMAL);
  $graph->Add($bar);
 }
 
@@ -164,11 +169,11 @@
 foreach($projects as $p) {
 
 	if ( $locale_char_set=='utf-8' && function_exists("utf8_decode") ) {
-		$name = strlen( utf8_decode($p["project_name"]) ) > 25 ? 
dpSubStr( utf8_decode($p["project_name"]), 0, 22 ).'...' : utf8_decode($p["project_name"]) ;
+		$name = strlen( utf8_decode($p["project_name"]) ) > 25 ? 
substr( utf8_decode($p["project_name"]), 0, 22 ).'...' : utf8_decode($p["project_name"]) ;
 	} else {
 		//while using charset different than UTF-8 we need not to use utf8_deocde
 		$name = strlen( $p["project_name"] ) > 25 ? 
dpSubStr( $p["project_name"], 0, 22 ).'...' : $p["project_name"] ;
-	}
+	//}
 
 	//using new jpGraph determines using Date object instead of string
 	$start = ($p["project_start_date"] > "0000-00-00 00:00:00") ? 
$p["project_start_date"] : date("Y-m-d H:i:s");
@@ -209,21 +214,24 @@
 	$actual_enddate = new CDate($actual_end);
 	$actual_enddate = $actual_enddate->after($startdate) ? $actual_enddate : $enddate;
         $bar = new GanttBar($row++, array($name, $startdate->format($df), $enddate->format($df), 
$actual_enddate->format($df)), $start, $actual_end, $cap, 0.6);
+        //$bar->scale->SetDateLocale("ja_JP");
         $bar->progress->Set(min(($progress/100), 1));
 
-        $bar->title->SetFont(FF_FONT1,FS_NORMAL,10);
+        $bar->title->SetFont(FF_GOTHIC,FS_NORMAL,10);
         $bar->SetFillColor("#".$p['project_color_identifier']);
         $bar->SetPattern(BAND_SOLID,"#".$p['project_color_identifier']);
 
 	//adding captions
 	$bar->caption = new TextProperty($caption);
 	$bar->caption->Align("left","center");
+  $bar->caption->SetFont(FF_GOTHIC, FS_NORMAL);
 
         // gray out templates, completes, on ice, on hold
         if ($p['project_status'] != '3' || $p['project_status'] == '7') {
                 $bar->caption->SetColor('darkgray');
                 $bar->title->SetColor('darkgray');
                 $bar->SetColor('darkgray');
+                $bar->title->SetFont(FF_GOTHIC,FS_NORMAL);
                 $bar->SetFillColor('gray');
                 //$bar->SetPattern(BAND_SOLID,'gray');
                 $bar->progress->SetFillColor('darkgray');
@@ -262,6 +270,7 @@
		$bar2 = new GanttBar($row++, array(dpSubStr(" --".$t["task_name"], 0, 20)."...", 
$tStartObj->format($df),  
$tEndObj->format($df), ' '), $tStart, $tEnd, ' ', $t['task_dynamic'] == 1 ? 0.1 : 0.6);
 				
 				$bar2->title->SetColor( bestColor( '#ffffff', '#'.$p['project_color_identifier'], '#000000' ) );
+        $bar2->title->SetFont(FF_GOTHIC,FS_NORMAL);
  				$bar2->SetFillColor("#".$p['project_color_identifier']);		
  				$graph->Add($bar2);
  			}
@@ -288,6 +297,7 @@
  				
  					$bar3 = new GanttBar($row++, array("   * ".$w["user_username"], " ", " "," "), "0", "0;", 0.6);							
  					$bar3->title->SetColor(bestColor( '#ffffff', '#'.$p['project_color_identifier'], '#000000' ));
+          $bar3->title->SetFont(FF_GOTHIC,FS_NORMAL);
  					$bar3->SetFillColor("#".$p['project_color_identifier']);		
  					$graph->Add($bar3);
  				}
@@ -301,6 +311,9 @@
 
 $today = date("y-m-d");
 $vline = new GanttVLine($today, $AppUI->_('Today', UI_OUTPUT_RAW));
+if(is_file(MBTTF_DIR."ipag.ttf")) {
+    $vline->title->SetFont(FF_GOTHIC,FS_NORMAL);
+}
 $graph->Add($vline);
 $graph->Stroke();
 ?>
modules/projects/gantt2.php
$ diff -u dotproject/modules/projects/gantt2.php.org dotproject/modules/projects/gantt2.php
--- dotproject/modules/projects/gantt2.php.org	2007-02-28 21:00:54.000000000 +0900
+++ dotproject/modules/projects/gantt2.php	2007-02-28 21:03:45.000000000 +0900
@@ -82,16 +82,19 @@
 $graph2->SetBox(true, array(0,0,0), 2);
 $graph2->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
 
+/*
 $jpLocale = dPgetConfig( 'jpLocale' );
 if ($jpLocale) {
 	$graph2->scale->SetDateLocale( $jpLocale );
 }
+*/
+$graph->scale->SetDateLocale( $AppUI->jpLocale );
 
 if ($start_date && $end_date) {
 	$graph2->SetDateRange( $start_date, $end_date );
 }
 
-//$graph2->scale->actinfo->SetFont(FF_ARIAL);
+$graph2->scale->actinfo->SetFont(FF_GOTHIC);
 $graph2->scale->actinfo->vgrid->SetColor('gray');
 $graph2->scale->actinfo->SetColor('darkgray');
 $graph2->scale->actinfo->SetColTitles(array( $AppUI->_('User Name', UI_OUTPUT_RAW), $AppUI->_('Start Date', 
UI_OUTPUT_RAW), $AppUI->_('Finish', UI_OUTPUT_RAW), $AppUI->_(' ')),array(160,10, 70,70));
@@ -102,8 +105,8 @@
 
 // Use TTF font if it exists
 // try commenting out the following two lines if gantt charts do not display
-if (is_file( TTF_DIR."arialbd.ttf" ))
-	$graph2->scale->tableTitle->SetFont(FF_ARIAL,FS_BOLD,12);
+if (is_file( MBTTF_DIR."ipag.ttf" ))
+	$graph2->scale->tableTitle->SetFont(FF_GOTHIC,FS_NORMAL,12);
 $graph2->scale->SetTableTitleBackground("#eeeeee");
 $graph2->scale->tableTitle->Show(true);
 
@@ -176,7 +179,7 @@
 		$barTmp = new GanttBar($row++, array($t["user_name"], "", ""," "), "0", "0;" , 0.6);						
 		$barTmp->title->SetColor("#".$t['project_color_identifier']);
 		$barTmp->SetFillColor("#".$t['project_color_identifier']);
-		$barTmp->title ->SetFont(FF_FONT1, FF_BOLD);		
+    $barTmp->title ->SetFont(FF_GOTHIC, FS_NORMAL);	
 		$graph2->Add($barTmp);
 	}
 		
@@ -232,19 +235,20 @@
 	$startdate = new CDate($start);
         $bar = new GanttBar($row++, array($name, $startdate->format($df), 
$enddate->format($df), /*substr($actual_end, 0, 10))*/" "), 
$start, $actual_end, $cap, $t['task_dynamic'] == 1 ? 0.1 : 0.6);
    //     $bar->progress->Set($progress/100);
-        $bar->title->SetFont(FF_FONT1,FS_NORMAL,10);
+        $bar->title->SetFont(FF_GOTHIC,FS_NORMAL,10);
         $bar->SetFillColor("#".$t['project_color_identifier']);
         $bar->SetPattern(BAND_SOLID,"#".$t['project_color_identifier']);
 
 		//adding captions
 		$bar->caption = new TextProperty($caption);
 		$bar->caption->Align("left","center");
-		
+    $bar->caption->SetFont(FF_GOTHIC, FS_NORMAL);
 	}
 	else
 	{
 		$bar  = new MileStone ($row++, $name, $start, (substr($start, 0, 10)));
 		$bar->title->SetColor("#CC0000");		
+    $bar->title->SetFont(FF_GOTHIC,FS_NORMAL);
 
 	}
 
@@ -258,4 +262,4 @@
 $vline = new GanttVLine($today, $AppUI->_('Today', UI_OUTPUT_RAW));
 $graph->Add($vline);
 $graph2->Stroke();
?>
modules/tasks/gantt.php
$ diff -u dotproject/modules/tasks/gantt.php.org dotproject/modules/tasks/gantt.php
--- dotproject/modules/tasks/gantt.php.org	2007-02-28 21:04:10.000000000 +0900
+++ dotproject/modules/tasks/gantt.php	2007-03-01 13:04:35.000000000 +0900
@@ -181,14 +181,17 @@
 $graph->SetBox(true, array(0,0,0), 2);
 $graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
 //$graph->scale->day->SetStyle(DAYSTYLE_SHORTDATE2);
+$graph->scale->day->SetFont(FF_GOTHIC,FS_NORMAL);
+$graph->scale->week->SetFont(FF_GOTHIC,FS_NORMAL);
+$graph->scale->month->SetFont(FF_GOTHIC,FS_NORMAL);
 
 $graph->scale->SetDateLocale( $AppUI->user_lang[0] );
 
 if ($start_date && $end_date) {
         $graph->SetDateRange( $start_date, $end_date );
 }
-if (is_file( TTF_DIR.'arialbd.ttf' )){
-        $graph->scale->actinfo->SetFont(FF_ARIAL);
+if (is_file( MBTTF_DIR."ipag.ttf" )){
+	$graph->scale->actinfo->SetFont(FF_GOTHIC);
 }
 $graph->scale->actinfo->vgrid->SetColor('gray');
 $graph->scale->actinfo->SetColor('darkgray');
@@ -211,8 +214,8 @@
 
 // Use TTF font if it exists
 // try commenting out the following two lines if gantt charts do not display
-if (is_file( TTF_DIR.'arialbd.ttf' ))
-        $graph->scale->tableTitle->SetFont(FF_ARIAL,FS_BOLD,12);
+if (is_file( MBTTF_DIR."ipag.ttf" ))
+	$graph->scale->tableTitle->SetFont(FF_GOTHIC,FS_NORMAL,12);
 $graph->scale->SetTableTitleBackground('#'.$projects[$project_id]['project_color_identifier']);
 $graph->scale->tableTitle->Show(true);
 
@@ -325,9 +328,9 @@
         if($hide_task_groups) $level = 0;
 
         $name = $a['task_name'];
-        if ( $locale_char_set=='utf-8' && function_exists('utf8_decode') ) {
-                $name = utf8_decode($name);
-        }
+        //if ( $locale_char_set=='utf-8' && function_exists("utf8_decode") ) {
+            //$name = utf8_decode($name);
+        //}
         $name = strlen( $name ) > 34 ? dpSubStr( $name, 0, 33 ).'.' : $name ;
         $name = str_repeat(' ', $level).$name;
 		
         $name = str_repeat(' ', $level).$name;
 
@@ -403,7 +406,7 @@
                        $bar  = new MileStone ($row++,array($name, $pname, '',
dpSubStr($s, 0, 10), dpSubStr($s, 0, 10)) , $a['task_start_date'], $s);
                                else
                                        $bar  = new MileStone ($row++,array($na
me, '', dpSubStr($s, 0, 10), dpSubStr($s, 0, 10)) , $a['task_start_date'], $s);
-                $bar->title->SetFont(FF_ARIAL,FS_NORMAL,8);
+                $bar->title->SetFont(FF_GOTHIC,FS_NORMAL, 8);
                 //caption of milestone should be date
                 if ($showLabels=='1') {
                         $caption = $start->format($df);
@@ -460,31 +463,32 @@
 				else
 					$bar = new GanttBar($row++, array($name, $dur, $startdate->format($df), 
$enddate->format($df)), dpSubStr($start, 2, 8), dpSubStr($end, 2, 8), $cap, $a['task_dynamic'] == 1 ? 0.1 : 0.6);
                 $bar->progress->Set(min(($progress/100),1));
-                if (is_file( TTF_DIR.'arialbd.ttf' )) {
-                        $bar->title->SetFont(FF_ARIAL,FS_NORMAL,8);
+                if (is_file( MBTTF_DIR."ipag.ttf" )) {
+                    $bar->title->SetFont(FF_GOTHIC,FS_NORMAL,8);
                 }
             if($a['task_dynamic'] == 1){
-                    if (is_file( TTF_DIR.'arialbd.ttf' )){
-                        $bar->title->SetFont(FF_ARIAL,FS_BOLD, 8);
+                if (is_file( MBTTF_DIR."ipag.ttf" )){
+                    $bar->title->SetFont(FF_GOTHIC,FS_NORMAL, 8);
                 }
-                    $bar->rightMark->Show();
-            $bar->rightMark->SetType(MARK_RIGHTTRIANGLE);
-            $bar->rightMark->SetWidth(3);
-            $bar->rightMark->SetColor('black');
-            $bar->rightMark->SetFillColor('black');
-
-            $bar->leftMark->Show();
-            $bar->leftMark->SetType(MARK_LEFTTRIANGLE);
-            $bar->leftMark->SetWidth(3);
-            $bar->leftMark->SetColor('black');
-            $bar->leftMark->SetFillColor('black');
+                $bar->rightMark->Show();
+                $bar->rightMark->SetType(MARK_RIGHTTRIANGLE);
+                $bar->rightMark->SetWidth(3);
+                $bar->rightMark->SetColor('black');
+                $bar->rightMark->SetFillColor('black');
+
+                $bar->leftMark->Show();
+                $bar->leftMark->SetType(MARK_LEFTTRIANGLE);
+                $bar->leftMark->SetWidth(3);
+                $bar->leftMark->SetColor('black');
+                $bar->leftMark->SetFillColor('black');
 
-            $bar->SetPattern(BAND_SOLID,'black');
+                $bar->SetPattern(BAND_SOLID,'black');
             }
         }
         //adding captions
         $bar->caption = new TextProperty($caption);
         $bar->caption->Align('left','center');
+        $bar->caption->SetFont(FF_GOTHIC,FS_NORMAL);
 
         // show tasks which are both finished and past in (dark)gray
         if ($progress >= 100 && $end_date->isPast() && get_class($bar) == 'ganttbar') {
@@ -515,8 +519,8 @@
 }
 $today = date('y-m-d');
 $vline = new GanttVLine($today, $AppUI->_('Today', UI_OUTPUT_RAW));
-if (is_file( TTF_DIR.'arialbd.ttf' )) {
-        $vline->title->SetFont(FF_ARIAL,FS_BOLD,10);
+if (is_file( MBTTF_DIR."ipag.ttf" )) {
+	$vline->title->SetFont(FF_GOTHIC,FS_NORMAL,12);
 }
 $graph->Add($vline);
 $graph->Stroke();
が、エラー 画像の説明






$ grep -rnl '/usr/share/fonts/ja/TrueType/' dotproject/*
dotproject/lib/jpgraph/src/jpg-config.inc
lib/jpgraph/src/jpg-config.inc を修正
$ diff -u dotproject/lib/jpgraph/src/jpg-config.inc.org dotproject/lib/jpgraph/src/jpg-config.inc
--- dotproject/lib/jpgraph/src/jpg-config.inc.org       2007-03-01 12:54:34.000000000 +0900
+++ dotproject/lib/jpgraph/src/jpg-config.inc   2007-03-01 12:52:48.000000000 +0900
@@ -40,7 +40,7 @@
 // DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
 // DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
 // DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");
-DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");
+DEFINE("MBTTF_DIR","/var/lib/defoma/gs.d/dirs/fonts/");
 
//-------------------------------------------------------------------------
// Cache directory specification for use with CSIM graphs that are
今度は、タスクのページでエラー
Backtrace:
0 /var/www/dotproject/includes/db_adodb.php:61 dprint('/var/www/dotproject/includes/db_adodb.php',61,0,'Error executing: 
 
SELECT 
distinct tasks.task_id, task_parent, task_name, task_start_date, task_end_date, task_dynamic, task_pinned, pin.user_id as pin_user,
task_priority, task_percent_complete, task_duration, task_duration_type, task_project,
task_description, task_owner, task_status, usernames.user_username, usernames.user_id, task_milestone,
assignees.user_username as assignee_username, count(distinct assignees.user_id) as assignee_count, co.contact_first_name, co.contact_last_name,
count(distinct files.file_task) as file_count, tlog.task_log_problem FROM tasks, user_tasks LEFT JOIN projects ON project_id = task_project 
LEFT JOIN users as usernames ON task_owner = usernames.user_id LEFT JOIN user_tasks as ut ON ut.task_id = tasks.task_id 
LEFT JOIN users as assignees ON assignees.user_id = ut.user_id LEFT JOIN contacts as co ON co.contact_id = usernames.user_contact 
LEFT JOIN task_log AS tlog ON tlog.task_log_task = tasks.task_id AND tlog.task_log_problem > \'0\' 
LEFT JOIN files on tasks.task_id = files.file_task 
LEFT JOIN user_task_pin as pin ON tasks.task_id = pin.task_id AND pin.user_id = 2 WHERE project_active <> 0
                                        AND task_project             = projects.project_id
                                        AND user_tasks.user_id       = 2
                                        AND user_tasks.task_id       = tasks.task_id
                                        AND (task_percent_complete    < \'100\' OR task_end_date = \'\')
                                        AND projects.project_active  = \'1\'
                                        AND projects.project_status <> \'4\'
                                        AND projects.project_status <> \'5\'
        AND task_status = \'0\'
GROUP BY task_id
ORDER BY project_id, task_start_date
 
')
1 /var/www/dotproject/modules/tasks/tasks.php:289 db_exec('SELECT 
distinct tasks.task_id, task_parent, task_name, task_start_date, task_end_date, task_dynamic, task_pinned, pin.user_id as pin_user,
task_priority, task_percent_complete, task_duration, task_duration_type, task_project,
task_description, task_owner, task_status, usernames.user_username, usernames.user_id, task_milestone,
assignees.user_username as assignee_username, count(distinct assignees.user_id) as assignee_count, co.contact_first_name, co.contact_last_name,
count(distinct files.file_task) as file_count, tlog.task_log_problem FROM tasks, user_tasks LEFT JOIN projects ON project_id = task_project 
LEFT JOIN users as usernames ON task_owner = usernames.user_id LEFT JOIN user_tasks as ut ON ut.task_id = tasks.task_id 
LEFT JOIN users as assignees ON assignees.user_id = ut.user_id LEFT JOIN contacts as co ON co.contact_id = usernames.user_contact 
LEFT JOIN task_log AS tlog ON tlog.task_log_task = tasks.task_id AND tlog.task_log_problem > \'0\' 
LEFT JOIN files on tasks.task_id = files.file_task 
LEFT JOIN user_task_pin as pin ON tasks.task_id = pin.task_id AND pin.user_id = 2 WHERE project_active <> 0
                                        AND task_project             = projects.project_id
                                        AND user_tasks.user_id       = 2
                                        AND user_tasks.task_id       = tasks.task_id
                                        AND (task_percent_complete    < \'100\' OR task_end_date = \'\')
                                        AND projects.project_active  = \'1\'
                                        AND projects.project_status <> \'4\'
                                        AND projects.project_status <> \'5\'
        AND task_status = \'0\'
GROUP BY task_id
ORDER BY project_id, task_start_date')
2 /var/www/dotproject/modules/tasks/index.php:115 include('/var/www/dotproject/modules/tasks/tasks.php')
3 /var/www/dotproject/index.php:311 require('/var/www/dotproject/modules/tasks/index.php')
Unknown column 'task_project' in 'on clause'
Unknown column 'task_project' in 'on clause' - dotProject Forumsを参考に、modules/tasks/tasks.php を以下のように修正。
$ diff -u dotproject/modules/tasks/tasks.php.org dotproject/modules/tasks/tasks.php
--- dotproject/modules/tasks/tasks.php.org      2007-03-01 14:11:32.000000000 +0900
+++ dotproject/modules/tasks/tasks.php  2007-03-01 14:53:00.000000000 +0900
@@ -141,7 +141,7 @@
 assignees.user_username as assignee_username, count(distinct assignees.user_id) as assignee_count, co.contact_first_name, co.contact_last_name,
 count(distinct files.file_task) as file_count, tlog.task_log_problem";
 
-$from = "tasks";
+//$from = "tasks";
 $mods = $AppUI->getActiveModules();
 if (!empty($mods['history']) && !getDenyRead('history'))
 {
@@ -170,11 +170,12 @@
 
 switch ($f) {
         case 'all':
+                $from = "tasks";
                 break;
         case 'myfinished7days':
                 $where .= " AND user_tasks.user_id = $user_id";
         case 'allfinished7days':        // patch 2.12.04 tasks finished in the last 7 days
-                $from .= ", user_tasks";
+                $from .= "user_tasks, tasks";
                 $where .= "
                         AND task_project             = projects.project_id
                         AND user_tasks.task_id       = tasks.task_id
@@ -195,7 +196,7 @@
                 $where .= "\n        AND project_company = $AppUI->user_company";
                 break;
         case 'myunfinished':
-                $from .= ", user_tasks";
+                $from .= "user_tasks, tasks";
                 // This filter checks all tasks that are not already in 100%
                 // and the project is not on hold nor completed
                 // patch 2.12.04 finish date required to be consider finish
@@ -227,7 +228,7 @@
                 $where .= " AND task_owner = '$user_id'";
                 break;
         default:
-                $from .= ", user_tasks";
+                $from .= "user_tasks, tasks";
                 $where .= "
         AND task_project = projects.project_id
         AND user_tasks.user_id = $user_id
これでとりあえず落ち着いたっぽい…。

_ [dotProject][Know-How][OpenSource][Software] dotProject 修正

名前が [名], [姓] と英語での順番なので、修正。 contact_last_name と contact_first_name の順番だけを変えれば良い。 とりあえず、以下のファイルを修正
  • modules/admin/vw_usr.php
  • modules/companies/addedit.php
  • classes/permissions.class.php
modules/admin/vw_usr.php
$ diff -u modules/admin/vw_usr.php.org modules/admin/vw_usr.php
--- modules/admin/vw_usr.php.org        2007-03-01 15:39:27.000000000 +0900
+++ modules/admin/vw_usr.php    2007-03-01 13:24:23.000000000 +0900
@@ -88,7 +88,7 @@
                <a href="mailto:<?php echo $row["contact_email"];?>"><img 
src="images/obj/email.gif" width="16" height="16" border="0" alt="email"></a>
 <?php
 if ($row['contact_last_name'] && $row['contact_first_name'])
-        echo $row["contact_last_name"].', '.$row["contact_first_name"];
+        echo $row["contact_first_name"].' '.$row["contact_last_name"];
 else
         echo '<span style="font-style: italic">unknown</span>';
 ?>
modules/companies/addedit.php
$ diff -u modules/companies/addedit.php.org modules/companies/addedit.php
--- modules/companies/addedit.php.org   2007-03-01 15:48:25.000000000 +0900
+++ modules/companies/addedit.php       2007-03-01 14:34:25.000000000 +0900
@@ -41,7 +41,7 @@
 $q->addTable('users','u');
 $q->addTable('contacts','con');
 $q->addQuery('user_id');
-$q->addQuery('CONCAT_WS(", ",contact_last_name,contact_first_name)');
+$q->addQuery('CONCAT_WS(" ",contact_first_name,contact_last_name)');
 $q->addOrder('contact_last_name');
 $q->addWhere('u.user_contact = con.contact_id');
 $owners = $q->loadHashList();
classes/permissions.class.php
$ diff -u classes/permissions.class.php.org classes/permissions.class.php
--- classes/permissions.class.php.org   2007-03-01 15:53:17.000000000 +0900
+++ classes/permissions.class.php       2007-03-01 14:44:14.000000000 +0900
@@ -208,7 +208,7 @@
     $canViewUsers = $this->checkModule('users', 'view');
     $q  = new DBQuery;
     $q->addTable('users');
-    $q->addQuery('user_id, concat_ws(", ", contact_last_name, contact_first_name) as contact_name');
+    $q->addQuery('user_id, concat_ws(" ", contact_first_name, contact_last_name) as contact_name');
     $q->addJoin('contacts', 'con', 'contact_id = user_contact');
     $q->addOrder('contact_last_name');
     $res = $q->exec();
本日のツッコミ(全2件) [ツッコミを入れる]
┌(`Д´)ノ)゜∀゜) captain (2007-06-17 11:33)

xR5Ca6Ap86cZ9pv Diet Drug Phentermine http://christ77.power-emergency.com

┌(`Д´)ノ)゜∀゜) 通りすがり (2007-07-26 11:00)

以下の方法でもエラーはでなくなるようです。<br>http://www.dotproject.net/vbulletin/archive/index.php?t-5292.html<br><br># diff modules/tasks/tasks.php.orig modules/tasks/tasks.php<br>282c282<br>< $tsql = "SELECT $select FROM $from $join WHERE $where" .<br>---<br>> $tsql = "SELECT $select FROM ($from) $join WHERE $where" .<br><br>こっちは「ユーザ毎のタスク」を選択した場合のSQLエラー解消方法です。<br><br> diff -p modules/tasks/tasks.class.php.orig modules/tasks/tasks.class.php<br>*** modules/tasks/tasks.class.php.orig 2007-07-26 10:44:11.000000000 +0900<br>--- modules/tasks/tasks.class.php 2007-07-26 10:43:30.000000000 +0900<br>*************** class CTask extends CDpObject {<br>*** 1346,1352 ****<br> <br> function getAssignedUsers(){<br> $sql = "select u.*, ut.perc_assignment, ut.user_task_priority, co.contact_last_name<br>! from users as u, user_tasks as ut<br> LEFT JOIN contacts as co ON co.contact_id = u.user_contact<br> where ut.task_id = '$this->task_id'<br> and ut.user_id = u.user_id";<br>--- 1346,1352 ----<br> <br> function getAssignedUsers(){<br> $sql = "select u.*, ut.perc_assignment, ut.user_task_priority, co.contact_last_name<br>! from (users as u, user_tasks as ut)<br> LEFT JOIN contacts as co ON co.contact_id = u.user_contact<br> where ut.task_id = '$this->task_id'<br> and ut.user_id = u.user_id";

[]