コード例 #1
0
$tulos = Kaavaeditori::muotoile_kaavat($teksti);
$sisalto .= "Tulos: " . $tulos;
$sisalto .= "<br/><br/>";
$teksti = 'T&auml;m&auml; on ' . Kaavaeditori::$kaavan_alku . Kaavaeditori::$jako_alku . '4##x<sup>2</sup>+5' . Kaavaeditori::$jako_loppu . '-4-' . Kaavaeditori::$jako_alku . '5##4' . Kaavaeditori::$jako_loppu . '+50' . Kaavaeditori::$kaavan_loppu . ' kaava.';
$sisalto .= "Sy&ouml;te 7: '" . $teksti . "'<br/>";
$tulos = Kaavaeditori::muotoile_kaavat($teksti);
$sisalto .= "Tulos: " . $tulos;
$sisalto .= "<br/><br/>";
$teksti = 'T' . Kaavaeditori::$kaavan_alku . 'Kiihtyvyys=' . Kaavaeditori::$jako_alku . 'nopeuden muutos##muutoksen aika' . Kaavaeditori::$jako_loppu . '' . Kaavaeditori::$kaavan_loppu;
$sisalto .= "Sy&ouml;te 8: '" . $teksti . "'<br/>";
$tulos = Kaavaeditori::muotoile_kaavat($teksti);
$sisalto .= "Tulos: " . $tulos;
$sisalto .= "<br/><br/>";
$teksti = 'Pitkan tekstin rivityksessa tulee ' . 'ongelmia kaavan sisällä.' . Kaavaeditori::$kaavan_alku . ' Pitkan tekstin rivityksessa tulee ' . 'ongelmia kaavan sisällä. Hups kun aakkoset nayttaa hassuilta' . ' tuolla. Yritan saada taman riittamaan useammalle riville, jotta' . ' ongelma tulee nakyviin kunnolla. phv pj jodjsdj sj os osjosidfisj' . '5t+6=' . Kaavaeditori::$jako_alku . '4+y##333' . Kaavaeditori::$jako_loppu . '= 2222 Pitkan tekstin rivityksessa tulee ' . 'ongelmia kaavan sisällä. Hups kun aakkoset nayttaa hassuilta' . ' tuolla. Yritan saada taman riittamaan useammalle riville, jotta' . ' ongelma tulee nakyviin kunnolla' . Kaavaeditori::$kaavan_loppu;
$sisalto .= "Sy&ouml;te 9: '" . $teksti . "'<br/>";
$tulos = Kaavaeditori::muotoile_kaavat($teksti);
$sisalto .= "Tulos: " . $tulos;
$sisalto .= "<br/><br/>";
$sisalto .= "<h2>Loppui luokan Kaavaeditori metodin\n            'muotoile_kaavat(teksti)' testi LOPPU</h2>";
$sisalto .= "********************************************************************";
$sisalto .= "<h2>Laskuriluokan\n            testaus:</h2>";
$sisalto .= "<h3>Laskuriluokan supista_yksinkert_muot -metodin\n            testaus:</h3>";
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("+", "5", "20"), true);
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("+", "3", "18"), true);
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("+", "1", "3"), true) . "=4x";
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("+", "1", "0"), true);
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("-", new Kokonaisluku("-", "3000"), new Kokonaisluku("-", "60000")), true);
$sisalto .= $laskuri->supista_yksinkert_muot(new Murtoluku("+", "500787", "99945"), true);
$sisalto .= "<h3>Laskuriluokan lavenna_samannimisiksi -metodin\n            testaus:</h3>";
$sisalto .= $laskuri->lavenna_samannimisiksi(new Murtoluku("+", "1", "4"), new Murtoluku("-", "3", "7"), true);
$sisalto .= $laskuri->lavenna_samannimisiksi(new Murtoluku("-", "23", "25"), new Murtoluku("+", "7", "24"), true);
コード例 #2
0
ファイル: Kaava.php プロジェクト: jpkerkkanen/opinnot
 public function __construct($syotehtml)
 {
     parent::__construct(true);
     // Yksirivinen on (siis merkki itsessään).
     $this->syotehtml = $syotehtml;
     // Haetaan merkinnät:
     $merkinnat = Kaavaeditori::get_2parts($this->syotehtml, Kaavaeditori::$yleiserotin);
     $this->alamerkinta = $merkinnat[0];
     $this->ylamerkinta = $merkinnat[1];
 }
