function onBeforeSaveField( &$field, &$post, &$file, &$item )
{
if ( !in_array($field->field_type, self::$field_types) ) return;
$use_ingroup = $field->parameters->get('use_ingroup', 0);
if ( !is_array($post) && !strlen($post) && !$use_ingroup ) return;
$app = JFactory::getApplication();
$jinput = $app->input;
$db = JFactory::getDBO();
// Make sure posted data is an array
$post = !is_array($post) ? array($post) : $post;
$newpost = array(); //$deleteQuestion = array();
$new = 0;
//$id = $item->id;
//echo "
field: ";print_r($item);echo "
";
//echo "
".$item->id."
".$field->id."
post: ";print_r($post);
foreach($post as $n=>$v){
print_r($v);echo "
";
// Skip empty value, but if in group increment the value position
if (empty($v)) { //echo '
Line741';
// skip empty value, but allow empty (null) placeholder value if in fieldgroup
if ($use_ingroup) $newpost[$new++] = null;
continue;
}
$checklist_id_query = 'select id from #__flexicontent_checklist where itemId = '.$db->quote($item->id).' AND checklistFieldId = '.$db->quote($field->id);
echo "
checklist_id_query: ";print_r($checklist_id_query);
$db->setQuery($checklist_id_query);
$checklist_id = $db->loadResult();
echo "
checklist_id: ";print_r($checklist_id);
if($checklist_id){
if(array_key_exists('checkbox',$v)){
$editable =1;
}
else
$editable = 0;
$checklist_update_query = 'update #__flexicontent_checklist set editable='.$editable.' where id ='.$checklist_id;
$db->setQuery($checklist_update_query);
$result = $db->execute();
$old_items_query = 'select item from #__flexicontent_checklist_item where checklistId ='.$checklist_id.' order by id ASC';
$db->setQuery($old_items_query);
$old_items = $db->loadColumn();
echo "
Old: ";print_r($old_items);
$text = trim($v['textarea']);
$textAr = explode(PHP_EOL, $text);
$new_items = array();
foreach($textAr as $key=>$value){
$value = trim($value);
if($value!=""){
array_push($new_items,$value);
}
}
echo "
New: ";print_r($new_items);
$insert_items = array_diff($new_items,$old_items);
$delete_items = array_diff($old_items,$new_items);
echo "
Del: ";print_r($delete_items);
echo "
Insert: ";print_r($insert_items);
foreach($insert_items as $item){
$checklist_item_insert_query = new stdClass();
$checklist_item_insert_query->checklistId = $checklist_id;
$checklist_item_insert_query->item = $item;
echo "
";print_r($checklist_item_insert_query);
$result = $db->insertObject('#__flexicontent_checklist_item',$checklist_item_insert_query);
/* $lastInserID = $db->insertid();
$newpost[$new] = $lastInserID;
$new++; */
}
foreach($delete_items as $item){
$deleted_id_query = 'select id from #__flexicontent_checklist_item where checklistId = '.$db->quote($checklist_id).' AND item ='.$db->quote($item);
$db->setQuery($deleted_id_query);
$deleted_id = $db->loadResult();
echo "
";print_r($deleted_id);
$checklist_item_delete_query = 'delete from #__flexicontent_checklist_item where checklistId = '.$db->quote($checklist_id).' AND item ='.$db->quote($item);
echo "
";print_r($checklist_item_delete_query);
$db->setQuery($checklist_item_delete_query);
$db->execute();
}
$lastInserID = $checklist_id;
}
else{
if(array_key_exists('checkbox',$v)){
$editable =1;
}
else
$editable = 0;
$checklist_insert_query = new stdClass();
$checklist_insert_query->itemId = $item->id;
$checklist_insert_query->checklistFieldId = $field->id;
$checklist_insert_query->editable = $editable;
$checklist_insert_query->createdBy = JFactory::getUser()->id;
echo "
New Insert: ";print_r($checklist_insert_query);
$result = $db->insertObject('#__flexicontent_checklist', $checklist_insert_query);
$checklist_id = $db->insertid();
$text = trim($v['textarea']);
$textAr = explode(PHP_EOL, $text);
foreach($textAr as $key=>$value){
$value = trim($value);
if($value!=""){
$checklist_item_insert_query = new stdClass();
$checklist_item_insert_query->checklistId = $checklist_id;
$checklist_item_insert_query->item = $value;
echo "
New Insert: ";print_r($checklist_item_insert_query);
$result = $db->insertObject('#__flexicontent_checklist_item',$checklist_item_insert_query);
}
/* $lastInserID = $db->insertid();
$newpost[$new] = $lastInserID;
$new++; */
}
$lastInserID = $checklist_id;
}
$newpost[$new] = $lastInserID;
$new++;
}//jexit();
$post = $newpost;
echo "
";print_r($post);echo "
";
}