function threadsort_optiondata($pid, $sortid, $sortoptionarray, $templatearray) { global $_G; $_G['forum_optiondata'] = $_G['forum_typetemplate'] = $_G['forum_option'] = $_G['forum_memberinfo'] = $searchcontent = array(); $id = $_G['tid']; if ($id) { $query = DB::query("SELECT optionid, value, expiration FROM " . DB::table('forum_typeoptionvar') . " WHERE tid='{$id}'"); while ($option = DB::fetch($query)) { $_G['forum_optiondata'][$option['optionid']] = $option['value']; $_G['forum_optiondata']['expiration'] = $option['expiration']; } } $_G['forum_optiondata']['expiration'] = $_G['forum_optiondata']['expiration'] ? dgmdate($_G['forum_optiondata']['expiration'], 'd') : ''; foreach ($sortoptionarray as $optionid => $option) { if ($id) { $_G['forum_optionlist'][$optionid]['unchangeable'] = $sortoptionarray[$optionid]['unchangeable'] ? 'readonly' : ''; if ($sortoptionarray[$optionid]['type'] == 'radio') { $_G['forum_optionlist'][$optionid]['value'] = array($_G['forum_optiondata'][$optionid] => 'checked="checked"'); } elseif ($sortoptionarray[$optionid]['type'] == 'select') { $_G['forum_optionlist'][$optionid]['value'] = array($_G['forum_optiondata'][$optionid] => 'selected="selected"'); } elseif ($sortoptionarray[$optionid]['type'] == 'checkbox') { foreach (explode("\t", $_G['forum_optiondata'][$optionid]) as $value) { $_G['forum_optionlist'][$optionid]['value'][$value] = array($value => 'checked="checked"'); } } elseif ($sortoptionarray[$optionid]['type'] == 'image') { $_G['forum_optionlist'][$optionid]['value'] = unserialize($_G['forum_optiondata'][$optionid]); } else { $_G['forum_optionlist'][$optionid]['value'] = $_G['forum_optiondata'][$optionid]; } if (!isset($_G['forum_optiondata'][$optionid])) { DB::query("INSERT INTO " . DB::table('forum_typeoptionvar') . " (sortid, tid, fid, optionid)\r\n\t\t\t\tVALUES ('{$sortid}', '{$id}', '{$_G['fid']}', '{$optionid}')"); } } if ($templatearray['post']) { $_G['forum_option'][$option['identifier']]['title'] = $option['title']; $_G['forum_option'][$option['identifier']]['unit'] = $option['unit']; $_G['forum_option'][$option['identifier']]['description'] = $option['description']; $_G['forum_option'][$option['identifier']]['required'] = $option['required'] ? '*' : ''; $_G['forum_option'][$option['identifier']]['tips'] = '<span id="check' . $option['identifier'] . '"></span>'; $showoption = gettypetemplate($option, $_G['forum_optionlist'][$optionid], $optionid); $_G['forum_option'][$option['identifier']]['value'] = $showoption[$option['identifier']]['value']; $searchcontent['title'][] = '/{(' . $option['identifier'] . ')}/e'; $searchcontent['value'][] = '/\\[(' . $option['identifier'] . ')value\\]/e'; $searchcontent['unit'][] = '/\\[(' . $option['identifier'] . ')unit\\]/e'; $searchcontent['description'][] = '/\\[(' . $option['identifier'] . ')description\\]/e'; $searchcontent['required'][] = '/\\[(' . $option['identifier'] . ')required\\]/e'; $searchcontent['tips'][] = '/\\[(' . $option['identifier'] . ')tips\\]/e'; } } if ($templatearray['post']) { $typetemplate = $templatearray['post']; foreach ($searchcontent as $key => $content) { $typetemplate = preg_replace($searchcontent[$key], "showoption('\\1', '{$key}')", stripslashes($typetemplate)); } $_G['forum_typetemplate'] = $typetemplate; } }
function threadsort_optiondata($pid, $sortid, $sortoptionarray, $templatearray) { global $_G; $_G['forum_optiondata'] = $_G['forum_typetemplate'] = $_G['forum_option'] = $_G['forum_memberinfo'] = $searchcontent = array(); $id = $_G['tid']; if ($id) { foreach (C::t('forum_typeoptionvar')->fetch_all_by_tid_optionid($id) as $option) { $_G['forum_optiondata'][$option['optionid']] = $option['value']; $_G['forum_optiondata']['expiration'] = $option['expiration']; } } $_G['forum_optiondata']['expiration'] = $_G['forum_optiondata']['expiration'] ? dgmdate($_G['forum_optiondata']['expiration'], 'd') : ''; foreach ($sortoptionarray as $optionid => $option) { if ($id) { $_G['forum_optionlist'][$optionid]['unchangeable'] = $sortoptionarray[$optionid]['unchangeable'] ? 'disabled' : ''; if ($sortoptionarray[$optionid]['type'] == 'radio') { $_G['forum_optionlist'][$optionid]['value'] = array($_G['forum_optiondata'][$optionid] => 'checked="checked"'); } elseif ($sortoptionarray[$optionid]['type'] == 'select') { $_G['forum_optionlist'][$optionid]['value'] = $_G['forum_optiondata'][$optionid] ? array($_G['forum_optiondata'][$optionid] => 'selected="selected"') : ''; } elseif ($sortoptionarray[$optionid]['type'] == 'checkbox') { foreach (explode("\t", $_G['forum_optiondata'][$optionid]) as $value) { $_G['forum_optionlist'][$optionid]['value'][$value] = array($value => 'checked="checked"'); } } elseif ($sortoptionarray[$optionid]['type'] == 'image') { $_G['forum_optionlist'][$optionid]['value'] = dunserialize($_G['forum_optiondata'][$optionid]); } elseif ($sortoptionarray[$optionid]['type'] == 'face') { $_G['forum_optionlist'][$optionid]['value'] = dunserialize($_G['forum_optiondata'][$optionid]); } else { $_G['forum_optionlist'][$optionid]['value'] = $_G['forum_optiondata'][$optionid]; } if (!isset($_G['forum_optiondata'][$optionid])) { C::t('forum_typeoptionvar')->insert(array('sortid' => $sortid, 'tid' => $id, 'fid' => $_G['fid'], 'optionid' => $optionid)); } } if ($templatearray['post']) { $_G['forum_option'][$option['identifier']]['title'] = $option['title']; $_G['forum_option'][$option['identifier']]['unit'] = $option['unit']; $_G['forum_option'][$option['identifier']]['description'] = $option['description']; $_G['forum_option'][$option['identifier']]['required'] = $option['required'] ? '*' : ''; $_G['forum_option'][$option['identifier']]['tips'] = '<span id="check' . $option['identifier'] . '"></span>'; $showoption = gettypetemplate($option, $_G['forum_optionlist'][$optionid], $optionid); $_G['forum_option'][$option['identifier']]['value'] = $showoption[$option['identifier']]['value']; $searchcontent['title'][] = '/{(' . $option['identifier'] . ')}/e'; $searchcontent['value'][] = '/\\[(' . $option['identifier'] . ')value\\]/e'; $searchcontent['value'][] = '/{(' . $option['identifier'] . ')_value}/e'; $searchcontent['unit'][] = '/\\[(' . $option['identifier'] . ')unit\\]/e'; $searchcontent['unit'][] = '/{(' . $option['identifier'] . ')_unit}/e'; $searchcontent['description'][] = '/\\[(' . $option['identifier'] . ')description\\]/e'; $searchcontent['description'][] = '/{(' . $option['identifier'] . ')_description}/e'; $searchcontent['required'][] = '/\\[(' . $option['identifier'] . ')required\\]/e'; $searchcontent['required'][] = '/{(' . $option['identifier'] . ')_required}/e'; $searchcontent['tips'][] = '/\\[(' . $option['identifier'] . ')tips\\]/e'; $searchcontent['tips'][] = '/{(' . $option['identifier'] . ')_tips}/e'; } } if ($templatearray['post']) { $typetemplate = $templatearray['post']; foreach ($searchcontent as $key => $content) { $typetemplate = preg_replace($searchcontent[$key], "showoption('\\1', '{$key}')", stripslashes($typetemplate)); } $_G['forum_typetemplate'] = $typetemplate; } }