コード例 #3
0
 /**
  * Palauttaa koosteessa näytettävän kokonaisuuden tulostusta varten optimoidun
  * html-koodin.
  *
  * @param Elementti $elementti Olio, joka viittaa kokonaisuuteen, jonka
  * näkymää parhaillaan puuhaillaan.
  * @param Kokonaisuusolio $kokonaisuus
  * @param Parametrit $parametriolio
  * @param int $kohdeoikeudet Käyttäjän oikeudet tähän olioon.
  * @param <type> $selitys_auki jos true, niin selitys näytetään, muuten ei.
  * @return <type>
  */
 function luo_koostenakyma_tulostus($elementti, $kokonaisuus, $parametriolio, $selitys_auki, $kohdeoikeudet)
 {
     $omaid = $parametriolio->get_omaid();
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $kayttajan_valtuudet = $parametriolio->get_valtuudet();
     $palaute = "";
     $selitys = "";
     $nayta_selitys_nappi = "";
     /* Näyttää selityksen. */
     $siirra_ylemmaksi_nappi = "";
     $siirra_alemmaksi_nappi = "";
     // Alla jostakin syystä !empty($kokonaisuus->getSelitys()) ei toiminut!
     if ($kokonaisuus->getSelitys() != "") {
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Tämän avulla löytyvät */
         $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id());
         if ($selitys_auki) {
             $title = Painikkeet::$SULJE_SELITYS_title;
             $onsubmit_funktionimi = "sulje_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$SULJE_SELITYS_value, 'title' => $title);
         } else {
             $title = Painikkeet::$NAYTA_SELITYS_title;
             $onsubmit_funktionimi = "nayta_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$NAYTA_SELITYS_value, 'title' => $title);
         }
         $nayta_selitys_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
     }
     if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
         // Järjestyksen muutosnapit (jos mielekästä):
         /*$siirra_ylemmaksi_nappi = "";
                     if($kokonaisuus->getEdellisenId_taso() != Kokonaisuusolio::$kokon_edellista_ei_ole){
                         $onsubmit_funktionimi = ""; // Tulevaa varten.
                         $onsubmit_parametrit = "";  // Ei ole vielä.
                         $form_maaritteet =
                             array("class" => "rinnakkain",
                                 "method"=>"post",
                                "action"=>"{$_SERVER['PHP_SELF']}?id_kokon=".$kokonaisuus->get_id().
                                             "&oppiaine_kokon=".$kokonaisuus->getOppiaine().
                                             "&kieli_id=".$kokonaisuus->getKieli().
                                             "&ed_id_kokon=".$kokonaisuus->getEdellisenId_taso().
                                             "&siirto_ylos=true");
                         $input_maaritteet =
                             array("value" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_value,
                                 "title" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_title,
                                 "name"=>Toimintonimet::$kokonaisuustoiminto);
         
                         try{
                             $siirra_ylemmaksi_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                         $onsubmit_funktionimi,
                                                         $onsubmit_parametrit,
                                                         $form_maaritteet,
                                                         $input_maaritteet);
                         }
                         catch (Exception $poikkeus){
                             $siirra_ylemmaksi_nappi = $poikkeus->getMessage();
                         }
                     }
         
         
                     // Alaspäin siirto:
                     $siirra_alemmaksi_nappi = "";
                     if($kokonaisuus->getSeuraavanId_taso() != Kokonaisuusolio::$kokon_seuraavaa_ei_ole){
                         $onsubmit_funktionimi = ""; // Tulevaa varten.
                         $onsubmit_parametrit = "";  // Ei ole vielä.
                         $form_maaritteet =
                             array("class" => "rinnakkain",
                                 "method"=>"post",
                                "action"=>"{$_SERVER['PHP_SELF']}?id_kokon=".$kokonaisuus->get_id().
                                             "&oppiaine_kokon=".$kokonaisuus->getOppiaine().
                                             "&kieli_id=".$kokonaisuus->getKieli().
                                             "&seur_id_kokon=".$kokonaisuus->getSeuraavanId_taso().
                                             "&siirto_ylos=0");
                         $input_maaritteet =
                             array("value" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_value,
                                 "title" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_title,
                                 "name"=>Toimintonimet::$kokonaisuustoiminto,);
         
                         try{
                             $siirra_alemmaksi_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                         $onsubmit_funktionimi,
                                                         $onsubmit_parametrit,
                                                         $form_maaritteet,
                                                         $input_maaritteet);
                         }
                         catch (Exception $poikkeus){
                             $siirra_alemmaksi_nappi = $poikkeus->getMessage();
                         }
                     }*/
     }
     // Tehtävien lisääminen sopivasti oikeutetuille:
     if ($kayttajan_valtuudet >= Valtuudet::$TEHTAVA_LISAYS) {
         /* Uuden tehtävän luontipainike *
                     $onsubmit_funktionimi= "nayta_tehtavalomake";
                     $onsubmit_parametrit = array($kokonaisuus->get_id());    /* Tarpeen?*
         
                     $form_maaritteet = array('method'=>'post',
                                             'class'=>'rinnakkain',
                                               'action'=>"{$_SERVER['PHP_SELF']}?".
                                               "id_kokon=".$kokonaisuus->get_id().
                                               "&uusi=true");
         
                     $input_maaritteet = array('name'=>Toimintonimet::$tehtavatoiminto,
                                         'value'=>Painikkeet::$tehtava_uusi_value);
         
                     try{
                         $uusi_teht_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                             $onsubmit_funktionimi,
                                                             $onsubmit_parametrit,
                                                             $form_maaritteet,
                                                             $input_maaritteet);
                     }
                     catch (Exception $poikkeus){
                         $palaute .= "Virhe tehtavanapin luomisessa: ".
                                         $poikkeus->getMessage();
                     }*/
     }
     // TEhtävien lisäyspainikekoodi loppuu.
     /* haetaan mahdolliset kuvat */
     $kuvahtml_tiivis = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_tiivistelma, $omaid, $tietokantaolio, false);
     /* Kaikki kokonaisuudet ovat samanlaisia tasosta riippumatta */
     $class_arvo = "elementti_kokon";
     $otsikko = "<div class = " . $class_arvo . " id='elem" . $elementti->get_id() . "'>" . "<h3>" . $kokonaisuus->getOtsikkomerkinta() . $kokonaisuus->getOtsikko() . " " . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . "</h3>";
     /* Haetaan vielä tarvittaessa selitys: */
     if ($selitys_auki && $kokonaisuus->getSelitys() != "") {
         /* haetaan mahdolliset kuvat */
         $kuvahtml_selitys = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_selitys, $omaid, $tietokantaolio, false);
         $selitysotsikko = "<div class='selitysotsikko'>" . Tekstit::$otsikko_selitys . "</div>";
         /* Muotoillaan selitys: */
         $selitys_muokattu = muotoile_merkit($kokonaisuus->getSelitys());
         // Pikkukaavat ensin, jotta kursiivin poisto onnistuu ennen
         // sulkujen käsittelyä.
         $selitys_muokattu = Kaavaeditori::muotoile_pikkukaavat($selitys_muokattu);
         // Sitten normaalikaavat:
         $selitys_muokattu = Kaavaeditori::muotoile_kaavat($selitys_muokattu);
         $selitys = $selitysotsikko . $kuvahtml_selitys . $selitys_muokattu;
     }
     /* Muotoillaan tiivistelmän merkit ja kaavat: */
     $tiivistelma = muotoile_merkit($kokonaisuus->getTiivis());
     $tiivistelma = Kaavaeditori::muotoile_pikkukaavat($tiivistelma);
     $tiivistelma = Kaavaeditori::muotoile_kaavat($tiivistelma);
     $tiivistelma = $kuvahtml_tiivis . $tiivistelma . "<br />";
     /* Ja sitten vain palaset pakettiin: HUOM! Täällä katsotaan, ettei
      * piilotetun sisältö näy. 
      */
     $piilotushuomautus = "<div class='piilotushuomautus'>" . Tekstit::$ilm_kokon_piilotettu_paitsi_ots . "</div>";
     $yksityisilmoitus = "<div class='yksityisilmoitus'>" . Tekstit::$ilm_kokon_yksityinen . "</div>";
     $vainkoosteilmoitus = "<div class='koosteilmoitus'>" . Tekstit::$ilm_kokon_vain_kooste . "</div>";
     /**
      * Tänne mennään, kun kokonaisuus näytetään,
      * oli se sitten piilossa tahi ei.
      */
     if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA || $kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) {
         $normaali_kokonaisuus = $otsikko;
         // Jos kokonaisuus on muilta piilossa, lisätään viesti:
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $normaali_kokonaisuus .= $piilotushuomautus . $tiivistelma;
         } else {
             if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$YKSITYINEN) {
                 $normaali_kokonaisuus .= $tiivistelma;
             } else {
                 if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA) {
                     $normaali_kokonaisuus .= $tiivistelma;
                 } else {
                     $normaali_kokonaisuus .= $tiivistelma;
                 }
             }
         }
         /* $normaali_kokonaisuus .=
            " ".$nayta_selitys_nappi;*/
         /* Lisätään vielä div selitystä varten: */
         if ($selitys_auki && $kokonaisuus->getSelitys() != "") {
             $normaali_kokonaisuus .= "<div class='selitys' id='selitys" . $kokonaisuus->get_id() . "'>" . $selitys . "</div>";
         }
         $normaali_kokonaisuus .= "</div>";
         /* Kokonaisuus loppuu. */
         $palaute = $normaali_kokonaisuus;
     } else {
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $class_arvo = "elementti_kokon";
             $otsikko = "<div class = " . $class_arvo . " id='elem" . $elementti->get_id() . "'>" . "<h3>" . $kokonaisuus->getOtsikko() . " " . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . "</h3>";
             $palaute = $otsikko;
             $palaute .= $piilotushuomautus;
             $palaute .= "</div>";
             /* Kokonaisuus loppuu. */
         } else {
             // Kun jonkun toisen yksityinen / vain koosteessa, eikä hallintavaltuuksia:
             $palaute = "";
         }
     }
     return $palaute;
 }
