Постраничный листер средствами TS без PHP и доп. расширений

Задача: Реализовать постраничное перелистование табличных данных, с навигационными кнопками «вперед», «назад», используя только средства typoscript

Реализация: Посредством контент элементов CONTENT, TEXT, LOAD_REGISTER, так же будут использованы функции stdWrap, if, select
(далее…)

Проектирование, Mind Maps в помощь.

Источник: http://habrahabr.ru/blogs/books/69120/

Страница как картинка

Задача: вывести рендомносгенеренную страницу как картинку, адрес картинки будет http://example.com/img-page/, в настройке шаблона обязательно указать очистку всего TS-кода (Очистить: Constants Setup)
(далее…)

Вывод содержимого определенного TV-поля (типа content)

includeLibs.something = path/to/file/class.getTVContent.php
lib.tvRightCol = RECORDS
lib.tvRightCol {
    source.cObject = USER
    source.cObject{
        userFunc = user_getTVContent->byCol
        #Конфигурация
        colName = col_right   #Название поля как в DS
        pid = 1               #uid целевой страницы
    }
    tables = tt_content
    conf.tt_content < tt_content
}


class.getTVContent.php

exec_SELECTquery(
            'tx_templavoila_flex',
            'pages',
            'uid='.$pageUid.$GLOBALS['TSFE']->sys_page->enableFields('pages'),
            '',
            'sorting',
            '1'
        );
 
        $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
        $tx_templavoila_flex = $row['tx_templavoila_flex'];
 
        $data = t3lib_div::xml2array($tx_templavoila_flex);
        $list = $data['data']['sDEF']['lDEF'][$colName]['vDEF'];
        return $list;
    }
}

Удобный CONTENT

в этом примере я покажу как удобней всего (по мне так) организовать CONTENT объект при этом отделив данные от вида.
(далее…)

Динамический getText

Порой нужно в объекте типа getText (см. TSref стр. 9) вставить динамические данные. Например: есть замечательный, скажем так «getText» (поправьте если есть другое обозначение) – DB:

DB: Value from database, syntax is [tablename] :
[uid] : [field]. Any record from a table in TCA can be
selected here. Only marked-deleted records does not
return a value here

С помощью него можно всегда произвести выборку конкретного поля. Но порой идентификатор записи является динамическим (например передается из значения поля, либо url-запросу), что тогда делать? На помощь приходит stdWrap c его помощью можно вставить данные в поле определяющее данные (сорри за тавтологию)
(далее…)

LOAD_REGISTER = переменная ? Пример выборки списка системных страниц.

includeLibs.myFunc = path/to/your/func.php
 
page.1 = LOAD_REGISTER
page.1{
  storage_pids.cObject = USER
  storage_pids.cObject{
    userFunc = user_func->getCurrentSysFolders
  }
}
 
page.5 = TEXT
page.5.data = register:storage_pids
 
page.10 = TEXT
page.10.value = <br /><br />
 
page.15 = TEXT
page.15.dataWrap = <b>{register:storage_pids}</b>

(далее…)

IE ‘Не удалось открыть узел’, правильный baseurl

Проблема:
при определенных условиях IE6 выдает ошибку «Ну удалось открыть узел [url]» Операция прервана.

Решение:

[browser = msie6]
config.headerComment (
This is to allow IE6 to see Flash
-->
<base  href="[url]"></base>
<!-- 
)
[else]
config.baseURL = [url]
[end]

Где [url] адрес вашего сайта.

Альтернативный вариант: решает проблему с прокси:

<base href="http://example.org/"><!--[if IE 6]></base><![endif]-->

Склоняем age для давности записи

Вот заморочился по поводу склонения age, может кому понадобится.
Если есть варианты оптимизации пишите ответом.
(далее…)

Отчет по разработке сайтов http://www.tis-journal.com, http://www.tite-journal.com

Очень не плохо получились сайты, учитывая что разработка шла в довольно сжатые сроки, сайты разработаны на основе CMS системы typo3, на сайте есть дополнительная языковая версия (английская), благодаря typo3 переводы можно делать на уровне блоков контента, не переведенные элементы автоматически скрываются. Реализована подписка на новости, причем пользователь автоматически (cron-расписание) получает записи новых новостей на свой почтовый ящик, опять же все уведомления приходят на том языке в зависимости от того на какой версии сайта (английская/русская) была произведена подписка. Так же на сайте действует внутренний индексируемый поиск (рис. 2 информация о проиндексированых узлах).

Установленные typo3 расширения:
1. realurl (чпу)
– realurlmanagement (управление кешем realurl)
2. tt_news (Система новостей)
3. templavoila (Удобный шаблонизатор)
– nh_tvdragndrop (AJAX перетаскивание блоков контента на странице)
4. direct_mail (Система рассылки)
– direct_mail_subscription (Форма регистрации в подписке, на самом деле пришлось переработать все шаблоны и перевести на русский язык)
5. tt_address (Система хранения списков адресов и их логической группировки)
6. tscobj (Вставка динамических объектов как элемент содержимого ~битрикс инфоблоки)
7. indexed_search (Индексный поиск по сайту)