abonnement Unibet Coolblue Bitvavo
pi_67452756
quote:
Op donderdag 26 maart 2009 23:56 schreef Dawnbreaker het volgende:
nvm opgelost:

<a href="<?php echo $siteurl.weer;?>"> linkje </a> is de correcte php code
Alleen als "weer" een constante is. Het is iig geen variabele, want er staat geen $ voor. En het is geen functie, want er staat geen () achter. Het is ook geen string, want die moet tussen quotjes staan.
1<a href="<?php echo $siteurl; ?>weer"> linkje </a>
pi_67454227
quote:
Op donderdag 26 maart 2009 21:17 schreef Light het volgende:

[..]

Je kunt ook eerst php afsluiten, dan je html doen, en dan php weer openen. Scheelt je een hoop gedoe met " en '
Idd, maar op 1 pagina komen 100derden links, dan wordt het qua code erg onoverzichtelijk..
pi_67454418
quote:
Op donderdag 26 maart 2009 16:43 schreef hoerezooi het volgende:

[..]

gebruik het zend framework welke in zich heel veel gebruikt maakt van patterns oa singeltons, factory's,chain of command, mvc.
Thanks, ga wel eens ff kijken!
pi_67455037
Met deze code:

1
2
3
<?php
echo '<a target="blank" rel="nofollow" href="'.$row['http_www_website'].'" onClick="javascript: pageTracker._trackPageview(\'/outgoing/auto_accessoires/'.$row['www_website'].')"\'>'.$row['website'].'</a><br />';
?>


komt het er zo:



uit te zien.. bijna(?) dus, iemand nog een idee wat ik kan proberen om de uitgaande klik goed te kunnen meten?
  vrijdag 27 maart 2009 @ 10:16:02 #185
85514 ralfie
!Yvan eht nioj
pi_67455893
je moet de laatste 'en " nog omdraaien

Mag ik je een tip geven? als je broncode wil controleren, doe dit nooit in Firefox (als het gaat om quotes ed). Sure, het ziet er overzichtelijker uit, maar Firefox heeft de neiging om de broncode her en der al wat te fixen, door elementen en quotes en dergelijke toe te voegen en weg te halen. Ben er al vaker ingetuind, uren mn php doorgespit waar dat ene element of quoteje nou vandaan komt...
De broncode van Firefox is niet 100% dat wat de browser van de server krijgt, dat van bijvoorbeeld internet explorer is dat altijd wel. Ik gebruik IE nooit, behalve voor broncode's...
pi_67455935
quote:
Op vrijdag 27 maart 2009 09:41 schreef klusmeister het volgende:
Met deze code:
[ code verwijderd ]

komt het er zo:

[ afbeelding ]

uit te zien.. bijna(?) dus, iemand nog een idee wat ik kan proberen om de uitgaande klik goed te kunnen meten?
Als je door de enorm lange code niet meer ziet wat je aan het doen bent, breek het dan gewoon op in begrijpelijke stukken! Zo ziet je code er uit als je het opbreekt in een paar logische stukken:

1
2
3
4
5
6
<?php
$url 
$row['http_www_website'];                                
$onclick 'javascript: pageTracker._trackPageview(\'/outgoing/auto_accessoires/'.$row['www_website'].')';
$linkText $row['website'];
echo 
'<a target="blank" rel="nofollow" href="'.$url.'" onClick="'.$onclick.'"\'>'.$linkText.'</a><br />';
?>


Dan zie je meteen waar de fout zit. (Ik tenminste wel :P)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_67457042
Met Rembo eens. Wel een typo op regel 5: een \' die er niet hoort (na de onclick)
pi_67457332
quote:
Op vrijdag 27 maart 2009 11:07 schreef Roy_T het volgende:
Met Rembo eens. Wel een typo op regel 5: een \' die er niet hoort (na de onclick)
Ook dan blijf ik met het ' verhaal zitten.
pi_67457465
Ik heb de code alleen opgeknipt in logische stukken. Alle fouten staan er inderdaad nog in.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_67457508
quote:
Op vrijdag 27 maart 2009 11:25 schreef SuperRembo het volgende:
Ik heb de code alleen opgeknipt in logische stukken. Alle fouten staan er inderdaad nog in.
En net omdat ik de fout niet kan ontdekken kwam ik hier voor hulp..
pi_67457607
quote:
Op vrijdag 27 maart 2009 10:16 schreef ralfie het volgende:
je moet de laatste 'en " nog omdraaien