コード例 #4
0
 /**
  * Palauttaa ratkaisun html-koodin. Se, onko käyttäjällä oikeus nähdä
  * ratkaisua, tutkitaan kontrollerissa.
  * 
  * Ratkaisu
  * 
  * @param Ratkaisu $ratkaisu
  * @param array $painikkeet
  * @return string
  */
 function luo_koostenakyma($ratkaisu, $painikkeet)
 {
     if ($ratkaisu instanceof Ratkaisu) {
         $id_teht = $ratkaisu->getTeht_id();
         $palaute = "";
         /* Muotoillaan ratkaisun merkit ja kaavat: */
         $ratk = muotoile_merkit($ratkaisu->getRatkaisu());
         $ratk = Kaavaeditori::muotoile_pikkukaavat($ratk);
         $ratk = Kaavaeditori::muotoile_kaavat($ratk);
         /* Sama otsikolle:  */
         $otsikko = muotoile_merkit($ratkaisu->getVastaus());
         $otsikko = Kaavaeditori::muotoile_pikkukaavat($otsikko);
         $otsikko = Kaavaeditori::muotoile_kaavat($otsikko);
         $kuvat = $ratkaisu->hae_kuvat_koostenakymaan();
         //Kuvat ja tehtävät taulukkoon:
         $sisalto = $kuvat . $ratk;
         $painikekoodi = "";
         if (is_array($painikkeet)) {
             foreach ($painikkeet as $painike) {
                 $painikekoodi .= $painike . " ";
             }
         }
         $otsikkotaso = 3;
         $otsikko = Html::luo_otsikko($ratkaisu->getOtsikkomerkinta() . ": " . $otsikko . " " . $painikekoodi . " " . $ratkaisu->getNakyvyysmerkki(), array(), $otsikkotaso);
         $pal = $otsikko;
         $pal .= " " . $sisalto . "<br />";
         $palaute = $otsikko . " " . $sisalto;
         /*$palaute = 
           Html::luo_div(
               $pal,
               array(Maarite::classs("elemtehtavan_ratkaisut"),
                   Maarite::id("ratkaisut_teht".$id_teht)));*/
     } else {
         $palaute = "tulosta_ratkaisu-metodin ratkaisu-parametri ei ole" . " Ratkaisu-luokan olie!";
     }
     return $palaute;
 }
