<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IMS Blog - blog o modernom programovaní od Tibor Piňo &#187; texy</title>
	<atom:link href="http://ims.rockretail.com/tag/texy/feed/" rel="self" type="application/rss+xml" />
	<link>http://ims.rockretail.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 18 Feb 2010 10:11:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Texy v cakePHP &#8211; javascript formátovacie tlačítka</title>
		<link>http://ims.rockretail.com/2007/09/30/texy-v-cakephp-javascript-formatovacie-tlacitka/</link>
		<comments>http://ims.rockretail.com/2007/09/30/texy-v-cakephp-javascript-formatovacie-tlacitka/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 21:20:54 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[texy]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[V minulom článku o texy sme si povedali, ako zakomponovať tento formátovací systém do aplikácie postavenej na cakePHP. Dnes si ukážeme, ako môžeme šikovne formátovať text pre texy.
1. krok: vytvorenie funkcií v javascripte
Najprv si vytvoríme javascriptový súbor, ktorý nazveme texy.js a umiestnime ho do adresára
app/webroot/js/texy.js
do tohto súboru umiestnime nasledujúci kód
function help_texy(code){

     [...]]]></description>
			<content:encoded><![CDATA[<p>V minulom článku o texy sme si povedali, ako zakomponovať tento formátovací systém do aplikácie postavenej na cakePHP. Dnes si ukážeme, ako môžeme šikovne formátovať text pre texy.<span id="more-5"></span></p>
<h2>1. krok: vytvorenie funkcií v javascripte</h2>
<p>Najprv si vytvoríme javascriptový súbor, ktorý nazveme <strong>texy.js</strong> a umiestnime ho do adresára</p>
<pre><code>app/webroot/js/texy.js</code></pre>
<p>do tohto súboru umiestnime nasledujúci kód</p>
<pre><code>function help_texy(code){

        document.getElementById('hhhh').innerHTML = code;

}

// http://www.alexking.org - LGPL
function insertAtCursor(myField, prefix, postfix) {
        var re = new RegExp("^(.*\\S)(\\s*)$");
  myField.focus();
  //IE support
  if (document.selection) {
    sel = document.selection.createRange();
                var selection = sel.text;
                var wasEmpty = (selection == "");
                var space = "";
                if (!wasEmpty) {
                        var matches = selection.match(re);
                        if (matches) {
                                selection = RegExp.$1;
                                space = RegExp.$2;
                        }
                }
    sel.text = prefix+selection+postfix+space;
                sel.collapse(false);
                if (wasEmpty) {
                        sel.moveEnd('character',-(prefix.length+1))
                }
                sel.select();
  }
  //MOZILLA/NETSCAPE support
  else {
                if (myField.selectionStart || myField.selectionStart == '0') {
                        var startPos = myField.selectionStart;
                        var endPos = myField.selectionEnd;
                        var selection = myField.value.substring(startPos, endPos);
                        var wasEmpty = (startPos == endPos);
                        var space = "";
                        if (!wasEmpty) {
                                var matches = selection.match(re);
                                if (matches) {
                                        selection = RegExp.$1;
                                        space = RegExp.$2;
                                }
                        }
                        myField.value = myField.value.substring(0, startPos)
                                                                                + prefix+selection+postfix+space
                                                                                + myField.value.substring(endPos, myField.value.length);

                        var newPosition;
                        if (wasEmpty) {
                                newPosition = startPos+prefix.length;
                        } else {
                                newPosition = startPos+prefix.length+selection.length+postfix.length+space.length;
                        }
                        myField.setSelectionRange(newPosition, newPosition);
                } else {
                        myField.value += prefix+postfix;
                        myField.setSelectionRange(startPos+prefix.length, startPos+prefix.length);
                }
        }
}</code></pre>
<p>Na vysvetlenie kódu vyššie. Prvá funkcia nazvaná <strong>help_texy()</strong> nám umožní zobraziť nápovedu pri prechode myšou nad daným formátovacím tlačítkom.</p>
<p>Druhá funkcia nazvaná <strong>insertAtCursor()</strong> nám umožní efektívne formátovať text vkladaním direktív texy. Autorom tejto funkcie je <a href="http://www.alexking.org">Alex King</a> Táto funkcia nám okrem iného umožňuje označiť text, stlačiť pri označenom texte formátovacie tlačítko a označený text sa celý zformátuje (ukážku funkčnosti môžeme vidieť napríklad v diskusii pod týmto článkom).</p>
<h2>2. krok: vloženie javascript súboru</h2>
<p>Javascript súbor <strong>texy.js</strong> máme vytvorený a teraz nám stačí načítať tento súbor v nášom layoute. Do súboru <strong>app/views/lay­outs/default.ctp</strong> vložíme nasledovný kód</p>
<pre><code>&lt;?php echo $javascript -&gt; link('texy.js'); ?&gt;</code></pre>
<h2>3. krok: helper pre formátovacie tlačítka</h2>
<p>Posledným krokom je vytvorenie helperu pre formátovacie tlačítka. Vytvoríme súbor <strong>app/views/hel­pers/texy.php</strong> do ktorého umiestníme nasledujúci kód</p>
<pre><code>class TexyHelper extends AppHelper
{
        function createMenuBar()
        {
                $output = '&lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'**\', \'**\')" onmousemove="help_bbcode(\''.__("TEXY_B",true).'\')" value="b"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'//\', \'//\')" onmousemove="help_bbcode(\''.__("TEXY_I",true).'\')" value="i"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'/---code\n\', \'\n\\\---\')" onmousemove="help_bbcode(\''.__("TEXY_CODE",true).'\')" value="code"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'"'.__("TEXY_URL_NAME",true).'":\', \'\')" onmousemove="help_bbcode(\''.__("TEXY_URL",true).'\')" value="link"/&gt;

                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'"'.__("TEXY_EMAIL_NAME",true).'":\', \'\')" onmousemove="help_bbcode(\''.__("TEXY_EMAIL",true).'\')" value="email"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'\', \' .{color:red}\')" onmousemove="help_bbcode(\''.__("TEXY_COLOR",true).'\')" value="color"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'\', \' .&lt;&gt;\')" onmousemove="help_bbcode(\''.__("TEXY_CENTER",true).'\')" value="center"/&gt;
                &lt;input type="button" onclick="insertAtCursor(document.commentsAddForm.CommentText, \'\', \' .&gt;\')" onmousemove="help_bbcode(\''.__("TEXY_RIGHT",true).'\')" value="right"/&gt;';

                return $this -&gt; output($output);
        }
}</code></pre>
<p>Do súboru <strong>app/app_contro­ller.php</strong> vložíme kód</p>
<pre><code>var $helpers = array('Texy');</code></pre>
<p>Ešte nesmieme zabudnúť pridať do súboru <strong>app/locale/tvoj_ja­zyk/LC_MESSAGES/de­fault.po</strong> nasledujúce texty pre preklad</p>
<pre><code>msgid "TEXY_B"
msgstr "Hrubý text: **hrubý text**"

msgid "TEXY_CODE"
msgstr "Kód: /---code kód v programovacom jazyku \\\\\\---"

msgid "TEXY_I"
msgstr "Šikmé písmo: //šikmý text//"

msgid "TEXY_URL"
msgstr "Vložiť odkaz: "názov odkazu":http://www.odkaz.sk"

msgid "TEXY_URL_NAME"
msgstr "názov odkazu"

msgid "TEXY_EMAIL"
msgstr "Vložiť odkaz: "názov email adresy":email@email.sk"

msgid "TEXY_EMAIL_NAME"
msgstr "názov email adresy"

msgid "TEXY_COLOR"
msgstr "Farba textu: farebny text .{color:farba}"

msgid "TEXY_CENTER"
msgstr "Zarovnanie textu na stred: text .&lt;&gt;"

msgid "TEXY_RIGHT"
msgstr "Zarovnanie textu napravo: text .&gt;"

msgid "TEXY_HELP_TEXT"
msgstr "Tip: vyššie uvedenými tlačítkami môžete efektívne formátovať text"</code></pre>
<p>Týmto máme všetky potrebné kódy vytvorené a môžeme do nášho view zakomponovať formátovacie tlačítka pre texy tak, ako to môžeme vidieť v diskusii k tomuto článku.</p>
<p>Stačí nám zavolať v ľubovoľnom view súbore nasledovný kód</p>
<pre><code>&lt;? echo $texy -&gt; createMenuBar(); ?&gt;</code></pre>
<p>Ak chceme zobraziť nápovedu k jednotlivým tlačítkam, musíme vložiť do nášho view súboru nasledovný kód</p>
<pre><code>&lt;div id="hhhh"&gt;&lt;? __('TEXY_HELP_TEXT'); ?&gt;&lt;/div&gt;</code></pre>
<p>Vaše námety a pripomienky rád uvítam v diskusii k článku.</p>
]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2007/09/30/texy-v-cakephp-javascript-formatovacie-tlacitka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Texy v cakePHP</title>
		<link>http://ims.rockretail.com/2007/09/21/texy-v-cakephp/</link>
		<comments>http://ims.rockretail.com/2007/09/21/texy-v-cakephp/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 15:47:48 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[texy]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dnes si ukážeme, ako môžeme skvelý formátovací systém Texy.info zakonponovať do aplikácie postavenej na cakePHP.
Najprv si musíme stiahnuť zdrojové kódy Texy, ktoré nájdeme na oficiálnej stránke Texy. V dobe písania článku je aktuálna verzia Texy 2 beta.
Po stiahnutí archívu nám stačí súbor texy.compact.php, čo je kompletné texy v jednom súbore.
Súbor texy.compact.php rozbalíme do adresára app/vendors/texy/
Následne [...]]]></description>
			<content:encoded><![CDATA[<p>Dnes si ukážeme, ako môžeme skvelý formátovací systém Texy.info zakonponovať do aplikácie postavenej na cakePHP.<span id="more-2"></span></p>
<p>Najprv si musíme stiahnuť zdrojové kódy Texy, ktoré nájdeme na oficiálnej stránke <a href="http://texy.info/download" target="_blank">Texy</a>. V dobe písania článku je aktuálna verzia <strong>Texy 2 beta.</strong></p>
<p>Po stiahnutí archívu nám stačí súbor <strong>texy.compact.php</strong>, čo je kompletné texy v jednom súbore.</p>
<p>Súbor <strong>texy.compact.php</strong> rozbalíme do adresára <strong>app/vendors/texy/</strong></p>
<p>Následne vytvoríme súbor <strong>app/views/hel­pers/texy.php</strong> do ktorého umiestníme nasledujúci kód</p>
<pre><code>vendor('texy'.DS.'texy.compact');

class TexyHelper extends AppHelper {

  function show($string)
  {
     $texy = new texy();

     $output = $texy -&gt; process($string);

     return $this -&gt; output($output);
  }

}</code></pre>
<p>Posledný krok je povoliť používanie helperu texy v našich view súboroch a to zapísaním nasledovného kódu do súboru <strong>app/app_contro­ller.php</strong></p>
<pre><code>var $helpers = array("Texy");</code></pre>
<p>Týmto máme všetko hotové a pri zobrazení napríklad príspevkov v diskusii môžeme volať nasledovný kód</p>
<pre><code>echo $texy -&gt; show($article["Comment"]["text"]);</code></pre>
<p>V budúcej časti sa môžeme tešiť na článok o formátovacích tlačítkach k texy, ktoré nám uľahčia formátovanie príspevkov v diskusiách.</p>
]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2007/09/21/texy-v-cakephp/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
