|
| Hvad betyder dette PhP? Fra : Kurt Hansen |
Dato : 08-01-11 10:23 |
|
I osCommerce forekommer denne stump:
1. <?php
2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
3. ?>
4. <br>
5. <table border="0" width="100%" cellspacing="0" cellpadding="0">
6. <tr>
7. <td align="center"><?php echo tep_display_banner('static',
$banner); ?></td>
8. </tr>
9. </table>
10. <?php
11. }
12. ?>
(Linienumre svarer ikke til de originale).
I linie 2 er specificeret en "gruppe", kaldet 'Main-ad2'.
'dynamic' skulle betyde, at de bannere er hører til gruppen, vises på
skift, som jeg har forstået det.
Når $banner så bliver vist med echo, står det lige pludselig 'static'.
Jeg aner intet om PhP; dette er blot en husmandsanalyse. Hvem kan
forklare på dansk, hvad der sker i disse 12 linjer?
--
Venlig hilsen
Kurt Hansen
| |
Leif Neland (08-01-2011)
| Kommentar Fra : Leif Neland |
Dato : 08-01-11 11:22 |
|
Den 08-01-2011 10:23, Kurt Hansen skrev:
> I osCommerce forekommer denne stump:
>
> 1.<?php
> 2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
> 3. ?>
> 4.<br>
> 5.<table border="0" width="100%" cellspacing="0" cellpadding="0">
> 6.<tr>
> 7.<td align="center"><?php echo tep_display_banner('static',
> $banner); ?></td>
> 8.</tr>
> 9.</table>
> 10.<?php
> 11. }
> 12. ?>
>
Hvis en funktion tep_banner_exists med nogle parametre giver et svar,
udskrives værdien af en anden funktion.
Den ene funktion kan tømme din bankkonto for værdier, den anden kan
affyre et nukleart missil.
Det kan man kun gætte om, når man ikke har set funktionerne.
Leif
--
Bevar P2, luk P3, der er nok P3'er i forvejen.
| |
Kurt Hansen (08-01-2011)
| Kommentar Fra : Kurt Hansen |
Dato : 08-01-11 11:59 |
|
On Sat, 08 Jan 2011 11:22:18 +0100, Leif Neland <leif@neland.dk>
wrote:
>Den 08-01-2011 10:23, Kurt Hansen skrev:
>> I osCommerce forekommer denne stump:
>>
>> 1.<?php
>> 2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
>> 3. ?>
>> 4.<br>
>> 5.<table border="0" width="100%" cellspacing="0" cellpadding="0">
>> 6.<tr>
>> 7.<td align="center"><?php echo tep_display_banner('static',
>> $banner); ?></td>
>> 8.</tr>
>> 9.</table>
>> 10.<?php
>> 11. }
>> 12. ?>
>>
>
>Hvis en funktion tep_banner_exists med nogle parametre giver et svar,
>udskrives værdien af en anden funktion.
>
>Den ene funktion kan tømme din bankkonto for værdier
Aha! Dér er forklaringen på mit overtræk. Nu vil en analyse af koden
forhåbentlig afsløre, hvor den har gjort af pengene. Det må være noget
med:
IF
amount > 0
THEN
move_to $wifes account
ELSE
forget_it
--
Venlig hilsen
Kurt Hansen
| |
Krabsen (08-01-2011)
| Kommentar Fra : Krabsen |
Dato : 08-01-11 11:23 |
|
Den 08-01-2011 10:23, Kurt Hansen skrev:
> I osCommerce forekommer denne stump:
>
> 1.<?php
> 2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
> 3. ?>
> 4.<br>
> 5.<table border="0" width="100%" cellspacing="0" cellpadding="0">
> 6.<tr>
> 7.<td align="center"><?php echo tep_display_banner('static',
> $banner); ?></td>
> 8.</tr>
> 9.</table>
> 10.<?php
> 11. }
> 12. ?>
>
> (Linienumre svarer ikke til de originale).
>
> I linie 2 er specificeret en "gruppe", kaldet 'Main-ad2'.
> 'dynamic' skulle betyde, at de bannere er hører til gruppen, vises på
> skift, som jeg har forstået det.
>
> Når $banner så bliver vist med echo, står det lige pludselig 'static'.
>
> Jeg aner intet om PhP; dette er blot en husmandsanalyse. Hvem kan
> forklare på dansk, hvad der sker i disse 12 linjer?
I linie 2 kaldes en funktion tep_banner_exists; med to parametre
'dynamic' og 'Main-ad2'.
denne funktion returnerer et-eller-andet - hvis dette svarer til værdien
af variablen $banner, ja så vises tabellen. (nb*)
I linie 7 kaldes en funktion tep_display_banner, også med to parametre.
Det er uden tvivl her selve banneret vises.
(nb*)
uden at kende koden, så ser linie 12 mystisk ud, idet denne if-sætning
altid afvikles.. Eet = betyder, at $banner sættes lig resultatet af
tep_banner_exists..
Så if'et har ingen betydning. Den rette syntaks bør formentlig være:
> 2. if ($banner == tep_banner_exists('dynamic', 'Main-ad2')) {
...læg mærke til de to ==
| |
Birger Sørensen (08-01-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 08-01-11 11:32 |
|
Krabsen udtrykte præcist:
> I linie 2 kaldes en funktion tep_banner_exists; med to parametre 'dynamic' og
> 'Main-ad2'.
>
> denne funktion returnerer et-eller-andet - hvis dette svarer til værdien af
> variablen $banner, ja så vises tabellen. (nb*)
>
> I linie 7 kaldes en funktion tep_display_banner, også med to parametre. Det
> er uden tvivl her selve banneret vises.
>
>
> (nb*)
> uden at kende koden, så ser linie 12 mystisk ud, idet denne if-sætning altid
> afvikles.. Eet = betyder, at $banner sættes lig resultatet af
> tep_banner_exists..
>
> Så if'et har ingen betydning. Den rette syntaks bør formentlig være:
>
> > 2. if ($banner == tep_banner_exists('dynamic', 'Main-ad2')) {
>
> ..læg mærke til de to ==
Det er ikke rigtigt.
if ($banner = ...) tildeler ganske rigtigt værdien af resultatet til
banner, men også til if(). Så hvis funktionen returnerer falsk,
springes løkken over.
Dit eksempel vil ikke indsætte værdien af funktionen til $banner, fordi
== er en boolean operator, der sammenligner to værdier.
Så faktisk vil den risikere at gøre modsat : $banner er formentlig ikke
defineret, og hvis funktionen returnerer noget der kan sidestilles med
ingenting, vil tabellen kun blive udskrevet når der ikke er brug for
den. Og det er næppe det, der sigtes imod...
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Birger Sørensen (08-01-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 08-01-11 11:26 |
|
Kurt Hansen frembragte:
> I osCommerce forekommer denne stump:
>
> 1. <?php
> 2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
> 3. ?>
> 4. <br>
> 5. <table border="0" width="100%" cellspacing="0" cellpadding="0">
> 6. <tr>
> 7. <td align="center"><?php echo tep_display_banner('static',
> $banner); ?></td>
> 8. </tr>
> 9. </table>
> 10. <?php
> 11. }
> 12. ?>
>
> (Linienumre svarer ikke til de originale).
>
> I linie 2 er specificeret en "gruppe", kaldet 'Main-ad2'.
> 'dynamic' skulle betyde, at de bannere er hører til gruppen, vises på
> skift, som jeg har forstået det.
>
> Når $banner så bliver vist med echo, står det lige pludselig 'static'.
>
> Jeg aner intet om PhP; dette er blot en husmandsanalyse. Hvem kan
> forklare på dansk, hvad der sker i disse 12 linjer?
'dynamic' og 'static' kan betyde hvad som helt. De er parametre til de
functioner der kaldes - tep_banner_exists() og tep_display_banner() -
og behøver ikke have noget med hverken hinanden eller banneret eller
reklamer at gøre, og kan indikere hvad som helst.
For en forklaring, skal man se funktionerne selv - og det giver i sig
selv ikke nødvendigvis mere info.
Ud fra navnene, må man antage at den ene funktion undersøger om der
faktisk findes en reklame, og den anden viser den.
På en side note...
Der oprettes en tabel med een række og een søjle. Der bør bruges en
div.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Kurt Hansen (08-01-2011)
| Kommentar Fra : Kurt Hansen |
Dato : 08-01-11 11:52 |
|
On Sat, 08 Jan 2011 11:26:08 +0100, Birger Sørensen
<sdc@bbsorensen.com> wrote:
>Kurt Hansen frembragte:
>> I osCommerce forekommer denne stump:
>>
>> 1. <?php
>> 2. if ($banner = tep_banner_exists('dynamic', 'Main-ad2')) {
>> 3. ?>
>> 4. <br>
>> 5. <table border="0" width="100%" cellspacing="0" cellpadding="0">
>> 6. <tr>
>> 7. <td align="center"><?php echo tep_display_banner('static',
>> $banner); ?></td>
>> 8. </tr>
>> 9. </table>
>> 10. <?php
>> 11. }
>> 12. ?>
>>
>> (Linienumre svarer ikke til de originale).
>>
>> I linie 2 er specificeret en "gruppe", kaldet 'Main-ad2'.
>> 'dynamic' skulle betyde, at de bannere er hører til gruppen, vises på
>> skift, som jeg har forstået det.
>>
>> Når $banner så bliver vist med echo, står det lige pludselig 'static'.
>>
>> Jeg aner intet om PhP; dette er blot en husmandsanalyse. Hvem kan
>> forklare på dansk, hvad der sker i disse 12 linjer?
>
>'dynamic' og 'static' kan betyde hvad som helt. De er parametre til de
>functioner der kaldes - tep_banner_exists() og tep_display_banner() -
>og behøver ikke have noget med hverken hinanden eller banneret eller
>reklamer at gøre, og kan indikere hvad som helst.
>For en forklaring, skal man se funktionerne selv - og det giver i sig
>selv ikke nødvendigvis mere info.
>Ud fra navnene, må man antage at den ene funktion undersøger om der
>faktisk findes en reklame, og den anden viser den.
Har kigget og du har ret. Først kontrolleres om der er flere end 0
bannere i gruppen. Hvis ja, og hvis der er flere end 1, starter der en
random-funktion - hvis det kun er 1, vises det statisk. Logisk nok.
--
Venlig hilsen
Kurt Hansen
| |
Bertel Lund Hansen (08-01-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 08-01-11 11:57 |
|
Kurt Hansen skrev:
> Har kigget og du har ret. Først kontrolleres om der er flere end 0
> bannere i gruppen. Hvis ja, og hvis der er flere end 1, starter der en
> random-funktion - hvis det kun er 1, vises det statisk. Logisk nok.
Logisk måske, men rodet design. Jeg ville have lavet én funktion
til display af bannere og så internt i den tjekke om det skulle
ske dynamisk eller statisk. Det ville have givet enklere både
HTML- og PHP-kode.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Kurt Hansen (08-01-2011)
| Kommentar Fra : Kurt Hansen |
Dato : 08-01-11 12:05 |
|
On Sat, 08 Jan 2011 11:57:10 +0100, Bertel Lund Hansen
<splitteminebramsejl@lundhansen.dk> wrote:
>Kurt Hansen skrev:
>
>> Har kigget og du har ret. Først kontrolleres om der er flere end 0
>> bannere i gruppen. Hvis ja, og hvis der er flere end 1, starter der en
>> random-funktion - hvis det kun er 1, vises det statisk. Logisk nok.
>
>Logisk måske, men rodet design. Jeg ville have lavet én funktion
>til display af bannere og så internt i den tjekke om det skulle
>ske dynamisk eller statisk. Det ville have givet enklere både
>HTML- og PHP-kode.
Det lyder overbevisende, men at begynde at omkode osCommerce, ligger
uden for mit kompetanceområde.
Det er take-it-as-it-is og easy-to-use-for-knoldesparkers, med ret til
og mulighed for at modificere, hvis man har forstand på det: ellers
anbefales det at holde nalderne væk og det gør jeg så
--
Venlig hilsen
Kurt Hansen
| |
Bertel Lund Hansen (08-01-2011)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 08-01-11 12:52 |
|
Kurt Hansen skrev:
> >Logisk måske, men rodet design. Jeg ville have lavet én funktion
> >til display af bannere og så internt i den tjekke om det skulle
> >ske dynamisk eller statisk. Det ville have givet enklere både
> >HTML- og PHP-kode.
> Det lyder overbevisende, men at begynde at omkode osCommerce, ligger
> uden for mit kompetanceområde.
Det var også kun en strøtanke. Jeg ville heller ikke give mig til
at pille i et monstersystem.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Leif Neland (08-01-2011)
| Kommentar Fra : Leif Neland |
Dato : 08-01-11 15:08 |
|
Den 08-01-2011 11:57, Bertel Lund Hansen skrev:
> Kurt Hansen skrev:
>
>> Har kigget og du har ret. Først kontrolleres om der er flere end 0
>> bannere i gruppen. Hvis ja, og hvis der er flere end 1, starter der en
>> random-funktion - hvis det kun er 1, vises det statisk. Logisk nok.
>
> Logisk måske, men rodet design. Jeg ville have lavet én funktion
> til display af bannere og så internt i den tjekke om det skulle
> ske dynamisk eller statisk. Det ville have givet enklere både
> HTML- og PHP-kode.
>
Næ, for bannere kan sikkert vises flere steder i forskelligt format.
Enten skulle du have en bannerfunktion for hvert format, eller
bannerfunktionen skulle have en parameter.
På denne måde kan du separere bannerlogik og bannerudseende.
Hvis du har forskellige "skins", skal bannerlogikken ikke skrives i alle
skins.
Og hvis man får sine bannere på en ny måde, fra en affiliate f.ex., kan
man nøjes med at rette et sted.
Leif
--
Bevar P2, luk P3, der er nok P3'er i forvejen.
| |
|
|