ํฐ์ผ ๋ชฉ๋ก(์ด๋ฆผ, ๋ซํ, ์์ , ๊ฒ์)์์ "๋ด๋ณด๋ด๊ธฐ"๋ฅผ ํด๋ฆญํ๋ฉด ์์ฑ๋ CSV์๋ ์ฒ์ ๋ ์ค๋ง ํฌํจ๋ฉ๋๋ค.
์ด๋ ๊ฒ์ ๊ฒฐ๊ณผ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ํ์น ๋ก๊ทธ๋ ๋ค์์ ๋ณด์ฌ์ค๋๋ค.
PHP ๊ฒฝ๊ณ : mysqli_result::close(): 3076ํ์ /site_1.10.rc3/include/class.orm.php์์ mysqli_result๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ฐธ์กฐ: http://---------- --------/scp/tickets.php
osTicket 1.10.rc3
์ผํ ์ค 6.8 64b
MySQL 5.1
PHP 5.6
๊ฐ์ฌํฉ๋๋ค.
"์ฒ์ ๋ ์ค๋ง ํฌํจ"์ผ๋ก @sistemasad๋ ์ค์ ๋ก ์ฒ์ ์ธ(3)๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ด ํ
์คํธ ์ค์น์์ ๋์ผํ ๋์์ ๋ด
๋๋ค.
1.10rc3
Win2012 R2(IIS8.5 ํฌํจ)
PHP 5.6
์๋ ํ์ธ์ ์ ๋ ๊ฐ์ ๋ฌธ์ ๋ก ํ์ธํฉ๋๋ค.
osTicket 1.10.rc3
์ผํ ์ค 6.8 64b
mysql 5.5.50-cl, libmysql - 5.1.73
PHP 5.6
์๋
ํ์ธ์,
๋๋ ์ด๊ฒ์ ๋ช ๋ถ์ ๋ณด๋๋ค.
class.export.php ํ์ผ, ํจ์ dumpTickets์์ ๋ง์ง๋ง ๋ช
๋ น์ self::dumpQuery ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐํ์
๋๋ค.
dumpQuery๊ฐ ํ์ฉํ๋ ๋ง์ง๋ง ๋งค๊ฐ๋ณ์๋ "$options=array"์
๋๋ค. null๋ก ์ค์ ํ๋ฉด ํฐ์ผ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ด๋ณด๋ด์ง๋๋ค. (๋ค๋ฅธ ์ธ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ sql, headers ๋ฐ "csv"์
๋๋ค)
๋ฌธ์ ๋ ์ด ์ค(๋ค ๋ฒ์งธ ๋งค๊ฐ๋ณ์)์ ์ํด ์์ฑ๋ ์ต์ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
array('modify' => function(&$record, $keys) use ($fields) {
foreach($k=>$f๋ก $fields) {
if (($i = array_search($k, $keys)) !== ๊ฑฐ์ง) {
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
์์ฝ $ ๋ ์ฝ๋
$ ๋ ์ฝ๋ ๋ฐํ;
๋์์ฃผ์ธ์, ๋ด ๋ฌธ์ ๋ ๋์ผํฉ๋๋ค
๊ฒฝ๊ณ : mysqli_result::close(): mysqli_result๋ฅผ ................./include/class.orm.php ๋ผ์ธ 3089 ์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค .
๊ฒฝ๊ณ : mysqli_result::close(): mysqli_result๋ฅผ ................./include/class.orm.php ๋ผ์ธ 3089 ์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค .
thuc960,
๋ด๊ฐ ํ ๊ฒ์ function function dumpTickets($sql, $how='csv') ๋ด๋ถ์ 85๋ฒ์งธ ์ค์ ๋ํด class.export.php ํ์ผ์์ ์ด ๋ฐํ ํธ์ถ์ ๋ณ๊ฒฝํ ๊ฒ์
๋๋ค.
_return self::dumpQuery($tickets,
์ ๋ ฌ(
'๋ฒํธ' => __('ํฐ์ผ ๋ฒํธ'),
'๋ง๋ ' => ('๋ง๋ ๋ ์ง'),'cdata.subject' => __('์ ๋ชฉ'),'user.name' => __('๋ณด๋ธ์ฌ๋'),'user.default_email.address' => __('์ด๋ฉ์ผ์์'),'cdata.:priority.priority_desc' => __('์ฐ์ ์์'),'๋ถ์::getLocalName' => __('๋ถ์'),'์ฃผ์ ::getName' => __('๋์๋ง ์ฃผ์ '),'์์ค' => __('์์ค'),'์ํ::getName' => ('ํ์ฌ ์ํ'),
'lastupdate' => __('์ต์ข
์
๋ฐ์ดํธ'),
'est_duedate' => __('๋ง๊ฐ์ผ'),
'์ฐ์ฒด' => __('์ฐ์ฒด'),
'๋ต๋ณ' => __('๋ต๋ณ'),
'์ง์::getName' => __('์์ด์ ํธ ํ ๋น'),
'ํ::getName' => __('ํ ์ง์ '),
'thread_count' => __('์ค๋ ๋ ์'),
'attachment_count' => __('์ฒจ๋ถ ํ์ผ ๊ฐ์'),
) + $cdata,
$์ด๋ป๊ฒ,
array('modify' => function(&$record, $keys) use ($fields) {
foreach($k=>$f๋ก $fields) {
if (($i = array_search($k, $keys)) !== ๊ฑฐ์ง) {
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
์์ฝ $ ๋ ์ฝ๋
$ ๋ ์ฝ๋ ๋ฐํ;
})
);_
์ด๊ฒ์ผ๋ก ($how ๋ค์ ๋ง์ง๋ง ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ฑฐํ์ญ์์ค):
_return self::dumpQuery($tickets,
์ ๋ ฌ(
'๋ฒํธ' => __('ํฐ์ผ ๋ฒํธ'),
'๋ง๋ ' => ('๋ง๋ ๋ ์ง'),'cdata.subject' => __('์ ๋ชฉ'),'user.name' => __('๋ณด๋ธ์ฌ๋'),'user.default_email.address' => __('์ด๋ฉ์ผ์์'),'cdata.:priority.priority_desc' => __('์ฐ์ ์์'),'๋ถ์::getLocalName' => __('๋ถ์'),'์ฃผ์ ::getName' => __('๋์๋ง ์ฃผ์ '),'์์ค' => __('์์ค'),'์ํ::getName' => ('ํ์ฌ ์ํ'),
'lastupdate' => __('์ต์ข
์
๋ฐ์ดํธ'),
'est_duedate' => __('๋ง๊ฐ์ผ'),
'์ฐ์ฒด' => __('์ฐ์ฒด'),
'๋ต๋ณ' => __('๋ต๋ณ'),
'์ง์::getName' => __('์์ด์ ํธ ํ ๋น'),
'ํ::getName' => __('ํ ์ง์ '),
'thread_count' => __('์ค๋ ๋ ์'),
'attachment_count' => __('์ฒจ๋ถ ํ์ผ ๊ฐ์'),
) + $cdata,
$์ด๋ป๊ฒ,
์๋
);_
๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์๋ํ๋ ์ด์ ๋ ํ์คํ์ง ์์ต๋๋ค ;-)
๋ฌธ์ ์ธ์ฌ.
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ด๋ณด๋ด๊ธฐ์๋ 2์ฅ์ ํฐ์ผ๋ง ์์ต๋๋ค.
์ด๋ฏธ RC3์ RC2์ ์์๊ณ ์ง๊ธ์ ๋ง๊ตฌ๊ฐ์?!
@JediKev @protich
v1.10(901e5ea) ํ
์คํธ ์๋ฒ์์ ์ด ๋ณด๊ณ ์๋ฅผ ํ์ธํ์ต๋๋ค.
์์ ์์ ์ฌํญ์ ์๋ํ๊ณ ๋ ๋ง์ด ๋ด๋ณด๋ด์ง๋ง ์ฌ์ ํ ๋ก๊ทธ์ PHP ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
[04-Nov-2016 14:49:25 UTC] PHP ๊ฒฝ๊ณ : mysqli_result::free(): 185ํ์ \support.110\include\mysqli.php์์ mysqli_result๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
๋ด ์๊ฐ์ ์ด๊ฒ์ @greezybacon ์ด mysli ๋ฐ ORM์์ DB์ ์ก์ธ์คํ๊ธฐ ์ํด ์์ค ๋ณ๊ฒฝ์ ์ค๋จํ ๊ฒ์ ๋๋ค.
@sistemasad๊ฐ ๊ถ์ฅํ๋ ๊ฒ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ํจ์นํ์ผ๋ฉฐ ๋ณด๊ณ ์๋ฅผ ๋ด๋ณด๋ผ ์ ์์ง๋ง ์ด๋ ๊ฒ ํ๋ฉด ๋ด ์ฌ์ฉ์ ์ง์ "์์น" ๋๋กญ๋ค์ด ํ๋๊ฐ ๋๋ก๋ ์ซ์ ํํ์, ๋๋ก๋ ์ซ์(์ผํ) ์์น๋ฅผ
1.10 ์ต์ข ๋ฆด๋ฆฌ์ค์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ ์๋ ํจ์น๋ก ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ์ ๋ฌธ์ , ๊ฐ์ฌํฉ๋๋ค @rayfosss
์์ ์์ ์ฌํญ์ ์๋ํ์ง๋ง ์ฌ์ ํ ๋ก๊ทธ์ PHP ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
PHP ๊ฒฝ๊ณ : mysqli_result::free(): \์์ mysqli_result๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
free() ํจ์(185ํ์ mysqli.php)๋ฅผ ์ฃผ์ ์ฒ๋ฆฌ๋ ํ์ผ๋ก ํธ์ถํ๋ฉด ๋ด๋ณด๋ด๊ธฐ๊ฐ ์๋ํฉ๋๋ค.
+1 ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@HansLe - ๋ช ํํ ํ ์ ์์ต๋๊น? ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ จ๋์? ์ด๋ป๊ฒ ๊ทธ๋ฆฌ๊ณ ์ด๋์ free() ํจ์๋ฅผ ํธ์ถํ์ต๋๊น?
@tdefreest , ๋ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ๋๋ ์ด ์ค(185๋ฒ)์ ์ฃผ์์ ๋ฌ์๋ค.
// $__db->unbuffered_result->free();
๋ชจ๋ include\mssqli.php์์
@sistemasad ๊ถ์ฅ ์ฌํญ์ ๋ฐ๋ผ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
@sistemasad ์ ์๋ฃจ์ ์ ๋ฐ๋ผ ๋ผ์ธ์ ์ฃผ์์
@demenna์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด์ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ซ์๋ก ๋ด๋ณด๋ ๋๋ค.
์ด์ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ซ์๋ก ๋ด๋ณด๋ ๋๋ค.
@sistemasad ๊ฐ ์ฃผ์ ์ฒ๋ฆฌํ ์ฝ๋๋ ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ์ญํ ์ ํฉ๋๋ค. ์ด ์ฝ๋์ ์ด๋๊ฐ์ ์๋ ๋ฒ๊ทธ๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ฝ๋๋ฅผ ์ฃผ์ ์ฒ๋ฆฌํ๋ฉด ๋ฒ๊ทธ๊ฐ ๋ฐฉ์ง๋์ง๋ง ํ์ ์ง์ ๋ ผ๋ฆฌ๋ ๋นํ์ฑํ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ซ์๋ก ๋ด๋ณด๋ด๋ ์ด์ ์ ๋๋ค.
@HansLe ์ ์ถ๊ฐ์ ๋ํ ๋์ ์ดํด๋ ์ฒซ ๋ฒ์งธ ์์ ์ด ๋ชจ๋ ์ฌ๋์ ๋ฌธ์ ๋ฅผ ์์ ํ ๋ฐฉ์งํ์ง ๋ชปํ๊ณ ์ถ๊ฐ๋ก ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ ํ๋์ ์ง์ ๋ณธ ์ ์ด ์๋ค.
์ฐ๋ฆฌ์๊ฒ ์ฌ์ ํ ํ์ํ ๊ฒ์ ํฌ๋งทํ ๋ก์ง์ ๋ณด์กดํ๋ ์ง์ ํ ์์ ์ ๋๋ค.
๋ด๋ณด๋ด๊ธฐ๊ฐ ์ ๋๋ก ์๋ํ๊ณ ๋ชจ๋ ํฐ์ผ์ ๋ด๋ณด๋ธ ๋ค์ ๋ด๋ณด๋ด๊ธฐ์ ์ฑ์์ง๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ ๋ชฉ๋ก์ ์ผ๋ถ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ์์ ํฐ์ผ ์ธ๋ถ ์ ๋ณด๋ฅผ ์์ ํ ํ ์ด์ ์ฌ์ฉ์ ์ ์ ํ๋์ ๋ฐ์ดํฐ๊ฐ ์์ง๋ง ์ฒ์ 2๊ฐ๋ง ๊ฐ์ ธ์ต๋๋ค. ์์ถ ๋ผ์ธ. ์ง๊ธ๊น์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ทจ์ํ๋ ๋ฐ ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ํ์คํ ์ ์ ํ ํด๊ฒฐ์ด ํ์ํ ์ผ์ด ์งํ๋๊ณ ์์ผ๋ฉฐ ์์ ๋ด์ฉ์ ํด๊ฒฐ์ด ์๋๋ฉฐ ์ ์ ํ ํด๊ฒฐ์ด ํ์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ์ฌ๋ฌ ์ฅ์ ํฐ์ผ์ผ๋ก ์กฐ๊ธ ํค๋งค์ ์ฃ์กํฉ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ ์ด๋ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ด๋ณด๋ด๋ ค๋ ๊ฒฝ์ฐ์๋ ์์ง ์์ ํ ์๋ฃจ์ ์ด ์์ต๋๋ค. ์ ๋๋ก ๋ด๋ณด๋ด์ง ์์๋ ๊ด์ฐฎ๋ค๋ฉด 10์ 26์ผ ๋๊ธ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ ์๋ ค์ค ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ๋์์ด๋๋์ง ํ์คํ์ง ์์ง๋ง ๋์ผํ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ class.export.php ํ์ผ์์ 54 ์ฃผ๋ณ์ ์ฌ์ฉ์ ์ ์ ์ด์ ํธ์ถํ๋ ์ฝ๋๋ก ์ธํด ์ ์ ์ผ๋ก ๋ฐ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ์ด ์ค๋ ๋์ ๋ค๋ฅธ ์๋ฃจ์ ์ ์๋ํ์ง ์์์ผ๋ฉฐ ์ ์ฒด ํ์ด์ง๊ฐ ๋ก๋๋์ง ์๋๋ก ํฉ๋๋ค(์ ๋ฅผ ์ํด).
// $sql ๋ฌธ์ ์ฌ์ฉ์ ์ ์ ํ๋ ์ถ๊ฐ
$cdata = $fields = array();
foreach (TicketForm::getInstance()->getFields() as $f) {
// ํต์ฌ ํ๋ ๋ฌด์
if (in_array($f->get('์ด๋ฆ'), ๋ฐฐ์ด('์ฐ์ ์์')))
๊ณ์ํ๋ค;
// ๋ฐ์ดํฐ๊ฐ ์๋ ํ๋ ๋ฌด์
elseif (!$f->hasData() || $f->isPresentationOnly())
๊ณ์ํ๋ค;
$name = $f->get('name') ?: 'field_'.$f->get('id');
$key = 'cdata.'.$name;
$fields[$key] = $f;
$cdata[$key] = $f->getLocal('label');
์ด ์ฝ๋์ ๋ง์ง๋ง ์น์ ์ ์ฃผ์ ์ฒ๋ฆฌํ๋ฉด ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ ์์ ์ผ๋ก ์๋ํ์ง๋ง ์ฌ์ฉ์ ์ ์ ํ๋๋ ์ ์ธ๋ฉ๋๋ค. ์ฐ์ ์์ ์ด์ ๋ ๋ฒ ํธ์ถํ๋ ๊ฒ ์ธ์๋ ์ ํ ์ฑ๊ณตํ์ง ๋ชปํ ์ฑ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ์๋ํ์ต๋๋ค(์ฌ์ฉ์ ์ ์ ํ๋ ์ด์ด ์์ด์ผ ํ๋ ์์น ๋์ ).
์๋ง๋ ์ด ์ ๋ณด๋ ๊ฒฝํ์ด ๋ ๋ง์ ์ฌ๋์ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ์ ํํ ์ง์ ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋๊ตฌ๋ ์ง ๋์๊ฒ ํผ๋๋ฐฑ/์ ์์ ์ค ์ ์๋ค๋ฉด ์์ ๋กญ๊ฒ ๋๋ผ์ญ์์ค.
์ด ๋์์ ๋ชจ๋ ์ ๋ฌธ๊ฐ๋ฅผ ์์งํ์ง๋ง ์ฌ์ฉ์ ์ ์ ํ๋๊ฐ ์์ผ๋ฉด ์ข์ง ์์ต๋๋ค :(
@protich @JediKev
์ด๊ฒ์ด ์กฐ์ฌ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ฌ์ ํ ์ฌ์ฉ์ ์ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค. ์๋ v 1.9์์ v 1.10์ผ๋ก ์
๊ทธ๋ ์ด๋ํ ํ ๋ฐ์: ๋ ํญ๋ชฉ๋ง ๋ด๋ณด๋ธ ํ csv๋ก์ ํฐ์ผ ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ค์ง๋ฉ๋๋ค(ํ์ผ์ ์ฌ์ ํ โโ์์ฑ๋จ). ์ด ์ค๋ ๋์ ์์ ์ฌํญ์ ์ฌ์ฉ์ ์ ์ ํ๋๊ฐ ํค-๊ฐ ์์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ์ ๋ณด๋ฅผ ์ฐ๊ฒฐํ๋ ์๋ ์์
์ ์ ๋ฐํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ต๊ทผ์ v 1.10.1 ๋ฆด๋ฆฌ์ค์์๋ ๋ฐ์ํฉ๋๋ค. ๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์.
์ฌ๊ธฐ์์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
osTicket ๋ฒ์ | v1.10.1(9ae093d) โ ์ต์
์น ์๋ฒ ์ํํธ์จ์ด | Apache/2.4.6(CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16
MySQL ๋ฒ์ | 5.5.52
PHP ๋ฒ์ | 5.4.16
์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก์ด ์์ต๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก ๊ฐ ์ค ํ๋๋ก ํฐ์ผ์ ๊ฒ์ํ๋ฉด ๋ชจ๋ CSV์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๋ ฅ๋์ง๋ง, ์ด ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก์์ ํญ๋ชฉ์ ๊ฒ์ํ์ง ์์ผ๋ฉด ๋ ๊ฐ์ ํ๋ง ์ถ๋ ฅ๋ฉ๋๋ค. CSV.
์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ ๊ฑฐํ๋ ์์ ์ผ๋ก ๋ชจ๋ ํ์ด ์ถ๋ ฅ๋์ง๋ง CSV์ ์ฌ์ฉ์ ์ ์ ๋ชฉ๋ก์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์์ ๋ด๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์์ผ๋ฏ๋ก ๋ ๋ง์ ์ ์์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ ์์ค.
์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ณ ์์ต๋๋ค. ์๊ตฌ์ ์ผ๋ก ์์ ํ ๋๊น์ง include/class.export.php
์์ 63 ํ์ ์ฃผ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
->options(QuerySet::OPT_NOCACHE)
...๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ค์ ๋ด๋ณด๋ด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์.
์ด ์๋ฃจ์ ๋๋ถ์ ์ด์ ๋ชจ๋ ํฐ์ผ์ด ํ์๋์ง๋ง ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก ํ๋์ ์ฒซ ๋ฒ์งธ ๋ชฉ๋ก ํญ๋ชฉ๋ง ํ์๋์ง๋ง ๋ค๋ฅธ ํญ๋ชฉ์ ํ์๋์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก์ '์ฌ๊ณผ'์ '๋ฐฐ'๊ฐ ์์ด์ผ ํ๋ ๊ฒฝ์ฐ ๊ทธ ํฐ์ผ์ '์ฌ๊ณผ'๋ง ๋ณด์ฌ์ค ๊ฒ์ ๋๋ค.
์ ์์ค.
๊ธ์, ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง๋ค์์ต๋๋ค... ์๋ง๋ ์ฐ๋ฆฌ๊ฐ ์ข์ํ๋ ๋งํผ ๊นจ๋ํ์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค.
์ด๊ฒ์ ์ ์ฒด dumptickets ๊ธฐ๋ฅ์ ๋๋ค(ํด๊ฒฐ ๋ฐฉ๋ฒ์ 83ํ์์ ์์๋จ)
static function dumpTickets($sql, $how='csv') {
// Add custom fields to the $sql statement
$cdata = $fields = array();
foreach (TicketForm::getInstance()->getFields() as $f) {
// Ignore core fields
if (in_array($f->get('name'), array('priority')))
continue;
// Ignore non-data fields
elseif (!$f->hasData() || $f->isPresentationOnly())
continue;
$name = $f->get('name') ?: 'field_'.$f->get('id');
$key = 'cdata.'.$name;
$fields[$key] = $f;
$cdata[$key] = $f->getLocal('label');
}
// Reset the $sql query
$tickets = $sql->models()
->select_related('user', 'user__default_email', 'dept', 'staff',
'team', 'staff', 'cdata', 'topic', 'status', 'cdata__:priority')
->options(QuerySet::OPT_NOCACHE)
->annotate(array(
'collab_count' => TicketThread::objects()
->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
->aggregate(array('count' => SqlAggregate::COUNT('collaborators__id'))),
'attachment_count' => TicketThread::objects()
->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
->filter(array('entries__attachments__inline' => 0))
->aggregate(array('count' => SqlAggregate::COUNT('entries__attachments__id'))),
'thread_count' => TicketThread::objects()
->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
->exclude(array('entries__flags__hasbit' => ThreadEntry::FLAG_HIDDEN))
->aggregate(array('count' => SqlAggregate::COUNT('entries__id'))),
));
// Fetch staff information
// FIXME: Adjust Staff model so it doesn't do extra queries
foreach (Staff::objects() as $S)
$S->get('junk');
//custom list
$sql = 'SELECT type, name FROM ost_form_field WHERE type like "list%" '; //fields
$query = db_query($sql);
$type_lists = array();
while($row = mysqli_fetch_assoc($query)){
$type_lists[] = $row;
}
$list = array();
foreach($type_lists as $type_list){
$list_id = intval(substr($type_list['type'], 5));
$sql = 'SELECT id, value FROM ost_list_items WHERE list_id = '.$list_id; //list elements
$query = db_query($sql);
while($row = mysqli_fetch_assoc($query)){
$list[$type_list['name']][$row['id']] = $row['value'];
}
}
$cambio = array('modify' => function(&$record, $keys) use ($fields, $list) {
$fields_array = array();
foreach($keys as $key => $row){
if(strpos($row, 'cdata.') === 0){
$fields_array[$key] = substr($row, 6);
if(isset($list[$fields_array[$key]]))
$fields_list[] = $key;
}
}
foreach ($fields as $k=>$f) {
if (($i = array_search($k, $keys)) !== false) {
if(in_array($i, $fields_list)){
$record[$i] = $list[$fields_array[$i]][intval($record[$i])];
}else{
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
}
return $record;
});
๋๋ ์ด๊ฒ์ด ๋ค๋ฅธ ๋๊ตฐ๊ฐ๋ฅผ ์ํด ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค .....
Razarate์ ์๋ฃจ์ ์ ์ฝ๊ฐ์ ์์ ์ผ๋ก ์ ์๊ฒ ๋งค๋ ฅ์ฒ๋ผ ์๋ํ์ต๋๋ค. ๋๋ razarate๊ฐ ์์ ๋ dumptickets ๊ธฐ๋ฅ์ ๋ค์ ํ์ ๋ถ๋ถ์ ํฌํจํ๋ ๊ฒ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค:
return self::dumpQuery($tickets,
array(
'number' => __('Ticket Number'),
'created' => __('Date Created'),
'cdata.subject' => __('Subject'),
'user.name' => __('From'),
'user.default_email.address' => __('From Email'),
'cdata.:priority.priority_desc' => __('Priority'),
'dept::getLocalName' => __('Department'),
'topic::getName' => __('Help Topic'),
'source' => __('Source'),
'status::getName' =>__('Current Status'),
'lastupdate' => __('Last Updated'),
'est_duedate' => __('Due Date'),
'isoverdue' => __('Overdue'),
'isanswered' => __('Answered'),
'staff::getName' => __('Agent Assigned'),
'team::getName' => __('Team Assigned'),
'thread_count' => __('Thread Count'),
'attachment_count' => __('Attachment Count'),
) + $cdata,
$how,
$cambio
);
์๋ ํ์ธ์, v1.10.1์์ ์ธ์ ์์ ๋ ๊ฒ์ธ์ง์ ๋ํ ์์์ด ์์ต๋๊น?
1.10.1์ ์ด๋ฏธ ๋์๊ณ ... ๊ทธ๋์ 1.10.1์์ ์์ ๋์ง ์์ต๋๋ค.
1.11์ด ์ถ์๋๋ฉด ์์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋
ํ์ญ๋๊น,
@ntzier ์์ ํ class.export.php๋ฅผ ์ฐพ์ ์ ์์ต๋๊น?
๊ฐ์ฌํฉ๋๋ค!
@elma1003 ์?
๋๊ธ๋ก 1.10 ํจ์นํ์ต๋๋ค
//->options(QuerySet::OPT_NOCACHE)
์ด ํ ๋ด๋ณด๋ด๊ธฐ๊ฐ ์ ์๋ํ์ต๋๋ค.
์ด์ v1.10.1(9ae093d)์ ์ค์นํ์ต๋๋ค.
๋ด๋ณด๋ด๊ธฐ๋ ์๋๊ณ 3์ค๋ง ๋์ต๋๋ค.
ํจ์น๋ฅผ ํ๋ ค๊ณ ํ๋๋ฐ ์ ์๋๋ค์
https://github.com/osTicket/osTicket/releases/tag/v1.10.2 ์์ 1.10.2๋ฅผ ๋ค์ด๋ก๋ํ์ต๋๋ค.
ํ์ง๋ง class.export.php๋ 1.10๊ณผ ๋์ผํฉ๋๋ค.
๋์์ฃผ์ธ์....
@elma1003 Razarate์ ์๋ฃจ์ ์ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
@elma1003 @kclubok
์ด์ ๋ํ ์์ ์ฌํญ์ ๊ณง ์ถ์๋ v1.11.0rc-1 ๋ฒ์ ์ ํฌํจ๋์ด ์์ต๋๋ค.
@elma1003
๋ฐฉ๊ธ v1.10.1 ์ธ์คํด์ค์์ ํด๋น ์ค์ ์ฃผ์ ์ฒ๋ฆฌํ์ฌ ๋ชจ๋ ํฐ์ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ด๋ณด๋ด๊ณ ์์ผ๋ฏ๋ก ์ธ์คํด์ค์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์ธํ์ญ์์ค.
๊ฑด๋ฐฐ.
์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ํฌํจํ์ฌ ๋ด๋ณด๋ด๊ธฐ๊ฐ ์๋ํ๋๋ก ํ ์ฌ๋์ด ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ ์์๋ผ ์ ์๋ ๊ฒ ๊ฐ๋ค.
kclubok์ ํผ๋๋ฐฑ์ ํฌํจํ์ฌ razarate์ ์๋ฃจ์ ์ ์๋ํ๊ณ class.export.php ํ์ผ์ 1.11.x ๋ฒ์ ์ ์๋ํ์ง๋ง ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ํฌํจํ์ง ์์ต๋๋ค.
์๋ง๋ ๊ด๋ฆฌํ๋ ์น์ ํ ์ํผ์ด ์์ ๋ class.export.php ํ์ผ์ ์ฌ๊ธฐ์ ๊ฒ์ํ ์ ์์๊น์?
์ด ๊ณ ์ ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค. ๊ฐ์๊ธฐ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ๋ฌด์จ ์ผ์ด ์ผ์ด ๋ฌ๋์ง ํ์คํ์ง ์์ต๋๊น?
@JediKev
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ v.11.0rc-1์ ๋ํ ์ปค๋ฐ์ ์๋ ค ์ฃผ์๊ฒ ์ต๋๊น? ๊ฝค ๋์์ด ๋ ๊ฒ์ ๋๋ค!
์์ ์ฌํญ์ด ๋จ์ํ ํด๋น ์ค์ ์ฃผ์ ์ฒ๋ฆฌํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด ์ฌ์ฉ์ ์ง์ ๋ชฉ๋ก ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅธ ๋์์ด ์์ฑ๋์ง ์์ต๋๋ค.
evertvh์ ์๋ class.export.php ํ์ผ์ ์ฌ์ฉํ์ฌ ์ฌ์ ํ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋์ด๋ ๋ค์ํ ์์ ์ฌํญ์ ์๋ํ์ง๋ง ๊ธฐ์จ์ด ์์ต๋๋ค.
osticket ํฌ๋ผ - http://osticket.com/forum/discussion/92606/customising-ticket-csv- ์ ์์ธํ ์ค๋ช ๋ ๋๋ก ๊ฐ ์ฌ์ฉ์๊ฐ ์ํ "์กฐ์ง"์ ํ์ํ๊ธฐ ์ํด ์ถ๊ฐ ์ด์ด ์ถ๊ฐ๋ ์์ ๋ csv ํ์์ด ์์ต๋๋ค.
@Zixt
๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ์ค์ ๋ก v1.11.0rc-1
์์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค(_๋งค์ฐ_ ๊ณง ์ถ์, ์์์ผ๊น์ง). ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๊ณผ ํจ๊ป ๋ด๋ณด๋ผ ํ๋๋ฅผ ์ฌ์ฉ์ ์ง์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
๊ฑด๋ฐฐ.
์๋์ ๋์ผ๋ธ
์ ์ข์ - ์ข์๋ฐ.
๊ฑด๋ฐฐ.
์๋ ํ์ธ์ @JediKev
์ค์น ์ ์ต์ ๋ฆด๋ฆฌ์ค๋ก ์ ๋ฐ์ดํธํ์ง๋ง ๋๊ธฐ์ด์ ๋ด ์ฌ์์ ๋ง๊ฒ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
๋ฌผ์ด๋ณผ ๊ณณ์ด ์๋๋ผ๋ฉด ์ฃ์กํฉ๋๋ค!
๊ธฐ๋ณธ ๋ฐ์ดํฐ ์์ค๊ฐ "์ฌ์ฉ์/์กฐ์ง/์ด๋ฆ"์ผ๋ก ์ค์ ๋ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ธฐ์ด ํ์ด์ง์ "์กฐ์ง"์ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐํ์ต๋๋ค.
๊ทธ๋ฌ๋ - ๋ด๋ณด๋ด๊ธฐ ํญ์ ์ฌ์ฉ์ ์ ์ ํ๋๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ต์ ์ด ์์ผ๋ฉฐ ๋ฏธ๋ฆฌ ์ ์๋ ํ๋ ํค๋ ์งํฉ์์๋ง ์ ํํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋์น๊ณ ์๋ ๊ฒ์ด ์์ต๋๊น?
@Zixt
์ด๊ฒ์ ๊ทํ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ๋ ๊ณณ์ด ์๋๋๋ค. ์์ ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ ์ ๋ฌธ์ ํ ํ๋ฆฟ์ ์์ฑํฉ๋๋ค. ๊ทธ๋ ๊ฒ ๋งํ๋ฉด์ ๋๋ ๋น์ ์ด ์ต์ํ ๋น ๋ฅธ ๋ต๋ณ์ ์ป์ ์ ์๋๋ก ์๋์ ๋ต๋ณ์ ๊ฒ์ํ ๊ฒ์ ๋๋ค. ๐
_ ๋ฉด์ฑ
์กฐํญ: ๋ค์์ v1.11.0rc-1
์๋ง ์ ์ฉ๋ฉ๋๋ค. _
ํ์ฌ ์ด ๊ธฐ๋ฅ์ 1๋จ๊ณ(๋๋ ๋ฒ์ 1)์๋ง ์๊ณ ์ ํ์ ์ด๋ฏ๋ก ์ฌ์ฉ์ ํ๋, ์กฐ์ง ํ๋ ๋ฑ์ ์ฌ์ฉ์ ์ ์ ๋๊ธฐ์ด ๋ด๋ณด๋ด๊ธฐ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ถ์ผ๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ ์ ๋ ํ์ฅ๋ ๊ฒ์ด๋ผ๊ณ _๋ฏฟ์ต๋๋ค_. ๊ด๋ฆฌ์ ํจ๋ > ์ค์ > ํฐ์ผ > ๋๊ธฐ์ด > ๋๊ธฐ์ด ์ด๋ฆ ํด๋ฆญ > ๋ด๋ณด๋ด๊ธฐ > ๊ธฐํ ํ๋ ์ถ๊ฐ์์ ์ง๊ธ ์ถ๊ฐ/์ฌ์ ๋ ฌํ ์ ์๋ ๋ชจ๋ ํ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
_(์ด์ ์ ๋ต๋ณ์ ์๋ชปํด์ ์ฃ์กํฉ๋๋ค. ์๋ก์ด Exporter์ ์ด๋ฌํ ์ ํ์ ํ๋๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ต์
์ด ์๋ ์ค ์์๋๋ฐ ๊ทธ๋ ์ง ์์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ํ์ง๋ง ์ง๊ธ์ ์ต์ํ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค!)_
์๋ด์ ํจ๋ > ์ฌ์ฉ์ > ์ฌ์ฉ์ ๋๋ ํฐ๋ฆฌ ๋ก ์ด๋ํ๊ณ ํ๋จ์ ๋ด๋ณด๋ด๊ธฐ ๋ฅผ ํด๋ฆญํ์ฌ ์ธ์ ๋ ์ง ์ฌ์ฉ์์ ์กฐ์ง ์ด๋ฆ์ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
๊ฑด๋ฐฐ.
๋์ผํ " 1.10 - ํฐ์ผ ๋ชฉ๋ก ๋ด๋ณด๋ด๊ธฐ๋ 1.10.1์์ ์ ๋ฐ์ดํธํ ํ 1.10.4์์ ๋ ๊ฐ์ ์ฒซ ๋ฒ์งธ ์ค๋ง ์ถ๋ ฅํจ"
์ด๊ฒ์ ๊ทธ๊ฒ์ ๊ดํ ๊ฒ์ผ ์ ์์ต๋๋ค.
[์ ํ A3. staff_id
๊ทธ๋๋ก lock__staff_id
, A1. staff_id
๊ทธ๋๋ก staff_id
, A1. isoverdue
๊ทธ๋๋ก isoverdue
, A1. team_id
๊ทธ๋๋ก team_id
, A1. ticket_id
๊ทธ๋๋ก ticket_id
, A1. number
๊ทธ๋๋ก number
, A4. subject
๊ทธ๋๋ก cdata__subject
, A6. address
๊ทธ๋๋ก user__default_email__address
, A1. source
๊ทธ๋๋ก source
, A7. priority_color
๊ทธ๋๋ก cdata__:priority__priority_color
, A7. priority_desc
๊ทธ๋๋ก cdata__:priority__priority_desc
, A1. status_id
๊ทธ๋๋ก status_id
, A8. name
๊ทธ๋๋ก status__name
, A8. state
๊ทธ๋๋ก status__state
, A1. dept_id
๊ทธ๋๋ก dept_id
, B0. name
๊ทธ๋๋ก dept__name
, A5. name
๊ทธ๋๋ก user__name
, A1. lastupdate
๊ทธ๋๋ก lastupdate
, A1. isanswered
๊ทธ๋๋ก isanswered
, B1. firstname
๊ทธ๋๋ก staff__firstname
, B1. lastname
๊ทธ๋๋ก staff__lastname
, B2. name
AS team__name
, (SELECT COUNT(R0. id
) AS count
FROM ost_thread
Q7 JOIN ost_ticket
Q8 ON (Q7. object_type
= 'T' AND Q7. object_id
= Q8. ticket_id
) LEFT JOIN ost_thread_collaborator
R0 ON (Q7. id
= R0. thread_id
) WHERE Q8. ticket_id
= A1. ticket_id
) AS collab_count, (SELECT COUNT(R1. id
) AS count
FROM ost_thread
Q7 JOIN ost_ticket
Q8 ON (Q7. object_type
= 'T' AND Q7. object_id
= Q8. ticket_id
) LEFT JOIN ost_thread_entry
R0 ON (Q7. id
= R0. thread_id
) LEFT JOIN ost_attachment
R1 ON (R1. type
= 'H' AND R0. id
= R1. object_id
) WHERE Q8. ticket_id
= A1. ticket_id
AND R1. inline
= 0) AS attachment_count, (SELECT COUNT(R0. id
) AS count
FROM ost_thread
Q7 JOIN ost_ticket
Q8 ON (Q7. object_type
= 'T' AND Q7. object_id
= Q8. ticket_id
) LEFT JOIN ost_thread_entry
R0 ON (Q7. id
= R0. thread_id
) WHERE Q8. ticket_id
= A1. ticket_id
AND NOT R0. flags
& 4 != 0) AS thread_count FROM ost_ticket
A1 JOIN (SELECT Q7. ticket_id
FROM ost_ticket
Q7 JOIN ost_ticket_status
Q8 ON (Q7. status_id
= Q8. id
) WHERE Q8. state
state
= '์ด๊ธฐ' AND (Q7. staff_id
= 2 ๋๋ Q7. team_id
IN (1)) ๋๋ Q7. dept_id
IN ('1', '2', '3')) Q7๊น์ง ์ฃผ๋ฌธ. ASC LIMIT 25) A2 LEFT JOIN `ost_lock` A3 ON (A1.`lock_id` = A3.`lock_id` AND A3.`expire` > NOW()) LEFT JOIN `ost_ticket__cdata` A4 ON (A1.`ticket_id` = A4.`ticket_id`) JOIN `ost_user` A5 ON (A1.`user_id` = A5.`id`) LEFT JOIN `ost_user_email` A6 ON (A5.`default_email_id` = A6.`id`) LEFT JOIN `ost_ticket_priority` A7 ON (A4.`priority` = A7.`priority_id`) JOIN `ost_ticket_status` A8 ON (A1.`status_id` = A8.`id`) JOIN `ost_department` B0 ON (A1.`dept_id` = B0.`id`) LEFT JOIN `ost_staff` B1 ON (A1.`staff_id` = B1.`staff_id`) LEFT JOIN `ost_team` B2 ON (A1.`team_id` = B2.`team_id`) WHERE A1.`ticket_id` = A2.`ticket_id` GROUP BY A3.`staff_id`, A1.`staff_id`, A1.`isoverdue`, A1.`team_id`, A1.`ticket_id`, A1.`number`, A4.`subject`, A6.`address`, A1.`source`, A7.`priority_color`, A7.`priority_desc`, A1.`status_id`, A8.`name`, A8.`state`, A1.`dept_id`, B0.`name`, A5.`name`, A1.`lastupdate`, A1.`isanswered`, B1.`firstname`, B1.`lastname`, B2.`name` ORDER BY A1.
ASC]
์ ์ ์๋ ์ด 'Q7.' '์ฃผ๋ฌธ ์กฐํญ'์์
---- ์ญ์ถ์ ----
ํค๋๋ง ์๋ v1.11.0-rc1 ๋ด๋ณด๋ด๊ธฐ.
1.10์ด 1.11rc1๋ก ์ ๊ทธ๋ ์ด๋๋จ
๋์๋ณด๋ ๋ด๋ณด๋ด๊ธฐ ์๋, ํฐ์ผ ๋ด๋ณด๋ด๊ธฐ: http://xxxxxxxx.xxxxxxx.com/helpdesk/scp/tickets.php?a=export&queue=adhoc ,ikDr5jdnAc์์ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
1.10.4์๋ ์ด๋ฏธ ๋์ผํ ๋ฌธ์ ๊ฐ ์๋ ์ด ์ค์ด ์์ต๋๋ค. csv ํค๋์ ๋ ์ค๋ง ์๊ณ ํฐ์ผ ํ๋๊ฐ ์์ต๋๋ค.
osTicket ๋ฒ์ | v1.10.4
PHP ๋ฒ์ | 5.6.37
๊ทํ์ ๊ถ์ฅ ์ฌํญ์ ๊ฒํ ํ์ง๋ง ๋์ผํ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. "๋ซํ" ์ํ์ ํฐ์ผ ๋ณด๊ณ ์๋ฅผ ๋ด๋ณด๋ผ ๋ ํ์ผ์ 1๊ฐ์ ํฐ์ผ๋ง ํ์๋ฉ๋๋ค.
1.10.1์์ ์ผํ๊ณ ์์๋ค
์ง์ง ์ฐจ๋จ๊ธฐ
๋๋ ๋ชจ๋๊ฐ 1.11์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง 1.11 ์์ ํ์ด ๋ค์ ๋ฌ์ ๋์ค์ง ์๋ ํ ์ด ๋ฌธ์ ๋ฅผ ๊ณ ์น ๋จ์๋ฅผ ์ ๊ณตํ์ญ์์ค
@lavdnone ์ด ์ค๋ ๋์์ @JediKev ๊ฐ ๊ฒ์ํ ์์ ์ฌํญ์ 1.10.0๊ณผ 1.10.4 ๋ชจ๋์์ ์๋ํฉ๋๋ค.
https://github.com/osTicket/osTicket/issues/3264#issuecomment -330262555
๊ฐ์ฌํฉ๋๋ค. ์ด๋ป๊ฒ ๋์ณค๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. #3264๊ฐ ์๋ํ์ต๋๋ค.
@lavdnone ๋งค์ฐ ํ์ํฉ๋๋ค. ๋จ์ ํ๋ฃจ ์ ๋ณด๋ด์ธ์! :)
๋ํ ๋ชจ๋ ํฐ์ผ์ด ํ์๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ผ์์ ์์ ์๋ฃจ์
์ ์ฌ์ฉํ๋ฉด ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ฉํ ๋ ํญ์ php ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋๊ตฐ๊ฐ ์์ ์ค์ธ ์์ ํ class.export.php๋ฅผ ๊ฒ์ํ ์ ์์ต๋๊น?
@์ค์นธ์จ
ํ ์ค์ ์ฃผ์ ์ฒ๋ฆฌํ๋ฉด PHP ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๊น? ๋น์ ์ด ์๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ํ ์ค๋ง ์ฃผ์ ์ฒ๋ฆฌํ๋ฉด ์๋ํฉ๋๋ค.
#3264(๋๊ธ)
๊ฑด๋ฐฐ.
์ด ์ค๋ ๋์์ ๊ถ์ฅํ๋ ๋๋ก _include/class.export.php_์์ 58ํ์ ์ฃผ์ ์ฒ๋ฆฌํ์ผ๋ฉฐ ์ด์ ๋ชจ๋ ํฐ์ผ์ .csv ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
//->options(QuerySet::OPT_NOCACHE)
Ubuntu 16์ OSTicket v1.10.4
์ด ์ค๋ ๋์์ ๊ถ์ฅํ๋ ๋๋ก _include/class.export.php_์ 58ํ์ ์ฃผ์ ์ฒ๋ฆฌํ์ต๋๋ค.
์ด์ ๋ชจ๋ ํฐ์ผ์ .csv ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
//->options(QuerySet::OPT_NOCACHE)
์,
๊ทธ๊ฒ์ ๋ํ ์ฝ๋์ ์ผ๋ถ๊ฐ ๋ผ์ธ 63์ด์ง๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จน๋ ๋ด ํ์ผ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค ... ์์ ํฐ์ผ ๋ชฉ๋ก์ ๋ด๋ณด๋ผ ์ ์์ง๋ง ์์ญ๋ง ํฐ์ผ์ด ํฌํจ ๋ ๋ชฉ๋ก์ ๊ฐ์ ธ ๊ฐ๋ฉด ํ์ฐ์ ์ผ๋ก ์ค๋ฅ๋ก ๋๋ฉ๋๋ค. :-(
_PHP ์น๋ช ์ ์ธ ์ค๋ฅ: 3146ํ์ include/class.orm.php์์ ํ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ 536870912๋ฐ์ดํธ๊ฐ ์์ง๋์์ต๋๋ค(32๋ฐ์ดํธ ํ ๋น ์๋)_
์ ํ์ 512MB๋ก ๋ณ๊ฒฝํ์ง๋ง ๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์ค๋จํ๊ณ ์ด์ ์ ํ์ ๋ณต์ํ์ต๋๋ค.
์ฃผ์: @JediKev๊ฐ ๊ฒ์ํ ๋ค๋ฅธ ์์ ์ฌํญ๋ ์๋ํ์ง๋ง ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ชฉ๋ก์ด ํฌ๋ฉด ๋๋ฌด ๋ง์ ๋จ์ด ํ์ํฉ๋๋ค.
73์ด,
์๋ฅดํฌ๋ก.
@iw0der
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ํฐ์ผ ๋ด๋ณด๋ด๊ธฐ ์ ํ ์๊ฐ์ ํด๊ฒฐํ๋ 1.12.x
์๋ฆฌ์ฆ์ ๋ํ ์์ ์ฌํญ์ด ๊ณง ์ ๊ณต๋ฉ๋๋ค. ์ฑ๋ ๊ณ ์ ํด์ฃผ์ธ์.
๊ฑด๋ฐฐ.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ณ ์์ต๋๋ค. ์๊ตฌ์ ์ผ๋ก ์์ ํ ๋๊น์ง
include/class.export.php
์์ 63 ํ์ ์ฃผ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค....๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ค์ ๋ด๋ณด๋ด์ผ ํฉ๋๋ค.