Mag ik je een tip geven? als je broncode wil controleren, doe dit nooit in Firefox (als het gaat om quotes ed). Sure, het ziet er overzichtelijker uit, maar Firefox heeft de neiging om de broncode her en der al wat te fixen, door elementen en quotes en dergelijke toe te voegen en weg te halen. Ben er al vaker ingetuind, uren mn php doorgespit waar dat ene element of quoteje nou vandaan komt...
De broncode van Firefox is niet 100% dat wat de browser van de server krijgt, dat van bijvoorbeeld internet explorer is dat altijd wel. Ik gebruik IE nooit, behalve voor broncode's...
Maar dat kan je toch ook in je voordeel gebruiken, door de broncode uit FF te kopieren? Want die is dan al "gefixed" of werkt dat niet?
"Do me a favor, try not to think, you're going to hurt yourself"
"You go to heaven for the climate and hell for the company"
pi_67457664
Wil je een paar tips om fouten op te sporen en in de toekomst te voorkomen, of heb je liever dat iedereen telkens al je typfoutjes komt fixen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_67458190
quote:
Op vrijdag 27 maart 2009 11:31 schreef SuperRembo het volgende:
Wil je een paar tips om fouten op te sporen en in de toekomst te voorkomen, of heb je liever dat iedereen telkens al je typfoutjes komt fixen
Nee helemaal niet, integendeel, soms is een zet in de goede richting erg fijn, ik ben alweer een stuk verder gekomen door eerder advies hier.

Ik kom er net achter dat met een simpele " \ " het foutje is opgelost.

Bedankt iig voor de hulp
pi_67458220
tvp
Redacted
pi_67458890
quote:
Op vrijdag 27 maart 2009 10:16 schreef ralfie het volgende:

Sure, het ziet er overzichtelijker uit, maar Firefox heeft de neiging om de broncode her en der al wat te fixen, door elementen en quotes en dergelijke toe te voegen en weg te halen.
Firebug wel, maar Firefox "view source" niet.
pi_67462434
Ik zit wat te klooien met OO-programmeren, maar ik kom ergens niet helemaal uit.

Ik heb een site gemaakt, en aan die site wil ik modules kunnen toevoegen. Dit is enkel een directory met bestandjes, die je alleen maar aan de modules-directory hoeft toe te voegen, en het werkt al.

Nou heb ik een bestand modules.php met daarin de klasse Modules. Deze klasse kijkt in de modules directory om te zien welke modules er zijn.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class Modules {
  var 
$modules = array();
  function 
__construct() {
    
$dir opendir("../modules");
    while (
false !== ($file readdir($dir))) {
      if (
is_dir("../modules/$file") && !preg_match("/\.\.?/"$file)) {
        
$mod = new Module($file);
        
array_push($this->modules$mod);
      }
    }
  }
}
?>


Zoals je daar ziet, wordt voor elke module weer een nieuw object aangemaakt van de klasse Module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Module {
  var 
$templatedir;
  var 
$linkname;
  function 
__construct($name) {
    
$this->templatedir "../modules/".$td."/templates";
    if(
file_exists("../modules/$name/$name.php"))
      require(
"../modules/$name/$name.php");
    if(
file_exists("../modules/$name/$name_admin.php"))
      require(
"../modules/$name/$name_admin.php");
  }
  function 
getModuleByName($name) {
    foreach(
$this->modules as $module) {
      if (
$module->name == $name) {
        return 
$module;
      }
    }
  }
}
?>


in deze module gaat het echter niet helemaal goed.

