27 berichten aan het bekijken - 1 tot 27 (van in totaal 27)
  • Q:
    Bijdrager
    Shmoo

    PHP – verschillende echo's verbinden

    Ik heb een php functie gemaakt en die werkt prima maar nu wil ik de code iets opschonen door alle echo’s te verbinden maar hoe deed ik dat ook alweer met HTML er tussen?

    http://pastebin.com/39xfPYNb

    if – true

    else

    Bijdrager
    verwijderd-profiel

    Misschien een variabele maken en die echo-en. En dan steeds wat eraan toevoegen.

    $jeVariabele = “hallo”;
    $jeVariabele .= “doei”;
    $jeVariabele .- “daag”;

    echo $jeVariabele;

    Of bedoel je wat anders?

    Bijdrager
    Shmoo

    Nou kijk naar dit voorbeeld door een puntje er tussen te plaatsen kun je toch twee dingen verbinden dat probeer ik ook bij al die echo’s te doen – puntjes er tussen zodat het één echo lijn wordt.

    Alleen zodra er een function tussen komt als bbp_topic_author_link() dan krijg je verkeerde syntax error, waarschijnlijk omdat ik eerst double quotes gebruikte maar ik de function niet tussen double quotes pak zetten.

    Het zal waarschijnlijk eenvoudig zijn maar ik ben te stom om het begrijpen:)

    Bijdrager
    Anoniem ex-lid
     
     echo "<p>door: ". bbp_topic_author_link( array( 'type' => 'name' ) )."<span class=\"last-reply-by\">laatste reactie: ".bbp_author_link( array( 'post_id' => bbp_get_topic_last_active_id(), 'type' => 'name' ) )." <span class=\"time-ago\">".bbp_topic_freshness_link(). "</span></span></p>";
     
    Bijdrager
    Fingerlicking

    Ik blijf me verbazen over de arrogantie van sommige leden hier op OMT en de simplistische vragen die ze stellen.

    Of je laat iest van je arrogantie gaan en erkent dat je ook een noob bent, of je gaat je verdiepen in techniek.

    Bijdrager
    Shmoo

    Gevonden, het is een komma voor de functie ipv een punt.

    Bijdrager
    Fingerlicking

    Je snapt dus echt geen klote van php..

    Bijdrager
    computer space

    Je kunt ook enkele en dubbele quotes mixen:
    echo(‘<span class=”tekst”>Tekst</span>’.”\n”);

    De nieuwe-regel \n werkt namelijk alleen tussen dubbele quotes, terwijl je voor een class selector weer enkele quotes rond de echo-tekst nodig hebt.

    Bijdrager
    ikkezelluf

    Nette vraag, nette antwoorden, alleen weer dat geboer van zo’n haantje die zich weer eens moet laten gelden……

    Bijdrager
    Shmoo

    Op die onzin moet je niet eens reageren..

    #zinloos

    Bijdrager
    Domtoren
    Shmoo op 18 januari 2014

    Gevonden, het is een komma voor de functie ipv een punt.

    Als je bedoelt: echo “het jaar is: ” , date(“Y”);

    Dat werkt dus niet. Die komma moet echt een punt zijn.

    Bijdrager
    Anoniem ex-lid

    goedzo shmoo.

    Maar even terug. Ik gebruik voor echo altijd een ‘
    En wil ik een variable of php code gebruiken tussen een echo : test’.$variable.’ tekst
    als je voor echo “tekst” gebruik dan is het test”.$variable.” tekst

    Maar altijd of ‘ gebruiken of ” in een echo.

    Bijdrager
    Shmoo

    Ik zal jullie even het verschil laten zien – moet even wat aanpassingen maken zodat het beter zichtbaar is.

    Bijdrager
    Shmoo

    Ik had online op een forum iets gezien dat ik wel subtiel vond ogen en ik werd nieuwsgierig of mij dat ook zou lukken om het na te maken.

    Even voor de duidelijkheid dit staat onder een titel van een topic op een forum.

    Topic starter + zijn tijd.

    En zodra er gereageerd wordt op het topic, vervalt de tijd van de topic starter en komt de informatie van de laatste gebruiker die in het topic heeft geregeerd er achter te staan.

    ___________

    Prima, dus nu ben ik in de Core van mijn forum software gaan kijken welke standaard functions er al bestaan om bepaalde data te kunnen tonen en met behulp van die functions en zeer beperkte PHP kennis ben ik dan zelf een eigen function gaan maken die doet wat bovenstaande plaatjes moeten doen.

    Eerst check ik of het topic een reply_count heeft ja of nee en aan de hand daarvan heb ik dan een IF – ELSE conditionail tag gemaakt.
    Het werkt precies zoals ik wil hebben alleen vond ik al die echo’s onder elkaar minder mooi.

    ( zonder CSS )

    ( broncode – netjes alles binnen de P tag )

    Maar zodra ik dit doe . bbp_topic_author_link() ipv dit , bbp_topic_author_link() gooit het script mijn linkjes naar de profielpagina’s uit de P tag.

    ( kijk hoe hoog de user_id’s nu staan )

    ( broncode – buiten-/boven de P tag )

    Das raar he:)

    Bijdrager
    Anoniem ex-lid

    kan het alleen maar zien door demo of echte code. niet bij afbeeldingen en plaatjes code

    Bijdrager
    Shmoo

    Dit is dezelfde 100% dezelfde functie alleen met puntjes tussen de echo lijn met functies en HTML ipv komma’s.
    http://pastebin.com/BJ7RZ4kN

    En mijn eigen functie wordt dan in de page template op deze manier aangeroepen.

    <?php shmoo_time_switch_if_has_replies(); ?>

    Het probleem (verschil) tussen A en B zal denk ik zitten in die bbp_topic_author_link() functie, dit is een bestaande (core) functie waar je niet zomaar veranderingen aan kunt maken ( op een array label aanpassing na ) omdat deze bestanden updaten tijdens software-updates.

    http://pastebin.com/FMEmyuqi

    Wil je deze functie wel aanpassen dan moet je gebruikt maken van iets dat filters heet binnen WordPress.
    Onderaan zie je deze regel staan,
    return apply_filters( ‘bbp_get_topic_author_link’, $author_link, $args );

    Dat wilt volgens mij zeggen dat je op die positie met een eigen add_filter( ‘bbp_get_topic_author_link’, ‘your_custom_function’ ); in bovenstaande Core functie kunt haken en veranderingen aanbrengen zonder dat je de core bestanden aanpast alleen dat is een techniek die ik in principe wel begrijp hoe het werkt maar (nog) niet weet hoe ik het nu precies moet uitvoeren.

    Zo zou je bijv. je eigen functie kunnen maken met daarin een bepaalde waarde die je dan weer koppelt aan een $variable met dezelfde naam als in de core functie en dan via die add_filter() optie je eigen functie met diezelfde $variable in de originele functie laten vallen. Omdat jouw $variable dan als laatste (return) gelezen wordt is jouw ‘waarde’ geldig.

    Op die manier werken filters volgens mij maar dat vogel ik eens dezer dagen nog wel uit hoe dat nu precies werkt want dat ga ik nog veel vaker nodig hebben.

    Bijdrager
    Anoniem ex-lid

    Hoe vaak ik wel niet denk dat dingen zelfde zijn ;).

     
    <span class=\"time-ago\">" , bbp_topic_freshness_link() . "</span></span></p>";
     

    die comma moet een punt zijn.

    ‘. en .’ moet werken (of “. .”) dus er zit ergens iets fout.

    Bijdrager
    Anoniem ex-lid

    Ow en dan moet ik ook gelijk even hier aan denken :D.

    Fingerlicking op 18 januari 2014

    Ik blijf me verbazen over de arrogantie van sommige leden hier op OMT en de simplistische vragen die ze stellen.

    Of je laat iest van je arrogantie gaan en erkent dat je ook een noob bent, of je gaat je verdiepen in techniek.

    Is het arrogantie dat je niet wil helpen, of kun je niet in de techniek verdiepen ;)?

    Bijdrager
    michiel112

    PHP is niet bedoelt om html-code te printen. Daar gaat het in mijn ogen dan ook al mis. Geloof dat Fingerlicking dit ook al (op een onvriendelijke manier) probeerde duidelijk te maken.

    Bijdrager
    Anoniem ex-lid

    Ik gebruik het altijd om html code te printen.

    Vind tussen html <? en ?> ertussen altijd zo rampzalig en onhandig.
    wat officieel zo is heb ik me nooit afgevraagd….

    Bijdrager
    Domtoren
    michiel112 op 20 januari 2014

    PHP is niet bedoelt om html-code te printen.

    Waarom vind je dat PHP daar niet voor is bedoelD?

    Bijdrager
    Anoniem ex-lid

    tja sommige roepen maar wat, maar bij uitleg word het te moeilijk :P.

    Bijdrager
    michiel112
    Domtoren op 21 januari 2014
    michiel112 op 20 januari 2014

    PHP is niet bedoelt om html-code te printen.

    Waarom vind je dat PHP daar niet voor is bedoelD?

    Ik vind dat niet, PHP is gewoon met een heel ander doel ontworpen. Elke taal is met een specifiek doel ontwerpen. Het gescheiden houden van deze talen zorgt er voor dat je ook het doel van de talen apart houdt, maar het meest belangrijke is dat het veel overzichtelijker is en daardoor makkelijker te onderhouden.

    Voor af en toe een klein dingetje php in een site kan je best wel eens wat html printen. Heb ik zelf niks op tegen (al zal ook niet iedereen het met me eens zijn), maar voor echte grote projecten moet je het gewoon gescheiden houden (hiervoor kan je een template engine gebruiken zoals smarty, maar php op zich is eigenlijk ook al een template taal dus kan ook zonder). Ik denk dat Shmoo dit eigenlijk ook wel weet met zijn WP ervaring… Misschien ook eens wat meer in PHP verdiepen?

    Bijdrager
    Domtoren
    michiel112 op 03 februari 2014

    [k vind dat niet, PHP is gewoon met een heel ander doel ontworpen

    Sorry, maar dat is geen antwoord. Met welk doel is PHP dan wel ontworpen? En waarom mag ik er geen HTML mee printen?

    Bijdrager
    Domtoren

    En dan nog even van de PHP site dit citaat: “What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server, generating HTML which is then sent to the client.”

    klik

    Bijdrager
    Anoniem ex-lid

    @Domtoren zo te lezen denkt @michiel112 dat php en websites alleen uit wp bestaat.

    Vraag me af hoe je een if else statement dan elke keer moet.
    Of een geheel formulier in stappen moet programmeren als html niet geprint mag worden door php hahaha

    Bijdrager
    Koning Frank

    @MEEUW:

     
    <?php
    if (statement) {
    $foo = "bar";
    }
    ?>
     
     
    <p>
    <?=$foo?>
    </p>
     

    ?????

    Niet dat ik erg fan ben van php shorttags, maar goed. Beste manier voor PHP in html is een template framework te gebruiken zoals http://www.smarty.net/

    @schmoo: Leer object oriented php. De manier waarop jij je functies schrijft is echt verre weg van functioneel en totaal niet scalable.

27 berichten aan het bekijken - 1 tot 27 (van in totaal 27)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.