我有一個使用javascript,php和SQL查詢的自定義PHP文件,但是它是全新的drupal,並且難以實現它。我已經嘗試了幾次模塊構建教程,但感覺不知所措/強調了大量的細節,至今還沒有得到我的青睞。是否可以輕鬆地將我的文件在我的XAMPP環境中很好地工作到一個drupal模塊中,而不會更改代碼太多?如果是這樣,我需要在我的PHP文件中進行哪些更改?Drupal - 輕鬆將自定義代碼轉換爲Drupal模塊?
下面是我的PHP文件中的代碼:
<?php
$server = 'localhost';$user = 'root';$database = 'transportation';$password = null;
$db = mysqli_connect($server, $user, $password, $database);
?>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map = null;
var infowindow = new google.maps.InfoWindow();
var markers = [
<?php
if (isset($_GET['routeselected']))
{
$result = mysqli_query($db, "SELECT * FROM STOP INNER JOIN RouteStop ON Stop.Stop_ID = RouteStop.Stop_ID WHERE RouteStop.Route_ID = " . (int)$_GET['routeselected'] . " AND RouteStop.Company_ID = " . (int)$_GET['companyselected']);
while ($row = mysqli_fetch_array($result))
echo "{\"title\": '".$row['Stop_ID']."', \"lat\": '".$row['Latitude']."', \"lng\": '".$row['Longitude']."', \"description\": '".$row['StopName']."'},";
}
?>
];
window.onload = function() {
var mapOptions = {
center: new google.maps.LatLng(
parseFloat(markers[0].lat),
parseFloat(markers[0].lng)),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var path = new google.maps.MVCArray();
var service = new google.maps.DirectionsService();
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var poly = new google.maps.Polyline({map: map, strokeColor: '#F3443C'});
var lat_lng = new Array();
for (i = 0; i < markers.length; i++) {
var data = markers[i]
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
lat_lng.push(myLatlng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: data.title
});
(function (marker, data) {
google.maps.event.addListener(marker, "click", function (e) {
infoWindow.setContent(data.description);
infoWindow.open(map, marker);
});
})(marker, data);
}
for (var i = 0; i < markers.length; i++) {
if ((i + 1) < markers.length) {
var src = new google.maps.LatLng(parseFloat(markers[i].lat),
parseFloat(markers[i].lng));
var des = new google.maps.LatLng(parseFloat(markers[i+1].lat),
parseFloat(markers[i+1].lng));
service.route({
origin: src,
destination: des,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++){
path.push(result.routes[0].overview_path[i]);
}
poly.setPath(path);
}
});
}
}
}
</script>
<?php
if (isset($_GET['companyselected']))
{
if ($result = mysqli_query($db, "SELECT DISTINCT RouteNum, RouteName FROM Route WHERE Company_ID = " . (int)$_GET['companyselected']))
{
$fields = mysqli_fetch_fields($result);
echo "<table style='width:900px'><tr>";
foreach ($fields as $column)
echo "<th>" . $column->name . "</th>";
echo "<th>Select Bus Company</th></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $field) echo "<td>" . $field . "</td>";
echo "<td><a href=\"" . $_SERVER['PHP_SELF'] . "?routeselected="
. $row['RouteNum'] . "&companyselected=" . $_GET['companyselected'] . "\" style=\"color: green;\">Display Route</a></td></tr>";
}
echo "</table>";
}
}
if (!(isset($_GET['companyselected']))) {
$result = mysqli_query($db, "SELECT DISTINCT Company_ID, CompanyName " . "FROM Company");
$fields = mysqli_fetch_fields($result);
echo "<table style='width:900px'><tr>";
foreach ($fields as $column)
echo "<th>" . $column->name . "</th>";
echo "<th>Select Bus Company</th></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $field) echo "<td>" . $field . "</td>";
echo "<td><a href=\"" . $_SERVER['PHP_SELF'] . "?companyselected="
. $row['Company_ID'] . "\" style=\"color: green;\">Show Routes</a></td></tr>";
}
echo "</table>";
}
?>
感謝您的迴應NICS!我不知道你可以做那樣的事情!今天早些時候,我實際上只是繼續前進,並在我的網站中使用框架來顯示我的代碼(這只是一個簡單但定製的谷歌地圖)。我認爲我現在就要像現在這樣離開它,它工作得很好,但是我很可能會在不久的將來遇到同樣的問題,並且會使用你的建議:) – webhoodlum
這就是骯髒的方式#3; - )有更多的骯髒的方法,如爲你想顯示地圖和其他人的主題/頁面創建.tpl.php ..感謝您的投票:-) – Nics