In die includes wordt ten eerste $this->linkname bepaald, wat geen probleem is. Er staat (staan) echter ook functies in, in elk geval de functie index($args). Hoe kan ik er nou voor zorgen dat deze functies gewoon onderdeel worden van het nieuw aangemaakte object? Beetje moeilijk uit te leggen allemaal, maar uiteindelijk wil ik in het hoofdscript het volgende stukje script gebruiken:

1
2
3
<?php
$modules
->getModuleByName("agenda")->index($args);
?>


Ik hoop dat het een beetje begrijpelijk is... Hoe kan ik dit oplossen?
Trotse poster van het 37000000ste bericht ^O^
pi_67462582
quote:
Op vrijdag 27 maart 2009 14:18 schreef daReaper het volgende:
Ik zit wat te klooien met OO-programmeren, maar ik kom ergens niet helemaal uit.

Ik heb een site gemaakt, en aan die site wil ik modules kunnen toevoegen. Dit is enkel een directory met bestandjes, die je alleen maar aan de modules-directory hoeft toe te voegen, en het werkt al.

Nou heb ik een bestand modules.php met daarin de klasse Modules. Deze klasse kijkt in de modules directory om te zien welke modules er zijn.
[ code verwijderd ]

Zoals je daar ziet, wordt voor elke module weer een nieuw object aangemaakt van de klasse Module
[ code verwijderd ]

in deze module gaat het echter niet helemaal goed.

In die includes wordt ten eerste $this->linkname bepaald, wat geen probleem is. Er staat (staan) echter ook functies in, in elk geval de functie index($args). Hoe kan ik er nou voor zorgen dat deze functies gewoon onderdeel worden van het nieuw aangemaakte object? Beetje moeilijk uit te leggen allemaal, maar uiteindelijk wil ik in het hoofdscript het volgende stukje script gebruiken:
[ code verwijderd ]

Ik hoop dat het een beetje begrijpelijk is... Hoe kan ik dit oplossen?
Maak de Module class een extensie van een abstracte class met daarin functies die je extended class moet implementeren. Maak elke module class een unique naam, en instanieer deze. Dan hoef je alleen nog maar $modulenaam->index() te doen, zonder dat je via de getModuleByname() iets hoeft te doen.
pi_67463422
quote:
Op vrijdag 27 maart 2009 14:23 schreef Scorpie het volgende:

[..]

Maak de Module class een extensie van een abstracte class met daarin functies die je extended class moet implementeren. Maak elke module class een unique naam, en instanieer deze. Dan hoef je alleen nog maar $modulenaam->index() te doen, zonder dat je via de getModuleByname() iets hoeft te doen.
Ik vrees dat ik het niet helemaal snap :@ Ben nog een beetje een beginner met OOP.

Die getModuleByName() wil ik eigenlijk wel houden. Ik heb zojuist ook een functie op php.net gevonden die ik in mijn Modules klasse kon stoppen, zodat ik een foreach() op de $modules kan gooien, waarbij $modules dan elke keer een nieuwe module returnt.

Ik snap alleen niet zo goed wat dat eerste is, wat je daar zegt. Mijn Modules klasse ziet er nu zo uit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
class Modules implements IteratorAggregate {
  var 
$modules = array();
  function 
__construct() {
    
$dir opendir("../modules");
    while (
false !== ($file readdir($dir))) {
      if (
is_dir("../modules/$file") && !preg_match("/\.\.?/"$file)) {
        if(
file_exists("../modules/$file/$file.php"))
          require(
"../modules/$file/$file.php");
        if(
file_exists("../modules/$file/$file_admin.php"))
          require(
"../modules/$name/$name_admin.php");
        
$mod = new $file();
        
array_push($this->modules$mod);
      }
    }
  }
  public function 
getIterator() {
      return new 
MyIterator($this->modules);
  }  
  function 
getModuleByName($name) {
    foreach(
$this->modules as $module) {
      if (
$module->name == $name) {
        return 
$module;
      }
    }
  }
}
$modules = new Modules();
?>


