Avatar billede thomastegl Nybegynder
13. oktober 2005 - 11:14 Der er 13 kommentarer og
1 løsning

Vil gerne trække page_id ud og anvende i script.

Sidder og leger med et cms-system der hedder PostNuke.
I modulet PagEd som er et modul til håndtering af nyhedsstof, angives de enkelte sider med f.eks:

modules.php?op=modload&name=PagEd&file=index&page_id=36

Til et lille forsøg kunne jeg godt tænke mig at gøre et lille script afhængigt af page_id...:

<? $block = pnBlockGetInfo('page_id');
$block['bid'] = 'page_id';
pnBlockShow('PagEd', 'pagedgenmenu', $block);
?>

Hvor jeg altså havde håbet at "page_id" ville blive erstattet af tallet "36"
Men det gør det ikke. Hvad er der galt?
Avatar billede coderdk Praktikant
13. oktober 2005 - 12:50 #1
$_GET['page_id'] i stedet for 'page_id'...
Avatar billede nizo Nybegynder
13. oktober 2005 - 13:36 #2
coderdk > Ikke nødvendigvis!

Hvad staar der om functionen pnBlockGetInfo() ?
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 13:40 #3
Ok gjorde det således:

<? $sidetal = $_GET['page_id'];
$block = pnBlockGetInfo($sidetal);
$block['bid'] = ($sidetal);
pnBlockShow('PagEd', 'pagedgenmenu', $block);
?>

Og det virker!!! Tak for det coderdk.

Tillægsspørgsmål:
Hvad hvis jeg istedet ville indsætte indholdet af "related_links" i tabellen"nuke_paged_titles" i mysqldatabasen"postnuke"  ?

Ville det kunne gøres på en smart måde?
Avatar billede nizo Nybegynder
13. oktober 2005 - 13:53 #4
Saa tager du backup fra MySQL tablet
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 14:09 #5
--> nizo
Er totalt noob i php, så du må meget gerne holde det helt konkret...;)

Har prøvet følgende men får parse-error:

<? $sidetal = $_GET['page_id']; $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id="$sidetal";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
echo "$result";
?>
Avatar billede coderdk Praktikant
13. oktober 2005 - 14:26 #6
<? $sidetal = mysql_real_escape_string($_GET['page_id']); $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
echo "$result";
?>
Avatar billede coderdk Praktikant
13. oktober 2005 - 14:27 #7
btw den sidste linje vil bare skrive #1 eller lignende... Hvis du vil skrive resultatet ud:

while ( $row = mysql_fetch_assoc( $result ) )
{
  echo "<pre>"; var_dump( $row ); echo "</pre>";
}
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 14:48 #8
Har nu følgende (det med "$sidetal = mysql_real_escape_string($_GET['page_id']);" virkede ikke):

<? $sidetal = $_GET['page_id']; $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
while ( $row = mysql_fetch_assoc( $result ) )
{
  echo "<pre>"; var_dump( $row ); echo "</pre>";
}
?>

Giver følgende resultat skrevet på siden:

array(1) {
  ["related_links"]=>
  string(0) ""
}

Men det er ikke indholdet af related_links på siden
Avatar billede coderdk Praktikant
13. oktober 2005 - 14:51 #9
Så var der nok ikke nogle records der matchede - Prøv at lave en echo $query; for at se hvordan query'en ser ud...
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 14:56 #10
Sorry, mig der var på en forkert side. Det virker. Tak
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 15:10 #11
Og næste problem dukker straks op:

<? $sidetal = $_GET['page_id']; $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
$block = pnBlockGetInfo($result);
$block['bid'] = ($result);
pnBlockShow('PagEd', 'pagedgenmenu', $block);
?>

Når jeg forsøger at anvende indholdet af "related_links" som i dette tilfælde er "8", så udmønter det sig desværre ikke i, at pagedgenmenu med id=8 vises.

Tror det skyldes, at det ikke kun er "8" der kommer ud som resultat af $query...
Avatar billede coderdk Praktikant
13. oktober 2005 - 15:19 #12
Øhm, dunno, bruger ikke PostNuke, så jeg kender ikke pnBlockGetInfo osv, men prøv dette:

<? $sidetal = $_GET['page_id']; $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
if ( $row = mysql_fetch_assoc( $result ) )
{
  $block['bid'] = $row['related_links'];
  pnBlockShow('PagEd', 'pagedgenmenu', $block);
}
else
{
  echo "Der kom ingen related_links";
}
?>
Avatar billede thomastegl Nybegynder
13. oktober 2005 - 15:34 #13
Virkede da jeg lige fik sat det sidste ind: "$block = pnBlockGetInfo($row['related_links']);  "

Således:

<? $sidetal = $_GET['page_id']; $query = "SELECT related_links FROM nuke_paged_titles WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
if ( $row = mysql_fetch_assoc( $result ) )
{
$block = pnBlockGetInfo($row['related_links']); 
$block['bid'] = $row['related_links'];
  pnBlockShow('PagEd', 'pagedgenmenu', $block);
}
else
{
  echo "Der kom ingen related_links";
}
?>

Tusind tak for hjælpen!!!
Send lige et svar, så du kan få pointene :)
Avatar billede coderdk Praktikant
13. oktober 2005 - 15:36 #14
Ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester