Мобильная тема для Template CMS c jQuery Mobile


В этой статье расскажу, как сделать мобильную тему для Template CMS
c jQuery Mobile :)

HAGE - HTML5 Awilum Game Engine

Изучая возможности HTML5 начал писать вот такой игровой движок - HAGE

Скриншот: арканоид на HAGE


Template CMS 2.0.4 - fix - 3c55dc425d50


Была найдена бага в плагине Pages из-за которой в заголовке ответа была ошибка 404 во всех компонентных плагинах и самой админке.

Скачать фикс: template-cms-2-0-4-fix-3c55dc425d50.zip

Обновить: plugins/box/pages/PagesPlugin.php

jQuery Mobile 1.0



Вышел в свет jQuery Mobile 1.0 на базе jQuery 1.6.4
С выходом jQuery Mobile 1.0 был представлен новый инструмент ThemeRoller for Mobile для визуального оформления мобильного сайта/приложения без каких либо знаний CSS.
Посмотреть его можно тут: http://jquerymobile.com/themeroller/

Скачать фреймворк и ознакомится с ним можно на офф.сайте: http://jquerymobile.com/

Hello World плагин для Template CMS

В этой статье расскажу как написать простой плагин Hello World для Template CMS.
Плагин будет выводить в начале контента страницы надпись Hello World.
Цель этой статьи показать насколько просто разрабатывать плагины для Template CMS.

И так создаем папку helloworld в папке plugins

В папке helloworld создаем главный файлик плагина HelloworldPlugin.php
Именно его будет искать система и подключать.

Первое что надо сделать в нашем HelloworldPlugin.php - это зарегистрировать плагин в системе. Делается это с помощью функции registerPlugin()

registerPlugin(getPluginId(__FILE__),
               getPluginFilename(__FILE__),
               'Hello World',
               '1.0.0',               
               'Helloworld plugin',
               'Awilum',            
               'http://awilum.webdevart.ru/');

При регистрации плагина мы указали id плагина в системе этой функцией getPluginId(__FILE__) и название файла плагина функцией getPluginFilename(__FILE__)
Далее пишем: название плагина, версия, описание, автор и url автора.

Регистрацию в системе плагин пройдет :)

Теперь попробуем реализовать: Плагин будет выводить в начале контента страницы надпись Hello World.

Сделаем это так: к хуку theme_pre_content, который находится в начале контента каждого шаблона прицепим нашу функцию, которая выведет надпись Hello World.

С полным списком хуков системы и плагинов из коробки/box можно ознакомиться в офф.документации: http://template-cms.ru/docs/develope-plugins-hooks-list

Прицепляем функцию hello_world к хуку theme_pre_content
addHook('theme_pre_content','hello_world');

Ну и сама функция hello_world
function hello_world() {
    echo 'Hello World';
}

Все наш плагин готов :)

Осталось сделать инсталяционый файлик HelloworldPlugin.xml который должен быть размещен в папке install данного плагина.

Создаем папку install и в ней файлик HelloworldPlugin.xml
В нем пишем информацию о плагине

<?xml version="1.0" encoding="UTF-8"?>
<root>
<plugin_location>
plugins/helloworld/HelloworldPlugin.php
</plugin_location> <plugin_frontend>yes</plugin_frontend> <plugin_backend>yes</plugin_backend> <plugin_status>active</plugin_status> <plugin_priority>12</plugin_priority> <plugin_name>Hello World</plugin_name> <plugin_description>Helloworld plugin</plugin_description> <plugin_version>1.0.0</plugin_version> <plugin_author>Awilum</plugin_author> <plugin_author_uri>
http://awilum.webdevart.ru/
</plugin_author_uri> </root>


Подробнее о HelloworldPlugin.xml

Путь к плагину
<plugin_location>
plugins/helloworld/HelloworldPlugin.php
</plugin_location>

Где включать этот плагин: фронтенд, бекенд
<plugin_frontend>yes</plugin_frontend>
<plugin_backend>yes</plugin_backend>

Состояние плагина active/off
<plugin_status>active</plugin_status>

Приоритет плагина перед остальными плагинами в системе.
Важно: цифра приоритета ваших плагинов должна начинаться с 11 и выше. Приоритет до 11 для плагинов из коробки/box.
<plugin_priority>12</plugin_priority>

Плагин готов к установке :)

Заходим в админку: плагины -> установить -> кликаем кнопку "установить" возле нашего плагина.

Итого:

Плагин Hello World


/helloworld/HelloworldPlugin.php
<?php

   registerPlugin(getPluginId(__FILE__),
                   getPluginFilename(__FILE__),
                   'Hello World',
                   '1.0.0',               
                   'Helloworld plugin',
                   'Awilum',            
                   'http://awilum.webdevart.ru/');


    addHook('theme_pre_content','hello_world');


    function hello_world() {
       echo 'Hello World';
    }

/helloworld/install/HelloworldPlugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<plugin_location>
plugins/helloworld/HelloworldPlugin.php
</plugin_location> <plugin_frontend>yes</plugin_frontend> <plugin_backend>yes</plugin_backend> <plugin_status>active</plugin_status> <plugin_priority>12</plugin_priority> <plugin_name>Hello World</plugin_name> <plugin_description>Helloworld plugin</plugin_description> <plugin_version>1.0.0</plugin_version> <plugin_author>Awilum</plugin_author> <plugin_author_uri>
http://awilum.webdevart.ru/
</plugin_author_uri> </root>