de Module klasse ziet er zo uit:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class Module {
  var 
$templatedir;
  var 
$linkname;
  var 
$name;

  function 
__construct($name) {
    
$this->templatedir "../modules/".$td."/templates";
    
$this->name $name;
      
  }
}
?>


Agenda.php:
1
2
3
4
5
6
7
8
9
<?php
$this
->linkname "Agenda";

class 
agenda implements Module {
  function 
index($args) {
    [...]
  }
}
?>


Maar dit geeft een error: Fatal error: agenda cannot implement Module - it is not an interface in C:\severjanin\modules\agenda\agenda.php on line 4

Zoals ik al zei: ik ben nog een beetje een beginneling hierin. Wat houdt dat "interface" in?
Trotse poster van het 37000000ste bericht ^O^
  vrijdag 27 maart 2009 @ 14:52:17 #199
46383 Tiemie
sowieso wel!
pi_67463468
quote:
Op vrijdag 27 maart 2009 14:51 schreef daReaper het volgende:

[..]

Ik vrees dat ik het niet helemaal snap Ben nog een beetje een beginner met OOP.

Die getModuleByName() wil ik eigenlijk wel houden. Ik heb zojuist ook een functie op php.net gevonden die ik in mijn Modules klasse kon stoppen, zodat ik een foreach() op de $modules kan gooien, waarbij $modules dan elke keer een nieuwe module returnt.

Ik snap alleen niet zo goed wat dat eerste is, wat je daar zegt. Mijn Modules klasse ziet er nu zo uit:
[ code verwijderd ]

de Module klasse ziet er zo uit:
[ code verwijderd ]

Agenda.php:
[ code verwijderd ]

Maar dit geeft een error: Fatal error: agenda cannot implement Module - it is not an interface in C:\severjanin\modules\agenda\agenda.php on line 4

Zoals ik al zei: ik ben nog een beetje een beginneling hierin. Wat houdt dat "interface" in?
Een interface is wat anders dan een abstrace class.

een class Extend je, een interface moet je implementeren.
pi_67464174
quote:
Op vrijdag 27 maart 2009 14:51 schreef daReaper het volgende:

[..]

Ik vrees dat ik het niet helemaal snap Ben nog een beetje een beginner met OOP.

Die getModuleByName() wil ik eigenlijk wel houden. Ik heb zojuist ook een functie op php.net gevonden die ik in mijn Modules klasse kon stoppen, zodat ik een foreach() op de $modules kan gooien, waarbij $modules dan elke keer een nieuwe module returnt.
Waarom zou je dat willen houden? Het is een dure operatie die eigenlijk onnodig is, aangezien je al de naam weet van de module die je wilt aanspreken. Dan heeft het geen zin om IEDERE keer weer die modules lijst op te halen en aan te spreken, roep dan direct de controller van de module zelf aan.

De rest heeft Tiemie al verteld
pi_67464175
na nog wat geklooi ben ik hier op uit gekomen, mochten jullie nog iets zien dat niet goed is, dan hoor ik dat graag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
interface ModFuncs {
  public function 
index($args);
}

abstract class 
Module implements ModFuncs {
  var 
$templatedir;
  var 
$linkname;
  var 
$name;

  function 
__construct() {
    
$this->name get_class($this);
    
$this->templatedir "../modules/".$this->name."/templates";
  }
}

class 
Modules implements IteratorAggregate {
  var 
$modules = array();
  function 
__construct() {
    
$dir opendir("../modules");
    while (
false !== ($file readdir($dir))) {
      if (
is_dir("../modules/$file") && !preg_match("/\.\.?/"$file)) {
        if(
file_exists("../modules/$file/$file.php"))
          require(
"../modules/$file/$file.php");
        if(
file_exists("../modules/$file/$file_admin.php"))
          require(
"../modules/$name/$name_admin.php");
        
$mod = new $file();
        
array_push($this->modules$mod);
      }
    }
  }
  public function 
getIterator() {
      return new 
MyIterator($this->modules);
  }  
  function 
getModuleByName($name) {
    foreach(
$this->modules as $module) {
      if (
$module->name == $name) {
        return 
$module;
      }
    }
  }
}
$modules = new Modules();
?>