コード例 #5
0
 function testaa_merkkijonometodeita()
 {
     /* Testataan merkkijonometodia "php_yleinen/Yleismetodit.php.
      * yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki)":*/
     $this->lisaa_kommentti("<h2>Testataan merkkijonometodia 'hae_merkkijonot'</h2>");
     $this->lisaa_kommentti("Testataan merkkijonometodia 'hae_merkkijonot'<br/>");
     $teksti = "Auto ajoi (200 km/h) kaarteeseen. Olipa (siinä) vauhtia.";
     $alkumj = "(";
     $loppumj = ")";
     $hae_kaikki = true;
     $this->lisaa_kommentti("Yritetään etsiä merkkijonosta <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("kaikki sulkujen väliin jäävät merkkijonot eli '200 km/h' " . "ja 'siinä'<br/>");
     $tulostaulukko = Yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 2 && $tulostaulukko[0] == "200 km/h" && $tulostaulukko[1] == "siinä") {
         $this->lisaa_kommentti("OIKEIN! Loytyi merkkijonot '" . $tulostaulukko[0] . "' ja '" . $tulostaulukko[1] . "'");
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
             $virheiden_lkm++;
         }
     }
     /********************************/
     $teksti = "Auto ajoi (200 km/h) kaarteeseen. Olipa (siinä) vauhtia.";
     $alkumj = "(";
     $loppumj = ")";
     $hae_kaikki = false;
     $this->lisaa_kommentti("Yritetään etsiä merkkijonosta <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("1. sulkujen väliin jäävä merkkijono eli '200 km/h'<br/>");
     $tulostaulukko = Yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 1 && $tulostaulukko[0] == "200 km/h") {
         $this->lisaa_kommentti("OIKEIN! Loytyi merkkijono '" . $tulostaulukko[0] . "'");
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
         }
     }
     /********************************/
     $teksti = "Auto ajoi (200 km/h) kaarteeseen. Olipa (siinä) vauhtia.";
     $alkumj = "Auto";
     $loppumj = "Oli";
     $hae_kaikki = true;
     $this->lisaa_kommentti("Yritetään etsiä merkkijonosta <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("sanojen 'Auto' ja 'Oli' väliin jäävä merkkijono " . "eli ' ajoi (200 km/h) kaarteeseen. '<br/>");
     $tulostaulukko = yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 1 && $tulostaulukko[0] == " ajoi (200 km/h) kaarteeseen. ") {
         $this->lisaa_kommentti("OIKEIN! Loytyi merkkijono '" . $tulostaulukko[0] . "'");
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
         }
     }
     /*****************/
     /* Haetaan a-kirjainten välistä. Kolme peräkkäistä aata pitäisi mennä
      * niin, että eka on lopetus, toka aloitus ja kolmas lopetus ja väliin
      * jäävää tyhjää ei palauteta. */
     $teksti = "Auto ajoi (200 km/h) kaaarteeseen. Olipa (siinä) vauhtia.";
     $alkumj = "a";
     $loppumj = "a";
     $hae_kaikki = true;
     $this->lisaa_kommentti("Yritetään sitten etsiä merkkijonosta (huom 3 a-kirjainta) <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("'a'-kirjainten (pienten) väliin jäävät merkkijonot.<br/>");
     $this->lisaa_kommentti("<br/>");
     $tulostaulukko = yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 2 && $tulostaulukko[0] == "joi (200 km/h) k" && $tulostaulukko[1] == " (siinä) v") {
         $this->lisaa_kommentti("OIKEIN! Loytyi seuraavat merkkijonot:<br/>");
         for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
             $this->lisaa_kommentti($i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>");
         }
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
         }
     }
     /*****************/
     $teksti = "Auto ajoi (200 km/h) kaarteeseen. Olipa (siinä) vauhti.";
     $alkumj = "a";
     $loppumj = "a";
     $hae_kaikki = true;
     $this->lisaa_kommentti("Yritetään sitten etsiä merkkijonosta <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("'a'-kirjainten (pienten) väliin jäävät merkkijonot:<br/>");
     $this->lisaa_kommentti("<br/>");
     $tulostaulukko = yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 2 && $tulostaulukko[0] == "joi (200 km/h) k" && $tulostaulukko[1] == "rteeseen. Olip") {
         $this->lisaa_kommentti("OIKEIN! Loytyi seuraavat merkkijonot:<br/>");
         for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
             $this->lisaa_kommentti($i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>");
         }
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
         }
     }
     /*****************/
     $this->lisaa_kommentti("Yritetään sitten etsiä merkkijonosta <br/>");
     $this->lisaa_kommentti("'<b>" . $teksti . "</b>'<br/>");
     $this->lisaa_kommentti("vain 1. a-kirjainten väliin jäävä merkkijonot.<br/>");
     $this->lisaa_kommentti("<br/>");
     $hae_kaikki = false;
     $tulostaulukko = yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     if (sizeof($tulostaulukko) == 1 && $tulostaulukko[0] == "joi (200 km/h) k") {
         $this->lisaa_kommentti("OIKEIN! Loytyi seuraavat merkkijonot:<br/>");
         for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
             $this->lisaa_kommentti($i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>");
         }
         $this->lisaa_kommentti("<br/><br/>");
     } else {
         if (empty($tulostaulukko)) {
             $this->lisaa_virheilmoitus("<div class='virhe'>Virhe! Mitään ei löytynyt!</div>");
             $virheiden_lkm++;
         } else {
             $taul = "<div class='virhe'>Virhe! Taulukon sisältö:<br/>";
             for ($i = 0; $i < sizeof($tulostaulukko); $i++) {
                 $taul .= $i + 1 . ". merkkijono: " . $tulostaulukko[$i] . "<br/>";
             }
             $taul .= "</div>";
             $this->lisaa_virheilmoitus($taul);
         }
     }
     $this->lisaa_kommentti("<h2>Merkkijonometodin 'yleismetodit::hae_merkkijonot' testaus loppu!</h2>");
     /***************************************************************************/
     $this->lisaa_kommentti("<h2>Testataan luokan Kaavaeditori metodia\n                       'muotoile_kaavat(teksti)'</h2>");
     $this->lisaa_kommentti("Syötetään metodiin merkkijono '{@4⋅[@4##6@]=5@}'\n                   ja katsotaan, näyttääkö tulos hyvältä. Alla tulos:<br/><br/>");
     $teksti = '{@4⋅[@4##6@]=5@}';
     $tulos = Kaavaeditori::muotoile_kaavat($teksti);
     $this->lisaa_kommentti($tulos);
     $this->lisaa_kommentti("<a href='../php_yleinen/matematiikka/murtolukutesti.php'>" . "Murtolukutesti</a><br/>");
     $this->lisaa_kommentti("<br/>");
     "<h2>Loppu luokan Kaavaeditori metodin 'muotoile_kaavat(teksti)' testi LOPPU</h2>";
     $this->lisaa_kommentti("******************************************************************<br/>");
 }