Подключаем Popcorn к CodeIgniter

1. Копируем папку /popcorn/ в /application/libraries/
2. Создаем в папке /application/libraries/ файл Templates.php
<?php

require_once('popcorn/popcorn.class.php');

class Templates extends Popcorn {

  function __construct() { 
    popcorn::configure('popcorn_tpl_ext','php');
    popcorn::configure('popcorn_tpl_dir','application/views/');
    popcorn::configure('popcorn_tpl_c_dir','templates_c/');
  }

}
?>


3. В контроллере загружаем библиотеку.
$this->load->library('templates');

4. Используем в шаблонах :)
$this->templates->assign('msg','Hello CI !');
$this->templates->draw('welcome_message');

Minify - сжимает html и css

Minify - это небольшой класс, который позволяет сжимать html и css.
Класс minify.class.php написан на основе кода minifier-а, который используется в проекте Template CMS.

Пример работы с Minify далее.

Подключаем класс
include 'minify/minify.class.php';

Загружаем html файл и сжимаем его
$html = file_get_contents('pages/home.html'); 
echo minify::html($html);

Загружаем css файл и сжимаем его
$css = file_get_contents('pages/styles.css'); 
echo minify::css($css);


Скачать: Minify.zip

KCache - система кешированния для PHP

KCache - простая система кеширования для PHP с поддержкой пространств имён.
Использовать ее в своих проектах легко и просто :)

Пример простого приложения с использованием KCache:

<?php

    // include KCache
    include 'kcache/kcache.class.php';

    // Initialize a TCache object
    $cache = new KCache();

    // Change default configuration
    KCache::configure('cache_dir','cache/');

    // Get a key "profile" in namespace "profiles"
    $profile = $cache->get('profiles','profile');

    // If key "profile" dosnt exists than create it
    if(!$profile) {
        $profile = array('login'=>'Awilum',
                         'email'=>'awilum@msn.com');
        $cache->put('profiles','profile',$profile);
    }

    // Dump profile
    var_dump($profile);

?>

Скачать: KCache.zip

Социальные кнопки для Template CMS

Небольшой пост о том как добавить кастомные кнопки шаринга в соц. сетях. для Template CMS

Facebook Share button


<a target="_blank" href="http://www.facebook.com/sharer.php?u=<?php echo curUrl();?>&t=<?php getTitle(); ?>"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSqZFe9Z_YZZXeYGMRayhdWtCTy9mAbVnU5CeWy8ffSXVOQh06_mbnscVpudu0Zv8hEf3Wb4TvBrr0fMB1X24FeXoyK0EWBqxD3pdnQN1KKR_6KHU8L2hlz_TgmvA8XAehn4XcZz5A1R8/s1600/facebook-64x64.png" /></a>


Twitter Share button


<a target="_blank" href="http://twitter.com/share?text=Currently reading <?php getTitle(); ?>&url=<?php echo curUrl(); ?>" title="Click to share this post on Twitter">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRX7qwHyWTh4Ej5DVuxnDp8phUsM_QdRC5IxzPhOi-pvkM_3170011DORdilc_s62ViuYqi59a-_S5JHTGSa0VBPZ_no2th3IfOOqmA13DB6X_AWjNka8YqurbraAGqJ1p1OMMcKosI3s/s400/twitter-64x64.png" alt="twitter share button" title="twitter share button" />
</a>


LinkedIn Share button


<a href="http://www.linkedin.com/shareArticle?mini=true&url=<?php echo curUrl(); ?>&title=<?php getTitle(); ?>&summary=&source=<?php getSiteName(); ?>" target="_new">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1vzdwjxBOzeUe_uPscuhex0qiqSuo6C_T5SbiT5b9tM02jayEsG8VFS8NTlKvODlq7grWqvhzTRRGasJahttrjO__d6xdR_GXSh0C0Zoy2p4wCiKwVTWQgxX567rvm5tMvG3i_2jE2UQ/s400/linkedin-64x64.png" alt="linkedin share button" title="linkedin share button" />
</a>

TCache - система кешированния для PHP

TCache - простая система кеширования для PHP.
Использовать ее в своих проектах достаточно легко:)

Пример простого приложения с использованием TCache:

<?php
   
    // include TCache
    include 'tcache/tcache.class.php';
 

    // Initialize a TCache object
    $cache = new TCache();    


    // Change default configuration
    TCache::configure('cache_dir','cache/');


    // Get cache file
    if(!$cache->get('home')){
        
        // Something to cache...
        include 'pages/home.php';

        // Save cache file 
        $cache->save();
    }
  
?>

Скачать: TCache.zip

Popcorn - быстрый и маленький шаблонизатор!


Доброго времени суток %читатели моего блога% разрешите вам представить еще одну свою разработку — это POPCORN TEMPLATE ENGINE.

Popcorn — это быстрый, маленький компилирующий обработчик шаблонов для PHP.

Template CMS - маленькая и быстрая CMS


Доброго времени суток %читатели моего блога% разрешите вам представить свою разработку, которую делаю в свободное от работы время — это маленькая, быстрая и расширяемая система управления содержимым: Template CMS. Основное предназначение моей CMS: сайты визитки, сателлиты, домашние странички.

Ок. рестартую свой блог )

<?php echo 'Restart'; ?>