function val_or_na($val) { if ($val == NULL) { return get_na_string(); } else { return $val; } }
function create_works($params) { // debugging aid that was removed... //error_log(var_export($params,true),0); // TODO: throw error if type param does not exist $type = $params['type']; if (array_key_exists('limit', $params)) { $limit = $params['limit']; } else { $limit = 100000; // limitless } if (array_key_exists('order', $params)) { $limit = $params['order']; } else { $order = 'DESC'; } $res = ''; // collecting other table data ... $honorifics = my_mysql_query_hash('SELECT * FROM TbIdHonorific', 'id'); $contrib = my_mysql_query_hash('SELECT * FROM TbWkWorkContrib', 'id'); $types = my_mysql_query_hash('SELECT * FROM TbWkWorkType', 'id'); $locations = my_mysql_query_hash('SELECT * FROM TbLocation', 'id'); $devices = my_mysql_query_hash('SELECT * FROM TbDevice', 'id'); $languages = my_mysql_query_hash('SELECT * FROM TbLanguage', 'id'); $persons = my_mysql_query_hash('SELECT * FROM TbIdPerson', 'id'); $personexternal = my_mysql_query_hash('SELECT * FROM TbIdPersonExternal', 'id'); $organizations = my_mysql_query_hash('SELECT * FROM TbOrganization', 'id'); $external = my_mysql_query_hash('SELECT * FROM TbExternalType', 'id'); $workexternal = my_mysql_query_hash('SELECT * FROM TbWkWorkExternal', 'id'); $contribtype = my_mysql_query_hash('SELECT * FROM TbWkWorkContribType', 'id'); #$works=my_mysql_query_hash('SELECT * FROM TbWkWork','id'); # create a hash table of lists of contributors $work_contrib = array(); $role_contrib = array(); $work_contrib_org = array(); $role_contrib_org = array(); foreach ($contrib as $id => $row) { $workId = $row['workId']; $personId = $row['personId']; $organizationId = $row['organizationId']; $typeId = $row['typeId']; if ($personId != NULL) { if (!isset($work_contrib[$workId])) { $work_contrib[$workId] = array(); $role_contrib[$workId] = array(); } $work_contrib[$workId][] = $personId; $role_contrib[$workId][] = $typeId; } if ($organizationId != NULL) { if (!isset($work_contrib_org[$workId])) { $work_contrib_org[$workId] = array(); $role_contrib_org[$workId] = array(); } $work_contrib_org[$workId][] = $organizationId; $role_contrib_org[$workId][] = $typeId; } } # create a hash table of external ids for works $workexternal_externalid = array(); $workexternal_externalcode = array(); foreach ($workexternal as $id => $row) { $workId = $row['workId']; $externalId = $row['externalId']; $externalCode = $row['externalCode']; $workexternal_externalid[$workId][] = $externalId; $workexternal_externalcode[$workId][] = $externalCode; } # create a hash table of external ids for people $personexternal_externalid = array(); $personexternal_externalcode = array(); # create an empty entry for every person foreach ($persons as $id => $row) { $personexternal_externalid[$id] = array(); $personexternal_externalcode[$id] = array(); } # fill with external ids foreach ($personexternal as $id => $row) { $personId = $row['personId']; $externalId = $row['externalId']; $externalCode = $row['externalCode']; $personexternal_externalid[$personId][] = $externalId; $personexternal_externalcode[$personId][] = $externalCode; } // sending query switch ($type) { case 'audio': $add = 'TbWkWorkType.isAudio=1'; break; case 'video': $add = 'TbWkWorkType.isVideo=1'; break; case 'text': $add = 'TbWkWorkType.isText=1'; break; default: $add = 'TbWkWorkType.name=\'' . $type . '\''; break; } #$query=sprintf('SELECT TbWkWork.id,TbWkWork.name,TbWkWork.length,TbWkWork.size,TbWkWork.chapters,TbWkWork.typeId,TbWkWork.languageId,TbWkWorkView.startViewDate,TbWkWorkView.endViewDate,TbWkWorkViewPerson.viewerId,TbWkWorkView.locationId,TbWkWorkView.deviceId,TbWkWorkView.langId,TbWkWorkReview.ratingId,TbWkWorkReview.review,TbWkWorkReview.reviewDate FROM TbWkWorkViewPerson,TbWkWork,TbWkWorkType,TbWkWorkReview,TbWkWorkView WHERE TbWkWork.typeId=TbWkWorkType.id AND TbWkWorkViewPerson.viewId=TbWkWorkView.id AND TbWkWorkReview.workId=TbWkWork.id AND TbWkWorkView.workId=TbWkWork.id AND %s ORDER BY TbWkWorkView.endViewDate %s LIMIT %s',$add,$order,$limit); $query = sprintf('SELECT TbWkWork.id,TbWkWork.name,TbWkWork.length,TbWkWork.size,TbWkWork.chapters,TbWkWork.typeId,TbWkWork.languageId,TbWkWorkView.startViewDate,TbWkWorkView.endViewDate,TbWkWorkViewPerson.viewerId,TbWkWorkView.locationId,TbWkWorkView.deviceId,TbWkWorkView.langId,TbWkWorkReview.ratingId,TbWkWorkReview.review,TbWkWorkReview.reviewDate FROM TbWkWorkViewPerson,TbWkWorkType,TbWkWork LEFT JOIN TbWkWorkView ON TbWkWorkView.workId=TbWkWork.id LEFT JOIN TbWkWorkReview ON TbWkWorkReview.workId=TbWkWork.id WHERE TbWkWork.typeId=TbWkWorkType.id AND TbWkWorkViewPerson.viewId=TbWkWorkView.id AND %s ORDER BY TbWkWorkView.endViewDate %s LIMIT %s', $add, $order, $limit); $result = my_mysql_query($query); $res .= multi_accordion_start(); $body = ''; // printing table rows $currid = NULL; while ($row = $result->fetch_assoc()) { // finish the previous entry if that is the case if ($currid != $row['id']) { if ($currid != NULL) { $body .= '</ul>'; $res .= multi_accordion_entry($header, $body); } } if ($row['typeId'] != NULL) { $s_type = $types[$row['typeId']]['name']; } else { $s_type = get_na_string(); } if ($row['languageId'] != NULL) { $s_language = $languages[$row['languageId']]['name']; } else { $s_language = get_na_string(); } if ($row['locationId'] != NULL) { $s_location = $locations[$row['locationId']]['name']; } else { $s_location = get_na_string(); } if ($row['deviceId'] != NULL) { $s_device = $devices[$row['deviceId']]['name']; } else { $s_device = get_na_string(); } if ($row['langId'] != NULL) { $s_lang = $languages[$row['langId']]['name']; } else { $s_lang = get_na_string(); } if ($row['viewerId'] != NULL) { $s_viewer = get_full_name($persons[$row['viewerId']], $honorifics); } else { $s_viewer = get_na_string(); } if ($row['size'] != NULL) { $s_size = formatSize($row['size']); } if ($row['length'] != NULL) { $s_length = formatTimeperiod($row['length']); } if ($row['name'] != NULL) { $header = $row['name']; } else { $header = 'No Name'; } # append contributors to the header...(do not include organizations) if (isset($work_contrib[$row['id']])) { $cont_array = array(); foreach ($work_contrib[$row['id']] as $personId) { $cont_array[] = get_full_name($persons[$personId], $honorifics); } if (count($cont_array) > 0) { $header .= ' / ' . join($cont_array, ', '); } } if ($currid != $row['id']) { $currid = $row['id']; $body = ''; $body .= '<ul>'; if ($row['id'] != NULL) { $body .= '<li>id: ' . $row['id'] . '</li>'; } if ($row['name'] != NULL) { $body .= '<li>name: ' . $row['name'] . '</li>'; } if ($row['length'] != NULL) { $body .= '<li>length: ' . $s_length . '</li>'; } if ($row['size'] != NULL) { $body .= '<li>size: ' . $s_size . '</li>'; } if ($row['chapters'] != NULL) { $body .= '<li>chapters: ' . $row['chapters'] . '</li>'; } if ($row['typeId'] != NULL) { $body .= '<li>type: ' . $s_type . '</li>'; } if ($row['languageId'] != NULL) { $body .= '<li>language: ' . $s_language . '</li>'; } # contributor stuff if (isset($work_contrib[$row['id']])) { $j = 0; foreach ($work_contrib[$row['id']] as $personId) { $name = get_full_name($persons[$personId], $honorifics); $roleid = $role_contrib[$row['id']][$j]; $role_name = $contribtype[$roleid]['name']; $body .= '<li>' . $role_name . ': ' . $name; $j++; $e = 0; foreach ($personexternal_externalid[$personId] as $externalid) { $externalcode = $personexternal_externalcode[$personId][$e]; $externalname = $external[$externalid]['name']; $externalidname = $external[$externalid]['idname']; $link = get_external_href($externalname, $externalcode); $link = '<a href=\'' . $link . '\'>' . $externalidname . ': ' . $externalcode . '</a>'; $body .= ' ' . $link; $e++; } $body .= '</li>'; } } if (isset($work_contrib_org[$row['id']])) { $j = 0; foreach ($work_contrib_org[$row['id']] as $organizationId) { $name = $organizations[$organizationId]['name']; $url = $organizations[$organizationId]['url']; $roleid = $role_contrib_org[$row['id']][$j]; $role_name = $contribtype[$roleid]['name']; $body .= '<li>' . $role_name . ': ' . '<a href=\'' . $url . '\'>' . $name . '</a></li>'; $j++; } } # external stuff $j = 0; if (isset($workexternal_externalid[$row['id']])) { foreach ($workexternal_externalid[$row['id']] as $externalid) { $externalcode = $workexternal_externalcode[$row['id']][$j]; $externalname = $external[$externalid]['name']; $externalidname = $external[$externalid]['idname']; $link = get_external_href($externalname, $externalcode); $link = '<a href=\'' . $link . '\'>' . $externalidname . ': ' . $externalcode . '</a>'; $body .= '<li>' . $link . '</li>'; $j++; } } } # view stuff if ($row['startViewDate'] != NULL) { $body .= '<li>start view date: ' . $row['startViewDate'] . '</li>'; } if ($row['endViewDate'] != NULL) { $body .= '<li>end view date: ' . $row['endViewDate'] . '</li>'; } if ($row['viewerId'] != NULL) { $body .= '<li>viewer: ' . $s_viewer . '</li>'; } if ($row['locationId'] != NULL) { $body .= '<li>location: ' . $s_location . '</li>'; } if ($row['deviceId'] != NULL) { $body .= '<li>device: ' . $s_device . '</li>'; } if ($row['langId'] != NULL) { $body .= '<li>lang: ' . $s_lang . '</li>'; } # review stuff if ($row['ratingId'] != NULL) { $body .= '<li>rating: ' . $row['ratingId'] . '</li>'; } if ($row['review'] != NULL) { $body .= '<li>review: ' . $row['review'] . '</li>'; } if ($row['reviewDate'] != NULL) { $body .= '<li>review date: ' . $row['reviewDate'] . '</li>'; } } if ($currid != NULL) { $body .= '</ul>'; $res .= multi_accordion_entry($header, $body); } my_mysql_free_result($result); $res .= multi_accordion_end(); return $res; }
function create_teaching($params) { $res = ''; // sending query $query = sprintf('SELECT id,name,slug,imageId,remark,url FROM TbOrganization where funcTeaching order by name asc'); $result = my_mysql_query($query); $res .= get_start_table(); $res .= '<tr>'; $res .= '<td style=\'width:20%\'>name</td>'; $res .= '<td style=\'width:80%\'>remark</td>'; $res .= '<td style=\'width:20%\'>image</td>'; $res .= '</tr>'; while ($row = $result->fetch_assoc()) { $id = $row['id']; $name = $row['name']; $slug = $row['slug']; $remark = $row['remark']; $imageId = $row['imageId']; $link_img = link_to_direct('GetBlob.php?table=TbImage&select_field=id&select_id=' . $imageId . '&data_field=smallData&name_field=slug&mime_field=smallMime'); $url = $row['url']; if ($url != NULL) { $name = '<a href=\'' . $url . '\'>' . $name . '</a>'; } if ($remark == NULL) { $remark = get_na_string(); } $res .= '</tr>'; $res .= '<td>' . $name . '</td>'; $res .= '<td>' . $remark . '</td>'; $res .= '<td><img src=\'' . $link_img . '\'/></td>'; $res .= '</tr>'; } $result->free(); $res .= '</table>'; return $res; }