สมมุติว่ามี section อยู่ 3 section ชื่อ section1,section2,section3
แล้วแต่ละ section มี category อยู่ section ละ 10 category รวมเป็นทั้งสินเป็น 30 category คิดดูว่าจะใช้ แล้วสร้างนานขนาดใหน
ผมเลย มี idea สร้าง Quick Create Category ขึ้นมา
ก่อนอื่น เิปิดไฟล์ administrator\components\com_categories\admin.categories.php ขึ้นมาด้วย editor ที่มีการแสดงหมายเลขบรรทัด เช่น text หรือ edit plus
แล้วแทก code เหล่านี้ลงไปที่บรรทัด 113
//------------------------------------------Add quickCreate------------------------------------------------------------
function quickCreate(){
global $mainframe;
$categories=JRequest::getVar('categories');
if (!$categories) {
$error='กรุณาป้อนชื่อ Category';
}
if(JRequest::getVar('section')=="com_content"){
if(JRequest::getCmd('sectionid_m')=="-1"){
$error="กรุณาเลือก Section ";
}
$section="com_content";
}else{
$section=JRequest::getVar('section');
}
if (preg_match('/^,/', $categories)) {
$error='ห้ามมีเครื่องหมาย , นำหน้า';
}
if($error){
JRequest::setVar('categories',$categories);
JRequest::setVar('sectionid_m',$sectionid_m);
$mainframe->redirect('index.php?option=com_categories§ion='.$section.'&showQuick=block',$error, 'notice');
return false;
}
if (strpos($categories, ',')) {
$categories = explode(',', $categories);
} else {
$categories = (Array) $categories;
}
$insertValue = array();
$access= JRequest::getVar('access');
$published_m= JRequest::getVar('published_m');
$sectionid_m= JRequest::getCmd('sectionid_m');
foreach ($categories as $value) {
if ($value && $value != ',') {
$insertValue[] = '('.sprintf("'%s','%s','%s','%d','%d','%s'", $value, $value,$value,$published_m,$access,$sectionid_m) .')';
}
}
$query='INSERT INTO #__categories(title,alias,description,published,access,section)';
$query.=' VALUES '.implode(',',$insertValue);
$db = JFactory::getDbo();
$db->setQuery($query);
try {
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
} catch (Exception $e) {
$error=$e->getMessage();
}
if($error){
$mainframe->redirect('index.php?option=com_categories§ion='.$section.'&showQuick=block',$error, 'notice');
}else{
JRequest::setVar('categories','');
JRequest::setVar('access','');
JRequest::setVar('published_m','1');
if(JRequest::getVar('section')=="com_content"){
JRequest::setVar('sectionid_m','-1');
}
$message='บันทึกข้อมูลเรียบร้อยแล้ว '. count($insertValue).' รายการ';
$mainframe->redirect('index.php?option=com_categories§ion='.$section.'&showQuick=block',$message);
}
}
//------------------------------------------End quickCreate------------------------------------------------------------
แล้วทำการบันทึก
ต่อมาเปิดไฟล์ administrator\components\com_categories\admin.categories.html.php
ทำการแทก code ข้างล่าง ที่บรรทัด 224
<?php //--------------------------------------------------Add---------------------------------------------------------?>
<style type="text/css">
#quick_create div label:first-child{
margin-top:5px;
margin-bottom:10px;
float:left;
width:100px;;
}
#quick_create div label *,#quick_create div label{
margin-top:5px;
margin-bottom:10px;
float:left;
}
#quick_create div div{
clear:left
}
#quick_create legend a:first-child{
margin-right:40px;
}
#quick_create a{
cursor: pointer;
text-decoration:none;
}
</style>
<div id="quick_create">
<form id="form_quick" name="quickBatch" action="index.php?option=com_categories&section=<?php echo $section; ?>" method="post" >
<fieldset>
<legend>
<a onclick="return switchDisplayQuickForm();">Quick Create Category</a>
</legend>
<div id="quick_content">
<div>
<?php if(JRequest::getVar('section')=="com_content"):?>
<label>Select Section </label><?php echo JHTML::_('list.section', 'sectionid_m',$lists['sectionid_m']); ?>
<?php else:?>
<label>Select Section </label>
<input type="text" name="sectionid_m" size="30" readonly value="<?php echo JRequest::getVar('section')?>"/>
<?php endif;?>
</div>
<div>
<label><?php echo JText::_( 'Published' ); ?></label>
<?php echo $lists['published_m']; ?>
</div>
<div>
<label><?php echo JText::_( 'Access' ); ?></label>
<?php echo $lists['access']; ?>
</div>
<div>
<label><span class="editlinktip hasTip" title="Category::ป้อนชื่อ Category ที่ต้องการสร้างโดยแต่ละตัวมีเครื่องหมาย , คั่น">Category</span></label>
<input id="categories" type="text" name="categories" size="90" value="<?php echo $lists['categories'];?>"/>
<button type="submit" style="margin:5px 3px;">Create</button>
<button type="button" style="margin-top:5px" onclick="$('categories').value=''; $('categories').focus();">Reset</button>
</div>
</div>
</fieldset>
<input type="hidden" name="task" value="quick_create" />
<input type="hidden" name="showQuick" id="showQuick" />
</form>
<script type="text/javascript">
$('quick_content').style.display="<?php echo JRequest::getVar('showQuick','none'); ?>";
if($('quick_content').style.display=="none"){
$('close_quick').style.display='none';
}
function switchDisplayQuickForm(){
var display;
display=$('quick_content').style.display;
if(display=='' || display=='block'){
display="none";
$('showQuick').value='none';
}else{
display='block';
$('showQuick').value='block';
}
$('quick_content').style.display=display;
if(display=='block'){
$('categories').focus();
}
return false;
}
</script>
</div>
<?php //--------------------------------------------------End Add---------------------------------------------------------?>
แล้วทำการบันทึก
จากนั้นให้ไปที่ Content -> Category Manager
จะมีคำว่า Quick Create Category ดังรูป
ibcbet 
จากนั้นกดคลิกที่ Quick Create Category จะแสดง
ibcbet 
สมมุติว่ามีการสร้าง section1 แล้ว ให้ทำการสร้าง category ใหม่ให้ section1 ดังรูป
ibcbet 
กด Create จะมี Category ใหม่ใน section1 ดังรูป
ibcbet 
จากนั้นไปที่ Components -> Contatcs -> Categories สร้าง Categories ใหม่ ดังนี้
ibcbet 
กด Create จะมี Category ใหม่ ดังรูป
ibcbet 
ไม่เฉพาะกับ Contacs เท่านั้นที่ใช้ Quick Create Category ได้ News fees กับ Web links ก็สามารถใช้ได้ ลองทดลองใช้ดู
ถ้ามี bug ตรงใหนก็บอกมาด้วยละกัน ลืมบอกไปแต่ละ Category ที่สร้างให้คั่นด้วยเครื่องหมาย ,