template_dir = '/webs/nakedgallery/nakedgallery/plays/lib/templates/'; $smarty->compile_dir = '/webs/nakedgallery/nakedgallery/plays/lib/templates_c/'; $smarty->config_dir = '/webs/nakedgallery/nakedgallery/plays/lib/configs/'; $smarty->cache_dir = '/webs/nakedgallery/nakedgallery/plays/lib/cache_dir/'; $s = $HTTP_POST_VARS['s']; $s = trim($s); if (! $s) { $s = $HTTP_GET_VARS['s']; } $s = trim($s); if(! (strlen($s) == 1 && ctype_alpha($s))) { $s = 'a'; } else { $s = strtolower($s); } $page = $HTTP_POST_VARS['page']; $page = trim($page); if (! $page) { $page = $HTTP_GET_VARS['page']; } $page = trim($page); $page_size = 10; if (! is_numeric($page)) { $page = 1; } $segment = $HTTP_POST_VARS['segment']; if (! $segment) { $segment = $HTTP_GET_VARS['segment']; } $segment = trim($segment); if (! is_numeric($page) && ! is_numeric($segment)) { $page = 1; $segment = 0; } elseif (is_numeric($segment)) { $page = $segment * $page_size + 1; } else { $segment = floor($page/$page_size); if (! ($page % $page_size)) { $segment--; } } // Connecting, selecting database $link = mysql_connect('localhost', 'nakedoff', 'mail4ng$') or die('Could not connect: ' . mysql_error()); mysql_select_db('nakedgallery') or die('Could not select database'); // get number of plays $query = 'SELECT COUNT(materialid) FROM materials '; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $row = mysql_fetch_array($result, MYSQL_NUM); $nr_plays = $row[0]; mysql_free_result($result); //nr of pages $page_count = floor($nr_plays/$page_size); if ($nr_plays % $page_size) {$page_count++;} // nr segments $segment_count = floor($page_count/10); if ($page_count % 10) {$segment_count++;} // check that values are in limits if ($page < 1 || $page > $page_count) { $page = 1; $segment = 0; } if ($segment < 0 || $segment > $segment_count - 1) { $segment = 0; $page = 1; } // parameters for SQL LIMIT clause and indexes for the bottom // of the page $limit_start = $segment * $page_size + 1; $index_start = ($page - 1) * $page_size; if ($index_start > 0) { $index_start++;} $index_end = $index_start + $page_size - 1; $pages = array(); for($i = $limit_start; $i <= $limit_start + $page_size - 1 && $i <= $page_count; $i++) { $pages[$i] = $i; } // get list languages $languages = array(); $language2code = array(); $query = 'SELECT language, language_code FROM languages ORDER BY \'order\''; $result = mysql_query($query) or die('Error getting languages: ' . mysql_error()); while ($line = mysql_fetch_array($result, MYSQL_NUM)) { $lang = $line[0]; $code = $line[1]; array_push($languages, $lang); $language2code[$lang] = $code; $code2language[$code] = $lang; } $code = $HTTP_GET_VARS['code']; if (! $code) { $code = $HTTP_POST_VARS['code']; } if (! ($code && key_exists($code, $code2language))) { $code = 'en'; } trim($code); // determine alt languages $alt_languages = array(); foreach ($code2language as $key => $val) { if ($code != $key) { array_push($alt_languages, array('code' => $key, 'language' => $val)); } } // get list of columns $query = 'SELECT texts.language_code, materialid, headline FROM texts ' . ' INNER JOIN languages ON languages.language_code=texts.language_code '. " ORDER BY MaterialID, languages.order LIMIT $index_start, 10"; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $plays = array(); $i = 0; $oldmid = ''; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { $language_code = $line['language_code']; $mid = $line['materialid']; $headline = $line['headline']; $a = get_authors($mid, $language_code, 'normal'); $authors = implode(', ', $a); if ($mid != $oldmid) { if (! $oldmid) { $oldmid = $mid; } else { foreach ($code2language as $key => $val) { if (! key_exists($key, $plays[$i])) { $a2 = get_authors($oldmid, $key, 'normal'); $authors2 = implode(', ', $a2); $plays[$i][$key] = array('available' => 0, 'mid' => $oldmid, 'headline' => '', 'authors' => $authors2); } } $oldmid = $mid; $i++; } } $plays[$i][$language_code] = array('available' => 1, 'mid' => $mid, 'headline' => $headline, 'authors' => $authors); } foreach ($code2language as $key => $val) { if (! key_exists($key, $plays[$i])) { $a2 = get_authors($oldmid, $key, 'normal'); $authors2 = implode(', ', $a2); $plays[$i][$key] = array('available' => 0, 'mid' => $oldmid, 'headline' => '', 'authors' => $authors2); } } // Free resultset mysql_free_result($result); // Closing connection mysql_close($link); // fill the template $smarty->assign('plays', $plays); $smarty->assign('code', $code); $smarty->assign('lang', $code2language[$code]); $smarty->assign('code_alt1', $alt_languages[0]['code']); $smarty->assign('code_alt2', $alt_languages[1]['code']); $smarty->assign('lang_alt1', $alt_languages[0]['language']); $smarty->assign('lang_alt2', $alt_languages[1]['language']); $smarty->assign('nr_plays', $nr_plays); $smarty->assign('segment', $segment); $smarty->assign('page', $page); $smarty->assign('pages', $pages); $smarty->assign('last', $segment_count - 1); $smarty->assign('next_segment', $segment + 1); $smarty->assign('prev_segment', $segment - 1); // display it $smarty->display('plays.tpl'); ?>