예제 #1
0
 *
 */
// Include the essential config-file which also creates the $branax variable with its defaults.
include __DIR__ . '/config.php';
$filter = new CTextFilter();
// Do it and store it all in variables in the Branax container.
$branax['title'] = "Om";
$branax['main'] = <<<EOD
<article class="readable">

{$filter->markdown(<<<EOD
Om Rental Movies
==
Visst är Djungelboken en fantastisk film! Och det är också just där vår saga en gång började. Under namnet Baloo.se gav vi ut just Djungelboken som vår första och då enda titel. Det blev en enastående framgång. Nu har verksamheten vuxit avsevärt och vi känner oss redo för nästa steg i utvecklingen med en ny genomarbetad web-site och under ett nytt firmanamn, RM-Rental Movies. Välkomna! 

Till alla älskare av Djungelboken andra klassiska filmer. Leta upp din favoritfim hos oss och hyr den snabbt och enkelt för en underbar kväll i tv-soffan. Mycket nöje!

Denna förnämliga website öppnades i början av 2016. Den är resultatet av ett projektarbete i kursen "Databaser och objektorienterad programmering i PHP" vid Blekinge tekniska högskola.

Det finns inga kopplingar till något verkligt företag för uthyrning av filmer.

EOD
)}
       
{$branax['byline']}

</article>

EOD;
// Finally, leave it all to the rendering phase of Brnax.
include BRANAX_THEME_PATH;
예제 #2
0
// Konvertera och skriv ut som HTML
echo $filter->nl2br($newlinetest);
?>


<h3>4.  CTextFilter::markdown():</h3>
<?php 
// Markdown
$md = <<<EOD
Detta är ett exempel på markdown
=================================

