<?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"
	>

<channel>
	<title>Вовата, s. Hamaelleon ™ &#187; back-end</title>
	<atom:link href="http://www.vlkomarov.info/blog/tag/back-end/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vlkomarov.info/blog</link>
	<description>Почти сериозен блог на една гола цица</description>
	<pubDate>Sun, 31 May 2009 20:01:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Flash, XML, PHP, CMS - основата</title>
		<link>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/</link>
		<comments>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 17:18:28 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA[back-end]]></category>

		<category><![CDATA[CMS]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Xground]]></category>

		<category><![CDATA[xgroundmodels]]></category>

		<category><![CDATA[администрация]]></category>

		<category><![CDATA[базисни положения]]></category>

		<category><![CDATA[Ексграунд]]></category>

		<category><![CDATA[основа]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=83</guid>
		<description><![CDATA[
Абе просто съм се побъркал: вместо да ходя да.. разходя някоя подобна кака, аз седя отново зад компютъра (в събота) и работя. Мой ли проект? Ами не! Всъщност съм се закрастил яко с тази администрация на сайта на XGround Models.. ако беше &#8220;официално&#8221; поръчано щеше да ме домързи и да го работя вероятно в понеделник [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/lora-georgieva-xground.jpg" alt="Лора Георгиева - рекламно лица на XGround Models" /></p>
<p>Абе просто съм се побъркал: вместо да ходя да.. разходя някоя подобна кака, аз седя отново зад компютъра (в събота) и работя. Мой ли проект? Ами не! Всъщност съм се закрастил яко с тази администрация на сайта на XGround Models.. ако беше &#8220;официално&#8221; поръчано щеше да ме домързи и да го работя вероятно в понеделник към 4-5 сутринта.. ама не, като ми е интересно и си го човъркам по всяко време, без значение, че никой не го изисква..</p>
<p>Та, имаме <a href="http://www.xgroundmodels.com" target="_blank">Flash сайт</a>, който вече е изграден (т.е приемаме го за константа). Той използва семпли XML файлове като база данни. Задачата е да се напише back-end, чрез който да се редактират тези XML файлове, респективно да се променя обликът на front-end-a. <a href="http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/" target="_blank">В предишната публикация</a> споменах за тази задача.</p>
<p><span id="more-83"></span></p>
<p>Оставяме настрана файловите операции (имам предвид качване, преоразмеряване, рязане на снимки, създаване на thumbnail-и, etc.) настрана, не се занимаваме и с DTD на този етап. Ползваме DOM за парсване и създаване на XML-ите и това е всичко. Основата..</p>
<p>Ако имаме XML файл със структура и съдържание подобно на следното:</p>
<pre class="syntax-highlight:xml">&lt; ?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;models&gt;
&lt;model name=&quot;Флейта Тромпеткова&quot; age=&quot;23&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Блонди Свиркова&quot; age=&quot;19&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Ганка Заблейкова&quot; age=&quot;20&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Учтивост Лицемеркова&quot; age=&quot;18&quot;
readonly=&quot;1&quot;/&gt;
&lt;model name=&quot;Съска Змейкова&quot; age=&quot;22&quot;
readonly=&quot;1&quot;/&gt;
&lt;/models&gt;
</pre>
<p>..то можем да извършваме базовите операции с помощта на методите от този примерен PHP клас. Тези операции са:<br />
- добавяне на нов елемент<br />
- редактиране на даден елемент<br />
- изтриване на елемент<br />
- пренареждане в произволен ред (не просто сортиране) на елементите</p>
<pre class="syntax-highlight:php">
&lt; ?php
class xmlLib {

// XML File Parse -&gt; PHP Array

function getXML($xmlFile) {
$xmlArr = array();
$c = 1;
$xml = new DomDocument(&#039;1.0&#039;, &#039;UTF-8&#039;);
$xml-&gt;load($xmlFile);
$root = $xml-&gt;documentElement;
$children = $root-&gt;childNodes;
foreach ($children as $element) {
if ($element-&gt;nodeType == XML_ELEMENT_NODE &amp;&amp;
$element-&gt;nodeName == &#039;model&#039;) {
$xmlArr[$c][&#039;name&#039;]	=
$element-&gt;getAttributeNode(&#039;name&#039;)-&gt;value;
$xmlArr[$c][&#039;age&#039;]	=
$element-&gt;getAttributeNode(&#039;age&#039;)-&gt;value;
$xmlArr[$c][&#039;readonly&#039;]	=
$element-&gt;getAttributeNode(&#039;readonly&#039;)-&gt;value;
$c++;
}
}
return $xmlArr;
}

// Add Entry

function addEntry($add, $xmlArr, $xmlFile) {
$p = sizeof($xmlArr) + 1;
$xmlArr[$p][&#039;name&#039;] = $add[&#039;name&#039;];
$xmlArr[$p][&#039;age&#039;] = $add[&#039;age&#039;];
$xmlArr[$p][&#039;readonly&#039;] = $add[&#039;readonly&#039;];
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Edit Entry

function editEntry($edit, $xmlArr, $xmlFile) {
$who = $edit[&#039;who&#039;];
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] == $who &amp;&amp;
$xmlArr[$key][&#039;readonly&#039;] != &#039;1&#039;) {
$xmlArr[$key][&#039;name&#039;] = $edit[&#039;name&#039;];
$xmlArr[$key][&#039;age&#039;] = $edit[&#039;age&#039;];
}
}
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Remove Entry

function removeEntry($remove, $xmlArr, $xmlFile) {
$who = $remove[&#039;name&#039;];
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] == $who &amp;&amp;
$xmlArr[$key][&#039;readonly&#039;] != &#039;1&#039;) {
$xmlArr[$key] = null;
}
}
if ($this-&gt;saveXML($xmlFile, $xmlArr)) {
return true;
}
}

// Set Entries Order

function setOrder($order, $xmlArr, $xmlFile) {
$tmp = array();
for ($i = 1; $i &lt; = sizeof($xmlArr); $i++) {
for ($j = 1; $j &lt;= sizeof($xmlArr); $j++) {
if ($order[$i - 1] == $xmlArr[$j][&#039;name&#039;]) {
$tmp[$i][&#039;name&#039;] = $xmlArr[$j][&#039;name&#039;];
$tmp[$i][&#039;age&#039;] = $xmlArr[$j][&#039;age&#039;];
$tmp[$i][&#039;readonly&#039;] =
$xmlArr[$j][&#039;readonly&#039;];
}
}
}
if ($this-&gt;saveXML($xmlFile, $tmp)) {
return true;
}
}

// Save PHP Array -&gt; XML File

function saveXML($xmlFile, $xmlArr) {
$xml = new DomDocument(&#039;1.0&#039;, &#039;UTF-8&#039;);
$xml-&gt;formatOutput = true;
$root = $xml-&gt;createElement(&#039;models&#039;);
$root = $xml-&gt;appendChild($root);
foreach ($xmlArr as $key =&gt; $person) {
if ($xmlArr[$key][&#039;name&#039;] != null) {
$model = $xml-&gt;createElement(&#039;model&#039;);
$model = $root-&gt;appendChild($model);
$name = $xml-&gt;createAttribute(&#039;name&#039;);
$name = $model-&gt;setAttribute(&#039;name&#039;,
$xmlArr[$key][&#039;name&#039;]);
$name = $model-&gt;appendChild($name);
$age = $xml-&gt;createAttribute(&#039;age&#039;);
$age = $model-&gt;setAttribute(&#039;age&#039;,
$xmlArr[$key][&#039;age&#039;]);
$age = $model-&gt;appendChild($age);
$readonly = $xml-&gt;createAttribute(&#039;readonly&#039;);
$readonly = $model-&gt;setAttribute(&#039;readonly&#039;,
$xmlArr[$key][&#039;readonly&#039;]);
$readonly = $model-&gt;appendChild($readonly);
}
}
if ($xml-&gt;save($xmlFile)) {
return true;
}
}
}
?&gt;
</pre>
<p>Кодът е семпъл и няма нужда от допълнителни коментари, старал съм се да пиша максимално чисто. Некондензиран и с допълнителни инденти го има и в <a href="http://www.vlkomarov.info/projects/xgroundmodels/cms/demo/index.php" target="_blank">демо страницата.</a></p>
<p><a href="http://www.vlkomarov.info/projects/xgroundmodels/cms/demo/index.php" target="_blank">Пробвайте демото</a> и си кажете мнението. Мързи ме да пиша повече. Точка.</p>
<p>Тъй като такива (изтрито) красавици като Лора надали се сещат за съществуването на моя милост мисля да отида да си купя един-два кроасана с шоколад и да се натъпча подобаващо.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/07/12/flash-xml-php-cms_basic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Е, как е?</title>
		<link>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/</link>
		<comments>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 10:17:55 +0000</pubDate>
		<dc:creator>Hamaelleon</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<category><![CDATA[Лично]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[Atom]]></category>

		<category><![CDATA[Atom Solutions]]></category>

		<category><![CDATA[back-end]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[web developer]]></category>

		<category><![CDATA[XHTML]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA[Атом]]></category>

		<category><![CDATA[нова]]></category>

		<category><![CDATA[ООП]]></category>

		<category><![CDATA[предизивикателство]]></category>

		<category><![CDATA[работа]]></category>

		<category><![CDATA[споделяне]]></category>

		<category><![CDATA[учене]]></category>

		<guid isPermaLink="false">http://www.vlkomarov.info/blog/?p=81</guid>
		<description><![CDATA[
Е, как е? Справяш ли се с новата работа? Доволен ли си? Похвали се нещо..

Това бяха въпроси, които чувах постоянно през изминалия месец от приятели, които знаеха, че съм започнал нова работа.
Сега ще ви разкажа накратко.
Фирмата се казва Atom Solutions, www.atomsolutions.net. Офисът е в &#8220;центъра&#8221; на София.
Само няколко човека сме и няма нито една колежка..
Работа [...]]]></description>
			<content:encoded><![CDATA[<p><a title="XGround Models Back-End ScreenShot #050708" rel="lightbox" href="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/ss-xground-photos-050708.jpg"><img style="border: 0;" src="http://www.vlkomarov.info/blog/wp-content/uploads/2008/07/ss-xground-photos-050708-th.jpg" alt="XGround Models Back-End ScreenShot #050708" /></a></p>
<p>Е, как е? Справяш ли се с новата работа? Доволен ли си? Похвали се нещо..</p>
<p><span id="more-81"></span></p>
<p>Това бяха въпроси, които чувах постоянно през изминалия месец от приятели, които знаеха, че съм започнал <a href="http://www.vlkomarov.info/blog/2008/05/25/new_work/" target="_blank">нова работа</a>.</p>
<p>Сега ще ви разкажа накратко.</p>
<p>Фирмата се казва <a href="http://www.atomsolutions.net/" target="_blank">Atom Solutions, www.atomsolutions.net</a>. Офисът е в &#8220;центъра&#8221; на София.</p>
<p>Само няколко човека сме и няма нито една колежка..</p>
<p>Работа има доста. Първите две седмици беше тежко. В началото на втората седмица даже се чудех сутрините &#8220;да отида ли днес на работа или да си остана вкъщи&#8221; <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Абе беше си шаш и паника. Даже си направих комбинация от <a href="http://bach.vlkomarov.info" target="_blank">Бах есенции</a>, нещо, което не бях правил от две години, може би и повече (Орех, Бряст, Трепетлика, Кестенови пъпки, Лиственица)..</p>
<p>Има три неща, свързани с работата, които жестоко ме изнервят, но за съжаление и трите са неразделна част от нея и не може да мине без тях: 1. Мразя да работя в <em>крайни срокове</em>, особено пък в срокове &#8220;за вчера&#8221;, а в началото първите няколко задачи бяха точно такива и със сигурност ще има и още подобни. 2. Мразя да се чувствам <em>неспособен</em>, да нямам усещането, че ще се справя с поставената задача.. а в началото усещах прекалено осезателно колко много пропуски имам и колко неща не знам и не съм правил. 3. Клиентите, които <em>не са наясно</em> с ограниченията на web и искат от теб сайтът им примерно да пържи яйца на челна стойка, докато свири 349 симфония на Моцарт. Няма такава ли? Е, ти нали си уеб програмист, ще заложиш в сайта и възможност да композира гениални произведения, разбира се. Преекспонирам, но мисля, че схванахте идеята, нали? <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>В началото се борех със задачи от английски клиент.. това беше първата и част от втората седмица. Писах една търсачка, борих се с едни класове за mass mail.. в крайна сметка клиентът е останал доволен, а това е важното. А аз научих доста нови неща.</p>
<p>След това имаше някакъв сайт за ъпдейт, трябваше да свършим за два дена, направихме го (с клиента до мен, казващ ми това тук така, онова еди как си го искам) за един следобед. Пак доволен клиент.</p>
<p>На 11 юни ми възложиха един проект с &#8220;това е спешно.. ако можеш да го свършиш този уикенд.. и няма нищо сложно, само малко промени по CSS-а на сайта&#8221; <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Става дума за сайт, писан от румънски колеги, използващи <a title="Smarty Template Engine" href="http://www.smarty.net/" target="_blank">Smarty Template Engine</a>. Имах бегла представа за Smarty, но се наложи експресно да изчета <a title="Smarty Template Engine" href="http://www.smarty.net/manual/en/" target="_blank">цялата документация</a>, празнуването на рождения ми ден (13 юни) отиде по дяволите.. изискваните промени изобщо не бяха нито прости, нито само по CSS стиловете. В крайна сметка с множеството малки и по-големи промени по първоначалния шаблон, фиксове, добавен нов раздел и съответна функционалност в Admin Panel-а, че и преправянето след това и за гръцки колеги, работата по този сайт се проточи до 2 юли. Резултатът е <a href="http://www.mobilenews.bg" target="_blank">www.mobilenews.bg</a> и <a href="http://www.mobile-news.gr" target="_blank">www.mobile-news.gr</a> (сега забелязах нещо за фиксване в CSS-a, щото под IE 6 заглавната не изглежда точно така, както трябва да е). Трябва да добавя по някое време поддръжка на RSS и възможност за качване на видео в сайта. Също и търсачка за раздел Каталог. С две думи, ще има още работа..</p>
<p>Вярно, научих достатъчно за Smarty за да се справя по-уверено със следващата подобна задача, но това все пак е като да бършеш нечий чужд задник, не е много приятно занятие. Друго си е да си почнеш съответния проект от нулата, да си знаеш къде какво си писал в кода и кое как си реализирал.. да, пак ползваш опита на майсторите в бранша, като готови функции, класове, решения и т.н., но ти си този, който слага тухла след тухла в изцяло нов строеж, а не просто кръпки във вече съществуваща уеб сграда. Не знам, това ме влече повече.</p>
<p>Сега имам нова задача. Трябва да напиша администрация за <a title="Xground Models" href="http://www.xgroundmodels.com" target="_blank">сайта на Xground Models, www.xgroundmodels.com</a>. Сайтът е изцяло на Flash, организацията на информацията е посредством XML файлове. Моята задача е парсване на XML-ите (ползвам PHP DOM), актуализацията им и записването им вече обновени, както и работа с файлове (разбирай картинки). Интересно ми е.. щом вчера вместо да си почивам отделих три часа за човъркане в CSS-а и за работа с Photoshop-a.. в събота.. за служебна работа!? Или съм се сдухал, или просто наистина ми е интересно.</p>
<p>С две думи, работата е доста, учи се интензивно в движение, повечето неща, които правих този месец преди ги бях чел само на теория или пък имах предишни реализации в доста опростен вид.. с една идея съм напред с ООП.. и изобщо, ако така ще се чете и ще се учи следващите пет месеца, като ми мине изпитателния срок определено ще съм доста по-напред с материала, което може само да ме радва. И няма да има значение дали ще остана в същата фирма или ще се търси нова работа отново..</p>
<p>Това на първо място зависи от заплащането, естествено. Предишната работа, която напуснах беше ок, шефът ми беше пич, имах време да чета и да уча, но всеки месец, плащайки наема, сметките и подобни се оказвах още на 3-4 число с цял месец пред мен и празни джобове. Сори, ама така не се живее. Лоялността към фирмата я разбирам така: започваш на една заплата и на обичайния изпитателен срок, при мен в случая беше 6 месеца, и сега пак е така. Работиш, изпълняваш си съвестно задълженията, учиш (на предишната работа моментът с ученето беше изцяло лична инициатива, самата работа де факто не го изискваше) и като ти изтече изпитателния срок си вече с една или повече стъпки напред, нали? Означава, че си по-опитен и с повече знание, нали? Следователно би трябвало да си по-ценен кадър и съответно цената ти да е по-висока. И ако въпреки това (както за съжаление се случва в повечето фирми в БГ) няма промяна в заплащането или пък става дума за мизерно увеличение (както беше в по-по-предишната ми работа), и работата не ти предоставя кой знае какви перспективи за учене или професионално развитие, тогава какво? Разбира се, че напускаш при първа възможност заради по-добро предложение. (Е, аз продължавам засега работата с комиксите, но де факто съм напуснал.) Правилно ли разсъждавам?</p>
<p>В крайна сметка, не съм толкова млад вече, че да си позволя кибик на безперспективна работа само за да ми е по-лек живота.. вземаш си там някаква си заплатка и кюташ както намериш за добре, евентуално все още висейки на врата на мама и тати (познат ли ви е този сценарий).. нито пък съм все още на години, когато да се стремя да се установя някъде за постоянно и да храня напразни надежди за пенсия и лека старост. Сега му е времето за растеж (макар, че аз малко съм закъснял покрай отделените 6 години на медицината и още 3 за хомеопатията.. както и да е, те не се губят, за добро са..) и експериментиране, нали?</p>
<p>&#8212;</p>
<p>Има много за учене, има интересни задачи, заплащането за момента ме удовлетворява.. в крайна сметка този месец съм изкарал 245% повече от предишния, като само 1/9 от дохода за месеца е от частни проекти, няма от какво да се оплаквам.</p>
<p>&#8212;</p>
<p>О, btw, май скоро ще съм най-дъртия във фирмата.. това не знам дали да го коментирам..</p>
<p>&#8212;</p>
<p>Ами, това е засега <img src='http://www.vlkomarov.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vlkomarov.info/blog/2008/07/06/atom-solutions/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