コード例 #6
0
 /**
  * Palauttaa parametrina annetun tehtävän tulostukseen optimoidun
  * html-koodin.
  *
  * @param Elementti $elementti
  * @param Tehtava $tehtava
  * @param int $omaid Käyttäjän id
  * @param array $painikkeet
  * @return string
  */
 function luo_koostenakyma_tulostus($elementti, $tehtava, $painikkeet)
 {
     $palaute = "";
     if (!$tehtava instanceof Tehtava && $elementti instanceof Elementti) {
         $palaute = "Jokin parametri metodissa 'luo_koostenakyma' ei ole ok!";
     } else {
         /* Muotoillaan tehtävän merkit ja kaavat: */
         $tehtavateksti = muotoile_merkit($tehtava->getTehtavananto());
         $tehtavateksti = Kaavaeditori::muotoile_pikkukaavat($tehtavateksti);
         $tehtavateksti = Kaavaeditori::muotoile_kaavat($tehtavateksti);
         /* Muotoillaan otsikon merkit ja kaavat:  */
         $otsikko = muotoile_merkit($tehtava->getOtsikko());
         $otsikko = Kaavaeditori::muotoile_pikkukaavat($otsikko);
         $otsikko = Kaavaeditori::muotoile_kaavat($otsikko);
         $kuvat = $tehtava->hae_kuvat_koostenakymaan();
         $sisalto = $kuvat . $tehtavateksti;
         $otsikko = "<div class = 'elementti_teht' " . "id='elem" . $elementti->get_id() . "'>" . "<h3>" . $tehtava->getOtsikkomerkinta() . ": " . $otsikko . "</h3>";
         $palaute .= $otsikko;
         $palaute .= $sisalto;
         // Tehtävä ja kuvat
         if (is_array($painikkeet)) {
             foreach ($painikkeet as $painike) {
                 $palaute .= $painike . " ";
             }
         }
         $palaute .= "</div>";
     }
     return $palaute;
 }