En länk till [Markdowns hemsida](http://daringfireball.net/projects/markdown/).
EOD;
// Konvertera och skriv ut som HTML
echo $filter->markdown($md);
?>

<h3>5. CTextFilter::doFilter():</h3>
<p>Tillgängliga filter bbcode, clickable, markdown, nl2br och shortcode.
<p>Det filter som appliceras nedan är markdown-filtret.
<?php 
// Konvertera och skriv ut som HTML
echo $filter->doFilter($md, 'markdown');
?>

<h3>6. Multipla filter med CTextFilter::doFilter()</h3>
<?php 
$filtertest = <<<EOD
Detta är ett exempel på markdown
=================================
예제 #3
0
{$filter->markdown(<<<EOD
Kmom05: Lagra innehållet i databasen
----------------------------

**Uppgift 2:** Jag hämtade filtret enligt alternativ 1 och därefter var övningsuppgifterna relativt snabbt lösta. Testsidan är inte inlänkad till me-sidan men ligger tillgänglig i samma webroot. Fiffigt verktyg. 

**Uppgift 3:** Funktionerna för reset, create, update och delete är alla uppbyggda enligt samma princip med en formulärvisning och en utförandedel. Jag utgick från allt i sidokontrollrarna och lyfte först över databashanteringen till funktioner i klassen CContent enligt krav och bestämde mig strax för att göra klassfunktioner även för formulären. Triggad av minimalism i sidkontrollern flyttade jag till sist över även hanteringen av respektive central POST variabl till enkla men slutgiltigt publika klassfunktioner (men detta var kanske ändå var ett gå ett steg för långt?). Vidare behövdes en kompletterande funktion för att visa allt innehåll. Extrauppgiften med slugify är genomförd och används om create-formuläret skickar tom url eller slug. Jag lade även till ägarinformation i databasen med inloggad användare som default vid skapande av nytt innehåll.

**Uppgift 4:** Jag utgick från koden i guiden och lyfte över all initiering och funktionalitet till konstuktorn för klassen CPage. Enkla get-funktioner hämtar sedan 'main' och 'title' för mina Branaxvariabler för visning i sidkontrollern. För hämtning av efterfrågad page-information i databasen blev det en ny funktion i CContent. Enkelt och rakt fram. För extrauppgiften använde jag sedan ytterligare en ny CContent funktion för att förbereda submeny-items för alla innehållssidor till navbarens page-item. Här fick jag lägga ner en hel del arbete för att förstå och justera den dynamiska navbaren för önskad funktion.

**Uppgift 5:** CBlog och dess sidkontroller implementerades helt analogt med CPage. Alla extrauppgifter är även här implementerade.

**Det blir en del moduler till ditt Anax nu, hur känns det?:** Jag ställer mig frågan om allt innehåll verkligen passar i ett ramverk eller om det kanske är för mycket site-specifik kod i klasserna? Jag är tacksam för alla synpunkter kring detta i mina lösningar.

**Berätta hur du tänkte när du löste uppgifterna, hur tänkte du när du strukturerade klasserna och sidkontrollerna?:** Jag siktar numer på relativt minimala sidkontrollrar. I fallet CContent gick det som sagt kanske till överdrift med en ganska omfattande och något spretig class som resultat. 

**Börjar du få en känsla för hur du kan strukturera din kod i klasser och moduler, eller kanske inte?:** Jag tycker inte alltid det blir bra. Är det rätt att gå för minimal sidkontroller eller har jag gått för långt? Synpunkter på mina lösningar även i detta avseesnde tas tacksamt emot.

**Snart har du grunderna klara i ditt Anax, grunderna som kan skapa många webbplatser, är det något du saknar så här långt, kanske några moduler som du känner som viktiga i ditt Anax?:** Vi har ju bildhantering i nästa kursmoment.

**Kursmomentet som helhet:** Ett tufft kursmoment som i mitt fall tagit betydligt mer än en veckas halvtid i ansprråk, det har ju varit ovanligt omfattande med väldigt många krav och extrauppgifter. Onödigt länge brottades jag också med två egenheter hos studentservern. Till skillnad från min lokala server är den känslig för stor bokstav i tabellnamn vilket gav mycket konstiga resultat. Dessutom tycks den beröva .sql filer (för återställning) läsrättigheter vid publicering vilket sannerligen heller inte var lättfunnet. Det återstår nu måhända en del uppstädning om man vill ha riktigt bra och snygg funktionalitet, men det får anstå tills vidare. Denna redovisning är fö skrivet i markdown.

[Me-sida med denna redovisning på studentservern](http://www.student.bth.se/~bjri15/dbwebb-kurser/oophp/me/kmom05/webroot/redovisning.php)

Kmom06: Bildbearbetning och galleri
-----------
**Uppgift 1:** Jag utgick från koden i guiden och flyttade över den i allt väsentligt till CImage klassens konstruktor. Endast de två konstantdeklaraionerna blir kvar i img.php samt anropet till konstruktorn. (Är det månne förkastlit att låta klassen läsa globalkonstanter på detta vis och bättre att skicka över informationen som parametrar istället? **kommentar mottages tacksamt**.) Samtliga extrauppgifter är lösta: transparens, gif som input och output, samt filter för grayscale och sepia. Filtreringen erhålles genom att sätta GET-variabeln 'filter' till antingen 'grs' eller 'sep' och utföres med upprepade anrop av funktionen imagefilter() med parametrar hårdkodade enligt förslag i Mikael Roos artikeln om CImage.

**Uppgift 2:** Även här utgick jag från koden i guiden och flyttade den i allt väsentligt till CGallery klassens konstruktor. Två klassvaribler håller output av själva galleriet resp breadcrumb vilka båda skrivs ut av enkla get-funktioner från sidkontrollern. Även i detta fall görs konstantdeklarationer i sidkontrollern för användning i klassen. Jag bökade en del med att bli av med en av dessa, som tycktes överflödig, men det var besvärligare än vad det smakade och jag gav upp försöket. Breadcrumbfunktionen kan ju tyckas allmänt användbar och därför förtjäna en egen klass för sig, men jag lät den ändå göra övrig funktioanlitet sällskap i CGallery.

**Extrauppgifter:** Utförda. Intressant läsning om headers och cacheing. Hade varit bra att läsa innan jag försökte förtå vad som händer i img.php.

**Hade du erfarenheter av bildhantering sedan tidigare?** Nej inte på den här nivån. Det finns ju program som sköter sådant till vardags.

**Hur känns det att jobba i PHP GD?** Förvånande enkelt, i vart fall när jag som här får recepten serverade.

**Hur känns det att jobba med img.php, ett bra verktyg i din verktygslåda?** Absolut, det hade tex sparat en hel del arbete med att snickra till bilder för htmlphp.

**Detta var sista kursmomentet innan projektet, hur ser du på ditt Anax nu, en summering så här långt?** Ramverket känns jättebra. Dock har jag fortfarande lite problem att greppa om vad som ingår. Jag har nämligen svårt att betrakta alla klasser jag skapat som delar av ett generellt ramverk eftersom de exempelvis hanterar väldigt spcifika databaser eller tabeller. **Jag tar mycket gärna emot lite feedback på denna fundering**  

**Finns det något du saknar så här långt, kanske några moduler som du känner som viktiga i ditt Anax?** Ljud och rörliga bilder kanske? meddelandetjänster? funktioner kring handel? 

[Me-sida med denna redovisning på studentservern](http://www.student.bth.se/~bjri15/dbwebb-kurser/oophp/me/kmom06/webroot/redovisning.php)

Kmom07/19: ....
---------------
Redovisningstext

EOD
)}