Скорошни обновления RSS Toggle Comment Threads | Клавишни комбинации

  • Димитър Вулджев 18:53 на 20.12.2009 Постоянна връзка | Отговор
    Tags: , movie   

    Avatar – ревю 


    Аватар

    Аватар

    Вчера отидох на кино. Доста бях слушал за AVATAR, така че реших това да гледам – на 3D!

    Влизаме в света на извънземините през очите на Джейк Съли, бивш пехотинец сега прикован за инвалидна количка. Но въпреки това той все още е войник по сърце. Той пропътува много светлинни години до дълечната планета Пандора, където хората извличат за рядък минерал – ключът за решаването на енергиината криза на Земята. Тъй като атмосферата на Пандора е токсична, хората създават програмтата Аватар, в която хора „пилоти“ свързват тяхното съзнание с аватар, дистанционно оправляемо биологично тяло, което може да живее в условията на Пандора. Тези аватари са генетични хибриди, създадени от ДНК на хора смесено с ДНК на местните… На’ви.

    Прероден благодарение на аватара си, Джейк може отново да ходи. Той има мисия – да се сближи с местните, за да може ценният минерал да бъде извлечен. Но красива женска На’ви, Нейтирии, спасява Джейк, и вскично се променя. Джейк започва обученито си за да стане един от тях. Той преминава през много приключения, научава се да увъжава начина на живот на На’ви и става един от тях. Но скоро той ще ги поведе към последната битка…

    Стига съм ви разправял, филмът е ужасно интересен и заслужава да се гледа на 3D кино, а не в къщи!

    PS. На’ви имат нещо мрежа между самите тях и природата. Посредством нещо като „модерен“ USB порт те комуникират с животните и природата, запазват спомени в Дървото на душите, а тяхното божество се нарича Ейва.

     
  • Димитър Вулджев 13:27 на 16.11.2009 Постоянна връзка | Отговор
    Tags: , programming   

    Google Go – Python се среща със C++ 

    Google Go

    Google Go

    От Google винаги са смятали, че програмирането трябва да е бързо, продуктивно и най-вече забавно! Затова те създадоха нов експериментален език – Go. Той комбинира скоростта и сигурността на компилируемите езици с бързината и удобството на рабора с динамичните езици като Python. Освен това Go се компилира бързо, почти като C.

    Go e прост и поддържа unicode:
    package main

    import "fmt"

    func main() {
    fmt.Printf("Hello, 世界\n")
    }

    Сигурен е. Има garbage collector, указатели без аритметика с указатели и „slices“ – те са подобия на указателите, но си знаят дължината.
    Конкурентен е – има map-ове и структури.

    Главното му предназначение е за системни цели, но кой знае в какво ще се превърне. Макар и бебе, вече има проек на Goклиент за Twitter. Нещо като Tweety или TweetDeck, само че през терминала. Лично мен много ме зариби, кога сте си представяли да туитвате през командния ред?

    За повече информация посетете сайта на Google Go.

     
  • Димитър Вулджев 19:27 на 03.11.2009 Постоянна връзка | Отговор
    Tags:   

    Google Wave – ново поколение чат и мейл 

    Google Wave лого

    Логото на Google Wave

    Вчера получих поканата си за Google Wave и реших да драсна два, три реда! Това е ново поколение чат, както и и-мейл, разработвано от Google. Много е удобно за работа в екип, както и за организация на различни ресурси на едно място. В постовете може да включвате картинки, видеота, местоположения и нещо което на мен много ми допадна – анкета. Решавате да организирате парти – правите нов wave, със хората които каните и сложете една анкета кой ще идва. Много е готино.

    Друго интересно са ботовете. Те могат да правят всичко, което и хората могат. Да речем пишете си с приятел от германия, но не знаете немски. Добавяте робота Rosy и тя мигновенно превежда чрез Google Translate! По този начин може да добавите Tweety – той събира вашите туитове в един wave.

    Приятно е, че когато някой пише, вие виждате какво точно пише той, в реално време – буква по буква. И можете да добавяте коментари по всяка част на разговора – дори и в чужди. Дори и той да е offline – ще получи коментарите, когато е online, независимо от вас.

    Много готино като цяло, единственото което за сега не ме кефи, че нямам нито един контакт – реален човек. Но това е за кратко!

     
  • Димитър Вулджев 21:07 на 11.10.2009 Постоянна връзка | Отговор
    Tags: , ,   

    Достъп до Wi-Fi в училище 

    В училище /НПМГ/ си имаме Wi-Fi access points. Но от тази година, когато се свържа, ми иска парола и потребител. Пойнтересувах се и рабрах, че в някой училища. както и в НПМГ, достъпът до интернет се осъществява с регистрация в Национален образователен портал. Как да се регистрираме?
    Трябва си спомним, къде сме учили на 01.01.2007, както и трите имена според дневника и егн. След това се регистрираме в портала и готово. Вече имаме достъп до Wi-Fi.

     
  • Димитър Вулджев 20:01 на 06.10.2009 Постоянна връзка | Отговор
    Tags: , ,   

    Новият сайт на класа 

    Вчера офицялно бе пуснат новият сайт на класа! Тък като старият сайт бе направен много на бързо, защото гонехме конкурс, всичко стана много отгоре, отгоре, най-вече кода.
    Като започнахме училище някой ми каза – „Защо не променим малко сайта?“, и аз си рекох, защо пък да не го и пренапиша?
    И така за 1 седмица, сайтът бе създаден отначало с нов дизайн, нова схема на базата данни, нова функционалност, ново маркиране и тн. Това на което се радвам е, че сега сайтът е маркиран спрямо стандартите на W3 и е малко или много оптимизиран или поне писан за Google. Освен това е писан на symfony, благодарение на когото всичко е структорирано има красиви линкове със слъгове и тн. Нова функционалност.

    Ето го и него http://2013-npmg.com

     
  • Димитър Вулджев 17:47 на 23.09.2009 Постоянна връзка | Отговор
    Tags:   

    Google Chrome Fame – ах вие 

    Докато си браузвах, случайно попаднах на статия, където се споменава нещо, наречено Google Chrome Fame.
    След кратко проучване разбрах, че това е плъгин за Internet Explorer 6+, който рендва страниците като Google Chrome. Край на мъките с оптимизацията за IE6. Просто слагате един meta таг, който оказва да се използва Fame рендъра.
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    А когато потребителят не разполага с плъгина, той ще бъде помолен да го изтегли.

    Малко повече може да разберете в офицялната страница на Google Chrome Fame.

     
  • Димитър Вулджев 23:22 на 16.09.2009 Постоянна връзка | Отговор
    Tags: , ,   

    Magento SEO хак – H1 като заглавие в каталога 

    Ако сте се концетрирали в оптимизацията за търсачки на вашия Magento магазин, най-вероятно използвате Yoast Blank SEO Theme. Но в каталога H1 тага е името на категорията. За  много по-добра оптимизация е жизнено важно meta title тага и h1 тага да са еднакви или поне първите 4 – 5 думи. И така, как да го направим?

    Отворете app/design/frontend/your default theme name/your theme name/template/catalog/category/view.phtml, и в началото добавете следния ред:
    <? $page_title = (strlen($this->getCurrentCategory()->getMetaTitle()) > 2) ? $this->getCurrentCategory()->getMetaTitle() : $this->getCurrentCategory()->getName(); ?>
    А в следващите редове, заместете:
    $this->getCurrentCategory()->getName()
    с:
    $page_title

    Това е, готови сте за борбата!

     
  • Димитър Вулджев 23:15 на 16.09.2009 Постоянна връзка | Отговор
    Tags: , ,   

    Magento SEO hack – H1 like title in catalogs 

    When you`re concentrated in optimizing your store for search engines you are probably using Yoast Blank SEO Theme. But on the catalog page the H1 tag is same as the category name. For better, better optimization it is very vital the meta title tag and the h1 tag to be the same or at least the first 4 – 5 words. So how to do that?

    Open app/design/frontend/your default theme name/your theme name/template/catalog/category/view.phtml, and in the beginning of the document put the following line:
    <? $page_title = (strlen($this->getCurrentCategory()->getMetaTitle()) > 2) ? $this->getCurrentCategory()->getMetaTitle() : $this->getCurrentCategory()->getName(); ?>
    And in the next lines replace:
    $this->getCurrentCategory()->getName()
    with:
    $page_title

    You`re done!

     
  • Димитър Вулджев 19:06 на 04.09.2009 Постоянна връзка | Отговор
    Tags: ,   

    Magento упътване за дизайнери – теми 

    В тази тема ще ви обясня как Magento работи с темите и как да направите ваша:

    Как Magento се справя с темите

    Това са някой от нещата, които са внедрени в Magento:

    1. Максимално персонализиране
      С Magento можете да обновите външния вид и оформлението на магазина на ниво категория или дори продукт, което ви дава големи маркетингови и промоционални предимства, както и магазин с безкрайно уникален дизайн. Дори представете си представяне на всеки продукт в негов собствена потребителска инфо страница! Magento ви позволява да направя точно това и повече, чрез осигуряване на бърз начин, за да персонализация.
    2. Множество теми
      Magento ви дава възможност да се заредят няколко теми наведнъж, което ще Ви позволи да да преминавате между дизайн по подразбиране и временен/сезонен/. И всичко това – на няколко клика разтояние.
    3. Непрекъснат работен процес
      С Magento, напълно обектно-ориентиран, всички модули са непосредствено достъпни от всеки шаблонен файл. И понеже Magento има голям набор от функции, вие никога няма отново да бъдат зависими от програмист да иззавърши най-простите задачи за вас. А ако имате проблеми, просто посетете форума на magento, където хора от цял свят ще ви помогнат/дори и разработчицете на магенто/.
    4. Бързо дебъгване
      Всеки дизайнер може да си припомни тези ценни часове и минути, загубени в търсенето на незатворени тагове. Валидаторът ви казва какво не е наред, но не и къде се случва това. Magento има шаблонна модулна система, която да минимизира количеството на (X)HTML, което трябва да вие да обработвате наведнъж. По-малко означава по-малко от бъркотията и повече здрав разум за истинските и важни неща в живота.

    Наистина, най-добрата част от това, което ви предлага Magento обаче, е приложение, което процъфтява благодарение на гъвкавостта си, оставяйки Ви да се тревожите за изработване на вашите брилянтна планове за следващите „уау“ фронтендове. Небето е лимита за това приложение и се надявам да се забавлявате докато го прилагате към вашия магазин.

    Как да Създам Тема

    Преди всичко да спомена за следните две директорий. Опитайте се да разберете за какво са:

    • 1: app/design/frontend/default*/default^/ – Тази директория съдържа разпределенията, шаблоните и преводите.
    • 2: skin/frontend/default*/default^/ – Тази директория съдържа изображенията, CSS и Javascript.

    Както може би сте забелязали, файловете се разделят на две части: публични(CSS) и непублични. Така Magento ви предлага максимални мерки за сигурност на вашия магазин.

    В двата случая, * посочва името на интерфейс, а ^ посочва името на темата. Така че, ако работите по тема, наречена my_theme в интерфейса - my_interface, то app/design/frontend/my_interface/my_theme/ в вашата директория.

    Един интерфейс може да има безброй теми, но в за момента Magento можа да се справи само с темата по подразбиране и още една допълнителна. (Капацитет за зареждане на неограничен брой теми ще се появи в някоя от следващите версии.)

    Създавана на нова тема по подразбиране

    За да създадете нова тема по подразбиране, първо трябва да копирате сегашната си тема по подразбиране за да имате базова тема, от която да започнете. Създайте копие на app/design/frontend/default/default/ и преименувайте новата директория както си искате (името на интерфейс или тема трябва да започва с буква от азбуката [a-z]. Например „My New Theme“ и „02123_my_theme“ е лошо. „my_new_theme“ става). Името на вашата директория е името, с което магенто ще разпознае вашата тема. Сега направете същото за skin/frontend/default/default . Това е всичко! Вече успешно имате нова тема по подразбиране. За да използвате тази тема, прочетете определяне на интерфейс и тема за магазин по-долу.

    Създаване на нова тема не по подразбиране

    Диаграма 1

    Когато създавате нова тема не по подразбиране, не е нужно да копирате стари папки. Ще се наложи да копирате само файловете, по които ще правите промени. Единствено трябва да спазвате подредбата на директорийте според стандарта на Magento. Например, ако новата ви тема ще съдържа промяна по шаблонния файл ‘home.phtml „от модула catalog от app/design/frontend/интерфейс/тема_не_по_подразбиране/ вие ще трябва да създадете директорята „template/catalog„,  в която да запазите шаблона. Най-важното е да се спазва структурата от директорий на магенто(Диаграма 1), за да може вашата тема да се зареди правилно.

    Определяне на интерфейс и тема за магазин

    Сега, след като сте създали своя собствена тема(независимо дали е по подразбиране, или не по подразбиране), ще трябва да я зададете във вашия сайт/магазин, за да може тя да влезе в сила. Отворете Magento админ панела (например http://www.mydomain.com/admin), след това в раздела за конфигурация на дизайна (Система -> Конфигурация -> Дизайн).

    Диаграма 2
    снимка

    На горния ъгъл на лявата колона в Диаграма 2, ще видите поле с надпис „Current Configuration Scope“.

    • За да управлявате Вашия дизайн на ниво уебсайт, изберете името на вашия сайт от падащото меню, след това се прилагат следните стъпки.
    • За да управлявате на ниво изглед на матазин, изберете името на вашия изглед от падащото меню, след това се прилагат следните стъпки.

    Стъпка 1
    От раздела Проектиранев сегашните пакет име, въведете името на интерфейса, който в да е по подразбиране. Magento автоматично ще се зареди интерфейса наречен „по подразбиране“/default/, ако това поле се оставя празно.

    Стъпка 2
    По подразбиране (под заглавието Палитри), въведете името на новата тема, която искате да се зареди на вашия сайт / магазин. Ако оставите това поле празно, Magento автоматично зарежда само темата, наречена „по подразбиране“ (Не забравяйте, че без значение как се конфигурира дизайн раздела, Magento автоматично ще зареди темата наречена „по подразбиране“. Ако присвоите тема в администрация, тази тема ще се заредите високо в йерархията, но ще се заредите с темата „по подразбиране“. Това ще се промени в предстоящите версии). Ако решите да заредите тема отделно в зависимост от тип файл (оформление, шаблони, кожата или превода на файлове), въведете името на темата, от която да се вземат файловете.

    Стъпка 3
    Когато сте готови, натиснете бутона „Save“ или „Запази“ и презареди своя магазин – Готово! Сега виждате своята нова тема отразена в интерфейса.

    Малко кьопаво го разправих но… Сега, когато сме се погрижили за за създаването и управлението на теми, нека преминем към работата на Magento.

    Кажи здравей на паралелните теми

    Забележка: Капацитет за неогранични теми ще е на разположение в някоя от бъдещите версии. За ще се заредят две теми.

    Когато дойде времето на Дядо Коледа или Хелоуин, Magento ви предлага много лесен начин за стилизиране, без да променяте вашата тема поодразбиране – Диаграма 4!

    Диаграма 3. Стандартната тема

    Диаграма 4. Това е, което ви трябва

    Хубавото е, че когато решите да да направите частична промяна за Коледа, единстево трябва да добавите е да добавите файловете за промяна. И естествено да ги промените. Единствената реална разлика между двата дизайни, може да са само няколко CSS файла, картинки и промени в текста на шаблон файлове.

    Magento се справя с товаренето на няколко теми, с  нещо, наречено йерархия на темите, който е просто един процес на унищожаване на излишни файлове, за да заредите само това, което се намира най-високо в йерархията. И всичко това се променя от админ панела.

    Йерархията на темите

    Например, ако вашия файла за листинг на продкти „view.phtml“ не е в състояние да бъде намерен в темата, най-високо в йерархията, Магенто ще погледне към следващата тема по-ниско в йерархията за да намери файла. И така докато не намери файла, наречен „view.phtml“. Този метод на изграждане на дизайна се нарича fallbacks, защото заявката „пада“ до следващия възможен източник на файловете, необходими, за изгледа.

    Да приемем, че имате три теми, възложени на вашия магазин и всяка една от тези теми, съдържа следните файлове:

    Таблица 1

    по подразбиране my_theme_1 my_theme_2
    Всички необходими файлове templates/3-col-layout.phtml templates/3-col-ayout.phtml
    templates / header.phtml CSS / base.css
    изображения / logo.gif
    CSS / base.css
    CSS / boxes.css

    Ето я и йерархията:

    Таблица 2

    Най-високото my_theme_2
    my_theme_1
    Най-ниска неустойка

    В близко наблюдение, ще видите, че има няколко излишни файлове като templates/3-col-layout.phtml и css/base.css в Таблица 1. Сега нека да  ги подредим успоредно.

    Таблица 3

    по подразбиране my_theme_1 my_theme_2
    Всички необходими файлове
    templates/3-col-layout.phtml templates/3-col-layout.phtml
    images/header.phtml
    images/logo.gif
    CSS/base.css CSS/base.css
    CSS/boxes.css

    „Добре, чудесно. Но какво означава това?“ Можете да питате.
    Е, нека ви напомня, че файловете в Таблица 3 са както ние ги виждаме.

    Нека сега погледнеме как Magento вижда същияата структура в Таблица 4.

    Таблица 4

    по подразбиране my_theme_1 my_theme_2
    Всички необходими файлове
    templates/3-col-layout.phtml
    templates/ header.phtml
    images/logo.gif
    CSS/base.css
    CSS/boxes.css

    Вие ще забележите как Magento игнорира излишните файлове по-ниско в йерархията и признава само версията най-високо в йерархията.

    :: В тази част ви показах как работят темите. В следващата глава пък, ще направим една. И тн. До следващата статия!

     
  • Димитър Вулджев 12:24 на 29.08.2009 Постоянна връзка | Отговор
    Tags: addons,   

    Magento product page – more products from the same category 

    When somebody visits some of your product pages directly from a search engine, it will be useful to display some more products like this on the sidebar for example. Or after the product…
    So here I will show you how to do that.

    More product on the sidebar

    • Create new block class that will return the „more products“
      create new the following directories and file app/code/local/MyCompany/Catalog/Block/Product/List/More.php
      <?php class MyCompany_Catalog_Block_Product_List_More extends Mage_Catalog_Block_Product_Abstract {
      protected $_itemCollection = array();
      protected function _prepareData() {
      $product = Mage::registry('product');
      $categories = $product->getCategoryCollection()
      ->setPage(1, 1)
      ->setOrder("level")
      ->load();
      if($categories->count())
      {
      $selective = Mage::getResourceModel('catalog/product_collection')
      ->addAttributeToSelect('small_image');
      foreach($categories as $_category)
      $selective->addCategoryFilter($_category);                
      Mage::getResourceSingleton('checkout/cart')->addExcludeProductFilter($selective, Mage::getSingleton('checkout/session')->getQuoteId());
      Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($selective);
      $this->_addProductAttributesAndPrices($selective);
      $selective->getSelect()->order('rand()');
      $selective->getSelect()->limit(4);
      $this->_itemCollection = $selective->load();
      foreach ($this->_itemCollection as $product) {
      $product->setDoNotUseCategoryId(true);
      }
      }
      return $this;
      }
      protected function _beforeToHtml()
      {
      $this->_prepareData();
      return parent::_beforeToHtml();
      }
      public function getItems()
      {
      return $this->_itemCollection;
      }
      }
               
      Where you must replace MyCompany with your company name, I personally use Varien.
    • Add new blocks to the app/etc/local.xml 

      Add this inside the <config> block
      <blocks>
      <catalog>
      <rewrite>
      <product_list_more>MyCompany_Catalog_Block_Product_List_More</product_list_more>
      </rewrite>
      </catalog>
      </blocks>   

      Where again you must replace MyCompany with your company name. 

    • Echo featured products HTML
      Add the following code in app/design/frontend/default/default/template/catalog/product/list/more.phtml    
      <?php if($this->getItems()->getSize()): ?>
      <div class="block block-more">
      <div class="block-title"><strong><?php echo $this->__('More Products') ?></strong></div>
      <div class="block-content">
      <ol id="block-more"><?php foreach($this->getItems() as $_item): ?>  
      <li class="item">
      <div class="item">
      <div class="product-image"><img title="<?php echo $this->htmlEscape($_item->getName()) ?>" src="<?php echo $this-/>helper('catalog/image')->init($_item, 'thumbnail')->resize(50) ?>" alt="< ?php echo $this->htmlEscape($_item->getName()) ?>" width="50" height="50" /></div>
      <div class="product-details">
      <h3 class="product-name"><a href="<?php echo $_item->getProductUrl() ?>"><?php echo $this->htmlEscape($_item->getName()) ?></a></h3>
      <?php echo $this->getPriceHtml($_item, true) ?></div>
      </div></li>
      <?php endforeach ?></ol>
      </div>
      </div>
      <?php endif ?>     
       
    • Enable the block
      Add the following line in 
      app/design/frontend/default/default/layout/catalog.xml in the <catalog_product_view> block, inside <reference name=“right“> or <reference name=“left“>, depending on the sidebar position: 
      <block type="catalog/product_list_more" name="catalog.product.more" after="-" template="catalog/product/list/more.phtml"/>
       
    • Refresh your cache

    More products after product info

    Add the following code in the end of app/design/frontend/default/default/template/catalog/product/view.phtml

    <?
    if ($_product) {
    $categories = $_product->getCategoryCollection()
    ->setPage(1, 1)
    ->setOrder("level")
    ->load();
    if ($categories->count())
    {
    $selective = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToSelect('small_image');
    foreach($categories as $_category)
    $selective->addCategoryFilter($_category);
    Mage::getResourceSingleton('checkout/cart')->addExcludeProductFilter($selective, Mage::getSingleton('checkout/session')->getQuoteId());
    Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($selective);
    $this->_addProductAttributesAndPrices($selective);
    $selective->getSelect()->order('rand()');
    $selective->getSelect()->limit(6);
    $products = $selective->load();
    ?>
    <div class="block-title" style="margin-bottom: 20px;">
    <h2><?= __('See More') ?></h2>
    </div>
    <?php $_collectionSize = count($products); ?>
    <div class="category-products">
    <table class="products-grid" id="products-grid-table">
    <?php $i=0; foreach ($products as $productModel): ?>
    <?
    $_product = Mage::getModel('catalog/product')->load($productModel->getId());
    ?>
    <?php if ($i++%3==0): ?>
    <tr>
    <?php endif ?>
    <td>
    <h3><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>">
    <span class="product-image">
    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(180, 180); ?>" width="180" height="180" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
    </span>
    <span class="product-name"><?php echo $this->htmlEscape($_product->getName())?></span>
    </a></h3>
    <?php if($_product->getRatingSummary()): ?>
    <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
    <?php endif; ?>
    <?php echo $this->getPriceHtml($_product, true) ?>
    <ul class="add-to-links">
    <?php if ($this->helper('wishlist')->isAllow()) : ?>
    <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" rel="nofollow"><?php echo $this->__('Add to Wishlist') ?></a></li>
    <?php endif; ?>
    </ul>
    </td>
    <?php if ($i%3==0 && $i!=$_collectionSize): ?>
    </tr>
    <?php endif ?>
    <?php endforeach ?>
    <?php for($i;$i%3!=0;$i++): ?>
    <td class="empty"> </td>
    <?php endfor ?>
    <?php if ($i%3==0): ?>
    </tr>
    <?php endif ?>
    </table>
    </div>
    <?
    }
    }
    ?>

    And again refresh your cache…
    Unfortunately in the second way you must style the view, because this is the view of my store. But what can you do? Just copy the view from your list.phtml file.

    I hope this helped you!

     
c
нова публикация
j
следваща публикация/коментар
k
предишна публикация/коментар
r
отговор
e
редактиране
o
показване/скриване на коментари
t
отиване най-отгоре на страницата
l
go to login
h
show/hide help
esc
отказ