HazirProgramKod kod renklendiricisi, Joomla içerik yönetim sistemlerini kullanan internet sitelerinde yayınlanan kodların daha renkli ve okunabilir olmasını sağlar.HazirProgramKod kod renklendiricisi Joomla ile kurulu gelen Geshi kod renklendirici(syntax highlighter) paketini kullanır.HazirProgramKod mambotu Joomla ile tanımlı gelen paketten farklı olarak kod renklendirme yaparken "{" "}" parantezlerininin kullanımına izin verir.Joomla ile varsayılan olarak gelen TinyMCE WYSIWYG editöründe sorunsuzca kullanılabilir.
Kullanımı :
{HazirProgramKod dil="cpp" satirlar="var" renklendir="hayir"}
// Kodunuz buraya gelecek
{/HazirProgramKod}
renklendir="hayir" özelliği kodların renklendirilmesini engellemek içindir. Örneğin HazirPrograKod etiketini yukardaki gibi içeriğin herhangi bir yerinde göstermek isterseniz renklendir="hayir" özelliğini aktif etmeniz gerekir. Varsayılan olarak renklendirme vardır.
hazirprogramkod.php dosyasında eklentinin kaynak kodu vardır.
hazirprogramkod.php
<?php /* HazirProgramKod Kod Renklendirici Joomla 1.5 Plugin HazirProgramKod Kod Renklendirici highlights programming languages' codes. Copyright (C) 2009 Şevket Umut ÇAKIR This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ // Direk erişim yasaklanıyor... jimport( 'joomla.event.plugin' ); /** * HazirProgramKod plugin sınıfı */ class plgContentHazirProgramKod extends JPlugin { function plgContentHazirProgramKod( &$subject ) { parent::__construct( $subject ); $this->_plugin =& JPluginHelper::getPlugin( 'content', 'hazirprogramkod' ); $this->_params = new JParameter( $this->_plugin->params ); } function onPrepareContent( &$row, &$params, $page=0 ) { // etiketlerin bulunduğu yeri belirlemek için seçilen düzenli ifade $O="{"; $C="}"; $tag="HazirProgramKod"; $regex="#{$O}({$tag}.*?){$C}((?>{$O}(?!/?{$tag}[^{$O}]*?{$C})|[^{$O}]|(?R))*){$O}/{$tag}{$C}#is"; $GLOBALS['_MAMBOT_HAZIRPROGRAMKOD_PARAMETRELER'] =& $this->_params; // yer değiştirmeyi gerçekleştir. return true; } /** * Eşleşen etiketleri değiştirir. * @param array Eşleşenlerin dizisi * @return string */ $params =& $GLOBALS['_MAMBOT_HAZIRPROGRAMKOD_PARAMETRELER']; jimport('geshi.geshi'); jimport('domit.xml_saxy_shared'); /* for($i=0;$i<count($matches);$i++) { echo "<p><b>$i.</b></p>"; print_r($matches[$i]); } return ""; */ $args = SAXY_Parser_Base::parseAttributes( $matches[1] ); $text = $matches[2]; //kod renklendirme işleminin yapılıp yapılmayacağını belirleyen özellik $renklendir = JArrayHelper::getValue( $args, 'renklendir', 'evet' ); if($renklendir=="hayır" || $renklendir=="hayir") return $matches[0]; //hangi dilin kullanılacağını belirleyen özellik $dil = JArrayHelper::getValue( $args, 'dil', 'php' ); // Satır numaralarının gösterilip, gösterilmeyeceğini belirleyen dalga $satirlar = JArrayHelper::getValue( $args, 'satirlar', 'yok' ); // HTML haricindeki dillerde paragraf etiketlerini \n'e çevir if($dil!="html") { } //normal \n leri göstermek için $geshi = new GeSHi( $text, $dil ); switch( $satirlar ) { case 'var': $geshi->enable_line_numbers( GESHI_NORMAL_LINE_NUMBERS ); break; case 'fancy': $geshi->enable_line_numbers( GESHI_FANCY_LINE_NUMBERS ); break; case 'yok': default: break; } //konteyner tipinin belirlenmesi $konteynertipi=$params->get( 'konteynertipi' ); if($konteynertipi) $geshi->set_header_type(GESHI_HEADER_DIV); else $geshi->set_header_type(GESHI_HEADER_PRE); if($params->get( 'cssstil' )) $geshi->set_overall_style($params->get( 'cssstil' )); // renklendirme işleminin gerçekleştirilmesi $text = $geshi->parse_code(); //normal \n leri göstermek için return $text; } }
hazirprogramkod.xml dosyası eklentinin Joomla sistemlerine kurulabilmesi için gerekli dosyadır. İçerisinde eklenti ile ilgili özellikler ve tanımlamalar mevcuttur.
hazirprogramkod.xml
<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="content"> <name>HazirProgramKod kod renklendirici</name> <author>Şevket Umut ÇAKIR</author> <creationDate>2009-01-01</creationDate> <copyright>Copyright</copyright> <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL</license> <authorUrl>www.hazirprogram.com</authorUrl> <authorEmail> Bu e-posta adresini spambotlara karşı korumak için JavaScript desteğini açmalısınız </authorEmail> <version>1.0</version> <description>Aciklama</description> <languages> <language tag="tr-TR">language/tr-TR/tr-TR.plg_content_hazirprogramkod.ini</language> <language tag="en-GB">language/en-GB/en-GB.plg_content_hazirprogramkod.ini</language> </languages> <files> <filename plugin="hazirprogramkod">hazirprogramkod.php</filename> </files> <params> <param name="cssstil" type="textarea" cols="30" rows="5" default="width:500px;margin: 2px 0px 2px 0px;padding: 10px 10px 10px 10px;border: 1px dotted #aab4be;border-left: 20px solid #b4b4b4;background: #f4f5f6;font-size: 90%;overflow: auto;white-space: nowrap;" size="40" label="CSS Stili" description="Css Stili Aciklama" /> <param name="konteynertipi" type="list" default="0" label="Konteyner Tipi" description="Konteyner Tipi Aciklama"> <option value="0">DIV</option> <option value="1">PRE</option> </param> </params> </install>
Eklentinin çoklu dil desteği olması için aşağıdaki 2 dosya oluşturulmuştur. Dil dosyalarının tanımlamaları hazirprogramkod.xml dosyasının içindedir.
tr-TR.plg_content_hazirprogramkod.ini
CSS STILI=CSS Stili CSS STILI ACIKLAMA=Kodlar gösterilirken, kod elemanına uygulanacak CSS stili KONTEYNER TIPI=Konteyner Tipi ACIKLAMA=<a href="http://www.hazirprogram.com" target="_blank" title="www.hazirprogram.com"><strong>www.hazirprogram.com</strong></a> kod renklendirici(code syntax highlighter) <br> <p>Yazar: <a href="mailto: Bu e-posta adresini spambotlara karşı korumak için JavaScript desteğini açmalısınız ">Şevket Umut ÇAKIR</a></p> <br> <p><strong>Açıklama :</strong> HazirProgramKod kod renklendiricisi Joomla ile kurulu gelen Geshi kod renklendirici(syntax highlighter) paketini kullanır.HazirProgramKod mambotu Joomla ile tanımlı gelen paketten farklı olarak kod renklendirme yaparken "{" "}" parantezlerininin kullanımına izin verir.Joomla ile varsayılan olarak gelen TinMCE WYSIWYG editöründe sorunsuzca kullanılabilir.</p> <p>Bu program GNU/LGPL lisansı altındadır.</p> <div> <strong>Diller :</strong> </div> <div> Joomla paketinin içinde gelen tanımlı diller şunlardır: css,html,ini,javascript,mysql,php,sql,xml </div> <div> Extradan diller eklemek isterseniz (Örneğin C++, Java vs.) Geshi projesninin sayfasından indirdiğiniz proje dosyasındaki dilleri siteniz altındaki libraries\geshi\geshi altına yükleyebilirsiniz. </div> <div> Kullandığınız için teşekkürler. </div> <p><strong>Kullanımı :</strong></p> <div style="width: 382px; height: 100px; background-color:#FFFFEE;"> <p>{HazirProgramKod dil="cpp" satirlar="var"}</p> <p><em>// Kodunuz buraya gelecek</em></p> <p>{/HazirProgramKod}</p> </div> KONTEYNER TIPI ACIKLAMA=Bu özellik renklendirilen kodların konteyner(container) tipini belirler.Tipler div ve pre html elemanlarıdır. COPYRIGHT=Copyright (C) 2009 www.hazirprogram.com Tüm hakları saklıdır.
en-GB.plg_content_hazirprogramkod.ini
CSS STILI=CSS Style CSS STILI ACIKLAMA=CSS style to be applied to codes when showing codes. KONTEYNER TIPI=Container Type ACIKLAMA=<a href="http://www.hazirprogram.com" target="_blank" title="www.hazirprogram.com"><strong>www.hazirprogram.com</strong></a> kod renklendirici(code syntax highlighter) <br> <p>Author: <a href="mailto: Bu e-posta adresini spambotlara karşı korumak için JavaScript desteğini açmalısınız ">Şevket Umut ÇAKIR</a></p> <br> <p><strong>Description :</strong> HazirProgramKod code syntax highlighter uses Geshi syntax highlighter which is installed in Joomla by default.HazirProgramKod plugin, allows usage of "{" "}" brackets unlike Joomla default syntax highlighter.HazirProgramKod plugin can be easily used with TinMCE WYSIWYG which is installed in Joomla by default.</p> <p>This program is licensed under GNU/LGPL.</p> <div> <strong>Programming Languages :</strong> </div> <div> Here are the programming languages which Geshi can highlight with default Joomla installation: css,html,ini,javascript,mysql,php,sql,xml </div> <div> If you wish to install some extra programming languages (e.g. c++, java, etc.), you can install language code files,which you can find at the web page of Geshi project, to libraries\geshi\geshi directory.</div> <div> Thanks for using this plugin.</div> <p><strong>Usage :</strong></p> <div style="width: 382px; height: 100px; background-color:#FFFFEE;"> <p>{HazirProgramKod dil="cpp" satirlar="var"}</p> <p><em>// Write your code here.</em></p> <p>{/HazirProgramKod}</p> </div> KONTEYNER TIPI ACIKLAMA=This property specifies the container type of highlighted codes.Types are div and pre html tags. COPYRIGHT=Copyright (C) 2009 www.hazirprogram.com All rights reserved.
Eklentinin Joomla 1.5 sistemlerine kurulabilir halini aşağıdaki linkten bilgisayarınıza indirebilirsiniz.
| Yorumlar |
|