コード例 #7
0
ファイル: Kaavaeditori.php プロジェクト: jpkerkkanen/opinnot
 /**
  * Hakee annetusta tekstistä kaavat eli merkkijonot, jotka ovat
  * merkkijonojen $kaavan_alku ja $kaavan_loppu välissä, ja muotoilee kaavat
  * html:n avulla.
  *
  * Hyödyntää metodia php_yleinen/php_yleismetodit.php:
  * 'hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki)'
  *
  * Jos tekstistä löytyy $kaavan_alku mutta ei $kaavan_loppu, ei kyseistä
  * merkkijonoa muokata.
  *
  * Ellei mitään kaavaa löydy, tai tapahtuu muuta kummaa, palautetaan sama teksti.
  * Muuten palautetaan saatu teksti, jossa kaavamerkinnät on korvattu html-
  * muotoiluilla.
  *
  * @param <type> $teksti
  * @param <type> $kaavan_alku
  * @param <type> $kaavan_loppu
  * @param <type> $jako_alku
  * @param <type> $jako_loppu
  * @return string muotoiltu html-koodi
  */
 static function muotoile_kaavat($teksti)
 {
     $palautus = $teksti;
     // Haetaan tekstistä kaavat taulukkoon:
     $alkumj = Kaavaeditori::$kaavan_alku;
     $loppumj = Kaavaeditori::$kaavan_loppu;
     $hae_kaikki = true;
     $raakakaavat = Yleismetodit::hae_merkkijonot($teksti, $alkumj, $loppumj, $hae_kaikki);
     /* Tarkempaan työhön aletaan vain, jos kaavoja löytyy */
     if (!empty($raakakaavat)) {
         $valmiit_kaavat = array();
         // Käydään läpi jokainen raakakaava: HUOM katso metodi
         // muotoile_merkit() tiedostossa yhteiset/php_yhteismetodit.php!
         foreach ($raakakaavat as $kaava) {
             // Muotoillaan merkkejä hiukan. Miinusmerkit on kiva olla
             // pitkiä (ja hiukan tekstistä erillään). Yhdysviivat kaavoissa
             // merkitsevät käytännössä aina miinusmerkkiä, joten muutetaan ne
             // oikeiksi. Tehdään se täällä, koska
             // tekstissä väliviivaa tarvitaan kuitenkin.
             // NÄIN EI TOIMI MIKSI?? $kaava = str_replace("-",Merkit::$miinusmerkki,$kaava);
             $kaava = str_replace("-", "−", $kaava);
             // Näin taas toimii!
             $kaava = str_replace("+", "<span class='erillaan'>+</span>", $kaava);
             // Kompleksiluvun liittolukuongelma:
             //$kaava = str_replace("*","<span class='erillaan'>⋅</span>", $kaava);
             // Tämäkin aiheuttaa sen ongelman, ettei kaavaan voi lisätä
             // esimerkiksi css-määrettä font-style väliviivan takia..
             $kaava = str_replace("−", "<span class='erillaan'>−</span>", $kaava);
             // Tämä täällä, koska muualla pitää olla mahis laittaa
             // esim. merkki => (ohjelmointi tms.)
             // Huom! =-merkkiin ei voi lisätä yleensä html-koodia, koska merkkiä käytetään
             // html:n sisällä (attribuutit)"
             $kaava = str_replace("=", " = ", $kaava);
             // Sama kuin yllä:
             $kaava = str_replace(":", " : ", $kaava);
             //================ Kokeillaan toimiiko==========================
             $kaava = str_replace("⋅", "<span class='erillaan'>⋅</span>", $kaava);
             $kaava = str_replace("≈", "<span class='erillaan'>≈</span>", $kaava);
             $kaava = str_replace("≠", "<span class='erillaan'>≠</span>", $kaava);
             $kaava = str_replace("║", "<span class='erillaan'>║</span>", $kaava);
             //================ Kokeillaan toimiiko loppu ===================
             // Tehdään kursivoinnin poisto ennen varsinaista kaavamuotoilua.
             $kaava = str_replace("(ioff_b)", "<span class='ital_off'>", $kaava);
             $kaava = str_replace("(ioff_e)", "</span>", $kaava);
             // Tänne kootaan Yksiriviset, Supistajat, Laventajat, Neliöjuuret
             // ja Murtolukumuodot yms -oliot:
             $kaavaelementtitaulukko = Kaavaeditori::etsi_kaavaelementit($kaava);
             $muotoiltu_kaava = new Kaava($kaavaelementtitaulukko);
             $kaavahtml = "<div class='kaavaboxi'>" . $muotoiltu_kaava->nayta_rivi() . "</div>";
             array_push($valmiit_kaavat, $kaavahtml);
         }
         // Lisätään jokaiseen raakakaavaan alku- ja
         // loppumerkit, jotta myös kyseiset merkit poistuvat:
         $kaavojen_lkm = sizeof($raakakaavat);
         for ($i = 0; $i < $kaavojen_lkm; $i++) {
             $raakakaavat[$i] = Kaavaeditori::$kaavan_alku . $raakakaavat[$i] . Kaavaeditori::$kaavan_loppu;
             // Käydään vielä läpi valmiit kaavat ja suoristetaan vielä sulut.
             // Huomaa, ettei tätä voi tehdä aiemmin, koska sulut ovat osa
             // monia erikoismerkintöjä.
             $valmiit_kaavat[$i] = str_replace("(", "<span class='ital_off'>(</span>", $valmiit_kaavat[$i]);
             $valmiit_kaavat[$i] = str_replace(")", "<span class='ital_off'>)</span>", $valmiit_kaavat[$i]);
         }
         // Korvataan tekstin raakakaavat valmiilla kaavoilla:
         $palautus = str_replace($raakakaavat, $valmiit_kaavat, $teksti);
     }
     return $palautus;
 }