Käyttäjä:Erkkimon/ohjeita

ApoWikistä
< Käyttäjä:Erkkimon
Versio hetkellä 16. kesäkuuta 2011 kello 01.34 – tehnyt Erkkimon (keskustelu | muokkaukset) (Ohje suositusnappulan lisäämiseen)

Tämä sivu on tehty ensisijaisesti hyödyksi itselleni, mutta onhan tietysti ihan kivaa, jos näistä ohjeista on hyötyä muillekin. Tuota sekundäärifunktiota edistääkseni olen yrittänyt kirjoittaa jokseenkin selkeää tekstiä. Ohjeita en ihan kauheasti testaa, sillä kirjoitan useimmiten toimivan ratkaisun itselleni muistiin, ja mahdollinen testaus tapahtuu silloin, kun seuraavan kerran satun ehkä tarvitsemaan ohjetta. Niinpä kannattaa raportoida virheestä.

Lyhyt urli muotoa domain.com/artikkelin_nimi

Olen todennut, että on fiksuinta toteuttaa lyhyet urlit niin, että Apache käsittelee olemattomiin tiedostoihin viittaavat urlit wiki-artsujen otsikoina. Etuna on se, että esimerkiksi wikin domainin alla olevien tiedostojen imppaaminen ja impattavaksi asettaminen ei mene monimutkaisesti. Lisäksi tämä metodi ei ole muiden metodien tapaan aiheuttanut ärsyttäviä bugeja ja haamuartikkeleita wikiin jne.

Homma alkaa poistamalla risuhäkkyrät $wgArticlePath -muuttujan edestä LocalSettings.php:ssa ja muuttamalla niiden arvot allaolevaa vastaaviksi. Jos muuttujaa ei ole, lisää ne – mieluiten heti $wgScriptPath -muuttujan jälkeen.

$wgArticlePath      = "/$1";

Lisää LocalSettings.php -tiedostoon seuraava rivi, jotta uloskirjautuminen yms. toimisi kivasti.

$wgUsePathInfo     = false;

Luo www-hakemistosi juureen tiedosto nimeltään .htaccess, ja tiedoston oikea sijainti on todennäköisesti /var/www/.htaccess. Jos wikisi on www-hakemistosi hakemistossa mediawiki, korvaat luonnollisesti hakemiston wiki hakemistolla mediawiki.

Options -Indexes
 
RewriteEngine On 
RewriteRule ^/*$ /wiki/index.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wiki/index.php?title=$1 [L,QSA]

GlobalFunctions.php -ongelman ratkaisu

Usein wiki mussuttaa softapäivityksen jälkeen jotain seuraavantapaista: "Warning: mkdir() [function.mkdir]: Permission denied in /path/to/wiki/ includes/GlobalFunctions.php on line 2012" ja/tai "PHP Warning: imagejpeg() [<a href='function.imagejpeg'>function.imagejpeg</a>]: Unable to open '/path/to/wiki/images/thumb/jotain/jotain/kuva.jpg' for writing: Permission denied in /path/to/wiki/includes/media/jtoain on line 236"

Tällöin wiki ei onnistu luomaan uusia hakemistoja. Ongelma ratkeaa useimmiten chmodaamalla wikin images-hakemiston kuville 755-oikeudet rekursiivisesti ja chownaamalla kyseisen hakemiston rekursiivisesti apache-käyttäjälle eli käyttäjälle, joka ajaa httpd:tä. Kyseinen käyttäjä on useimmiten Ubuntuissa www-data, ja useissa muissa distroissa apache. Homma siis tapahtuu seuraavasti, roottina tietysti:

chmod -R 755 /path/to/wiki && chown -R www-data /path/to/wiki

Jos tämä ei auta, kannattaa kokeilla seuraavaa wikin images-hakemistossa:

find . -type d -exec chmod 777 {} \;
find . -type f -exec chmod 666 {} \;

Jos mikään muu ei auta, kannattaa kokeilla asettaa seuraavaa LocalSettings.php-tiedostoon:

$wgHashedUploadDirectory = false;

Bännerin lisääminen sivupalkkiin

Hyvä ja toimiva ohje löytyy täältä.

Suosittele-namiskan (Facebook) lisääminen artikkelin oikeaan yläkulmaan

Homma on hyvin simppeli. Jos haluat vain namiskan esim. etusivulle (jengi voi suositella vain kyseistä sivua), voit generoida koodin täällä ja tunkea koodin mihin lystäät. Vaikkapa etusivun lähdekoodiin htmlets-ekstensiolla.

Jos taas haluat jokaiselle sivulle oman namiskansa siten, että namiskalla suositellaan aina auki olevaa sivua (namiska siis näkyy joka sivulla ApoWikin tyyliin), tarvitaan PHP:tä. Homma menee niin, että seuraava koodipätkä liitetään teematiedoston (esim. skins/Vector.php) alkupuolelle:

<?php $url = "http" . ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>

Yllä siis selvitetään sen sivun osoite, jolla nappula sattuu näkymään, ja tungetaan se muuttujaan $url. Seuraava koodi näyttää kyseisen nappulan, eli se liitetään mihin nappula sitten halutaankaan (skins/Vector.php).

<iframe align="right" spacing="4" src="http://www.facebook.com/plugins/like.php?locale=fi_FI&app_id=234649153215753&href=<?php echo urlencode($url); ?>&amp;send=false&amp;layout=button_count&amp;width=20&amp;show_faces=false&amp;action=recommend&amp;colorscheme=dark&amp;font=verdana&amp;height=21" 
scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>

ApoWikissä koodi siis näyttää seuraavanlaiselta, eli jos haluat apinoida ApoWikiä, muuta firstHeading -kommenttitägien (<!-- firstHeading -->) väli seuraavanlaiseksi:

<!-- firstHeading -->
<?php $url = "http" . ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>
<h1 id="firstHeading" class="firstHeading"><?php $this->html( 'title' ) ?> <iframe align="right" spacing="4" src="http://www.facebook.com/plugins/like.php?locale=fi_FI&app_id=234649153215753&href=<?php echo urlencode($url); ?>&amp;send=false&amp;layout=button_count&amp;width=20&amp;show_faces=false&amp;action=recommend&amp;colorscheme=dark&amp;font=verdana&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe></h1>
<!-- /firstHeading -->