agenda.php:
1
2
3
4
5
6
7
8
9
10
<?php
$this
->linkname "Agenda";

class 
agenda extends Module {
  
  function 
index($args) {
    [...]
  }
}
?>


Maar als ik het goed begrijp, mag ik dan alleen een index() functie in m'n klasse agenda maken. Andere functies zijn niet oproepbaar, tenzij ik ze in de interface definieer?

Ah, het werkt wel degelijk, zie ik nu. Ik moest er alleen nog even $this-> voor zetten
Trotse poster van het 37000000ste bericht ^O^
pi_67464220
quote:
Op vrijdag 27 maart 2009 15:13 schreef Scorpie het volgende:

[..]

Waarom zou je dat willen houden? Het is een dure operatie die eigenlijk onnodig is, aangezien je al de naam weet van de module die je wilt aanspreken. Dan heeft het geen zin om IEDERE keer weer die modules lijst op te halen en aan te spreken, roep dan direct de controller van de module zelf aan.

De rest heeft Tiemie al verteld
Nu ik er over na denk is die functie ook niet meer van toepassing. $modules wordt aangemaakt en in het hoofdscript komt het volgende stukje script voorbij:

foreach($modules as $mod) {
array_push($menuitems, array($mod->name, $mod->linkname));
if ($page == $mod->name) {
$content = $mod->index($args);
}
}

Dat getModuleByName() heb ik bij nader inzien dus helemaal niet nodig.
Trotse poster van het 37000000ste bericht ^O^
pi_67464581
quote:
Op vrijdag 27 maart 2009 15:15 schreef daReaper het volgende:

[..]

Nu ik er over na denk is die functie ook niet meer van toepassing. $modules wordt aangemaakt en in het hoofdscript komt het volgende stukje script voorbij:

foreach($modules as $mod) {
array_push($menuitems, array($mod->name, $mod->linkname));
if ($page == $mod->name) {
$content = $mod->index($args);
}
}

Dat getModuleByName() heb ik bij nader inzien dus helemaal niet nodig.
  vrijdag 27 maart 2009 @ 16:43:16 #204
85514 ralfie
!Yvan eht nioj
pi_67467204
quote:
Op vrijdag 27 maart 2009 12:17 schreef Roy_T het volgende:

[..]

Firebug wel, maar Firefox "view source" niet.
Beeld->paginabron heb ik het over. Firebug heb ik niet eens geinstalleerd.
pi_67468941
quote:
Op vrijdag 27 maart 2009 16:43 schreef ralfie het volgende:

Beeld->paginabron heb ik het over. Firebug heb ik niet eens geinstalleerd.
Dan weet ik niet welke Firefox jij gebruikt, maar de mijne past echt niets aan de in de source vziw

Heb je een testcase?
  vrijdag 27 maart 2009 @ 18:53:55 #206
85514 ralfie
!Yvan eht nioj
pi_67471005
quote:
Op vrijdag 27 maart 2009 17:37 schreef Roy_T het volgende:

[..]

Dan weet ik niet welke Firefox jij gebruikt, maar de mijne past echt niets aan de in de source vziw

Heb je een testcase?
Heb het effe zitten uitzoeken, maar het blijkt mijn overactieve 'view selection source' te zijn. Deze code is natuurlijk al min of meer geparsed...

Laat dus maar.
pi_67473346
Lama

[ Bericht 50% gewijzigd door daReaper op 27-03-2009 20:01:06 ]
Trotse poster van het 37000000ste bericht ^O^
pi_67520636
edit

[ Bericht 52% gewijzigd door Qunix op 30-03-2009 09:32:20 ]
pi_67521733
mn eerst werkende java Jar file
http://cablegunmaster.nl/test666.php
Redacted
pi_67521762
edit-
Redacted
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')