📄 demo-zend.php.txt
字号:
}/** * Prints a small form allowing the user to insert a new * recipe. */function showRecipeInsertPane($token) { global $cuisines; print '<td valign="top" width="50%">' . "\n"; print '<table width="100%">' . "\n"; print '<tr><th colspan="2" style="text-align:center">Insert a new recipe</th></tr>' . "\n"; print '<form method="post" action="' . $_SERVER[PHP_SELF] . '">' . "\n"; print '<input type="hidden" name="action" value="insert">' . "\n"; print '<input type="hidden" name="token" value="' . $token . '">' . "\n"; print '<tr><td align="right">Title:</td>' . "\n"; print '<td><input type="text" name="recipe_title" class="half">' . '</td></tr>' . "\n"; print '<tr><td align="right">Main ingredient:</td>' . "\n"; print '<td><input type="text" name="main_ingredient" class="half">' . '</td></tr>' . "\n"; print '<tr><td align="right">Cuisine:</td>' . "\n"; print '<td><select name="cuisine" class="half">' . "\n"; foreach ($cuisines as $curCuisine) { print '<option value=' . $curCuisine . '>' . $curCuisine . '</option>' . "\n"; } print '</select></td></tr>' . "\n"; print '<tr><td align="right">Cooking Time:</td>' . '<td><input type="text" name="time_val" size=2 maxlength=2> ' . '<select name="time_units"><option value="minutes">minutes</option>' . '<option value="hours">hours</option></select></td></tr>' . "\n"; print '<tr><td align="right">Serves:</td>' . "\n"; print '<td><input type="text" name="serves" size=2 maxlength=3></td></tr>' . "\n"; print '<tr><td align="right">Recipe:</td>' . "\n"; print '<td><textarea class="full" name="recipe_text"></textarea></td></tr>' . "\n"; print '<td> </td><td><input type="submit" value="Submit"></td>' . "\n"; print '</form></tr></table>' . "\n"; print '</td>' . "\n";}/** * Shows a menu allowing the user to update an existing * recipe with the Base API update feature. */function showEditMenu() { global $cuisines, $itemsFeedURL; $client = Zend_Gdata_AuthSub::getHttpClient($_POST['token']); $gdata = new Zend_Gdata($client); try { $feed = $gdata->getFeed($itemsFeedURL . "?"); foreach ($feed as $feed_entry) { if ($feed_entry->link('edit') == $_POST['edit']) { $splitCookingTime = split(" ", $feed_entry->cooking_time()); print '<html>' . "\n"; print '<head><title>PHP Demo: Google Base API</title>' . "\n"; print '<link rel="stylesheet" type="text/css"' . ' href="../../../css/dev_docs.css">' . "\n"; print '</head>' . "\n"; print '<body><center>' . "\n"; print '<table style="width:50%">' . "\n"; print '<tr><th colspan="2" style="text-align:center">Edit recipe:</th></tr>' . "\n"; print '<form method="post" action="' . $_SERVER[PHP_SELF] . '">' . "\n"; print '<input type="hidden" name="action" value="update">' . "\n"; print '<input type="hidden" name="link" value="' . $_POST['edit'] . '">' . "\n"; print '<input type="hidden" name="token" value="' . $_POST['token'] . '">' . "\n"; print '<tr><td align="right">Title:</td>' . "\n"; print '<td><input type="text" name="recipe_title" class="half" value="' . $feed_entry->title() . '"></td></tr>' . "\n"; print '<tr><td align="right">Main ingredient:</td>' . "\n"; print '<td><input type="text" name="main_ingredient" value="' . $feed_entry->main_ingredient() . '" class="half"></td></tr>' . "\n"; print '<tr><td align="right">Cuisine:</td>' . "\n"; print '<td><select name="cuisine" class="half">' . "\n"; foreach ($cuisines as $curCuisine) { print '<option value="' . $curCuisine . '"'; if ($curCuisine == $feed_entry->cuisine()) { print ' selected="selected"'; } print '>' . $curCuisine . "</option>\n"; } print '</select></td></tr>' . "\n"; print '<tr><td align="right">Cooking Time:</td>' . '<td><input type="text" name="time_val" size=2 maxlength=2 value="' . $splitCookingTime[0] . '"> ' . "\n"; print '<select name="time_units">' . "\n"; if ($splitCookingTime[1] == "minutes") { print '<option value="minutes" selected="selected">minutes</option>' . "\n"; print '<option value="hours">hours</option>' . "\n"; } else { print '<option value="minutes">minutes</option>' . "\n"; print '<option value="hours" selected="selected">hours</option>' . "\n"; } print '</select></td></tr>' . "\n"; print '<tr><td align="right">Serves:</td>' . "\n"; print '<td><input type="text" name="serves" value="' . $feed_entry->serving_count() . '" size=2 maxlength=3></td></tr>' . "\n"; print '<tr><td align="right">Recipe:</td>' . "\n"; print '<td><textarea class="full" name="recipe_text">' . $feed_entry->content() . '</textarea></td></tr>' . "\n"; print '<td> </td><td><input type="submit" value="Update"></td>' . "\n"; print '</form></tr></table>' . "\n"; print '</body></html>' . "\n"; break; } } } catch (Exception $e) { showMainMenu($e->getMessage(), $_POST['token']); }}/** * Displays both the "List of current recipes" and * "Insert a new recipe" panels in a single table. */function showMainMenu($tableTitle, $sessionToken) { print '<html>' . "\n"; print '<head><title>PHP Demo: Google Base API</title>' . "\n"; print '<link rel="stylesheet" type="text/css" href="../../../css/dev_docs.css">' . "\n"; print '</head>' . "\n"; print '<body><center>' . "\n"; print '<table style="width: 75%;text-align:center">' . "\n"; print '<tr>' . "\n"; print '<th colspan="2" style="text-align:center;">PHP Demo: Google Base data API' . '<br><font size=-1><span style="font-variant: small-caps;">Powered By</span>' . ' <a href="http://framework.zend.com/download/gdata">' . 'Zend Google Data Client Library</a></font></th>' . "\n"; print '</tr>' . "\n"; print '<tr><td colspan="2" align="center">' . $tableTitle . '</td></tr>' . "\n"; print '<tr>' . "\n"; // Create the two sub-tables. showRecipeListPane($sessionToken); showRecipeInsertPane($sessionToken); // Add a "Sign out" link. print '<tr><th colspan="2" style="text-align: center">Or click here to' . ' <a href="http://www.google.com/accounts/Logout">sign out</a>' . ' of your Google account.</th></tr>' . "\n"; // Close the master table. print '</table>' . "\n"; print '</center></body></html>' . "\n";}/** * We arrive here after the user first authenticates and we get back * a single-use token. */function showFirstAuthScreen() { global $gdata; $singleUseToken = $_GET['token']; $sessionToken = exchangeToken($singleUseToken); if (!$sessionToken) { showIntroPage(); } else { $tableTitle = 'Here\'s your <b>single use token:</b> <code>' . $singleUseToken . '</code>' . "\n" . '<br>And here\'s the <b>session token:</b> <code>' . $sessionToken . '</code>'; showMainMenu($tableTitle, $sessionToken); }}/** * Main logic. Take action based on the GET and POST * parameters, which reflect whether the user has * authenticated and which action they want to perform. */function handlePost() { try { $post_response = postItem(); if ($post_response->isSuccessful()) { showMainMenu('Recipe inserted!', $_POST['token']); } else { showMainMenu('Recipe insertion failed: ' . $post_response->getMessage(), $_POST['token']); } } catch (Exception $e) { showMainMenu('Recipe insertion failed: ' . $e->getMessage(), $_POST['token']); }}function handleDelete() { try { deleteItem(); showMainMenu('Recipe deleted.', $_POST['token']); } catch (Exception $e) { showMainMenu('Recipe deletion failed: ' . $e->getMessage(), $_POST['token']); }}function handleBatch() { try { $batch_response = batchDelete(); if ($batch_response->isSuccessful()) { showMainMenu('All recipes deleted.', $_POST['token']); } else { showMainMenu('Batch deletion failed: ' . $batch_response->getMessage(), $_POST['token']); } } catch (Exception $e) { showMainMenu('Batch deletion failed: ' . $e->getMessage(), $_POST['token']); }}function handleUpdate() { try { if (updateItem()) { showMainMenu('Recipe successfully updated.', $_POST['token']); } else { showMainMenu('Recipe update failed.', $_POST['token']); } } catch (Exception $e) { showMainMenu('Recipe update failed: ' . $e->getMessage(), $_POST['token']); }}if (count($_GET) == 1 && array_key_exists('token', $_GET)) { showFirstAuthScreen();} else { if (count($_POST) == 0) { showIntroPage(); } else { if ($_POST['action'] == 'insert') { handlePost(); } else if ($_POST['action'] == 'delete') { handleDelete(); } else if ($_POST['action'] == 'delete_all') { handleBatch(); } else if ($_POST['action'] == 'edit') { showEditMenu(); } else if ($_POST['action'] == 'update') { handleUpdate(); } else { showIntroPage(); } }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -