суббота, 29 января 2011 г.
Расширение NEWSLIST_EXT или делаем четные и нечетные (odd/even) строки в списке новостей
Ни как не могу понять почему такую простую вещь разработчики не могут включить в ядро экстеншена.
Народ начинает изголяться, причем каждый по-своему. Один пишет экст (newslist_ext, например, который с tt_news 3.0.1 не работает), другой добавляет стили с помощью javascript (в надежде, что js включен у всех), третий в CSS применяет псевдо-классы first-child и last-child (чтобы выделить хотя бы первый и последний элемент списка новостей).
Для себя данную проблему решил следующим образом.
Сначала я установил расширение newslist_ext и посмотрел, что оно делает, а точнее, что оно должно делать. А делает оно элементарную вещь - переопределяет функцию getListContent класса tx_ttnews, т.е. к родному коду функции добавлено еще несколько дополнительных строк. Понятное дело, что за таким экстом, который обновляется каждые пол-года, автору было не угнаться и его творение (newslist_ext) перестало функционировать с выходом tt_news v.3. Похоже, что функция getListContent претерпела значительные изменения.
Вот кусочек php-кода (и моих 5 копеек), который родил автор newslist_ext, для того, чтобы наша жизнь стала краше и мы могли выделять в списке новостей не только первую и последнюю позиции, но и четные и нечетные строки:
// add code : add marker
$counter = $cc+1;
$markerArray['###NEWS_LIST1###'] = '';
$markerArray['###NEWS_LIST2###'] = '';
$markerArray['###NEWS_LIST3###'] = '';
$markerArray['###NEWS_LIST1###'] = $counter;
if ($counter==1) $markerArray['###NEWS_LIST2###'] = 'first';
if ($counter == $resCount) $markerArray['###NEWS_LIST2###'] = 'last';
if (($counter % 2) != 1) {
$markerArray['###NEWS_LIST3###'] = 'even';
} else {
$markerArray['###NEWS_LIST3###'] = 'odd';
}
// add code : end
Теперь в файле typo3conf\ext\tt_news\pi1\class.tx_ttnews.php находим актуальную для нашей версии tt_news функцию getListContent. Выделяем ее и копируем в буфер обмена. Переходим к файлу class.ux_tx_ttnews.php в директории typo3conf\ext\newslist_ext. В этом файле определена одна единственная функция - getListContent, которую мы вытираем и заменяем содержимым нашего клипборда.
Осталось дело за малым - добавить дополнительные строки php-кода, которые вы видите выше. Вставить их нужно за следующей строкой:
$layoutNum = ($itempartsCount == 0 ? 0 : ($cc % $itempartsCount));
Сохраняем файл и получаем работоспособное расширение newslist_ext.
Не забывайте добавить маркеры ###NEWS_LIST3### в те места, где вы собираетесь увидеть дополнительные CSS-стили - odd и even
Скачать обновленный NEWSLIST_EXT можно тут T3X_newslist_ext-0_0_1-z-201101291026.t3x
Народ начинает изголяться, причем каждый по-своему. Один пишет экст (newslist_ext, например, который с tt_news 3.0.1 не работает), другой добавляет стили с помощью javascript (в надежде, что js включен у всех), третий в CSS применяет псевдо-классы first-child и last-child (чтобы выделить хотя бы первый и последний элемент списка новостей).
Для себя данную проблему решил следующим образом.
Сначала я установил расширение newslist_ext и посмотрел, что оно делает, а точнее, что оно должно делать. А делает оно элементарную вещь - переопределяет функцию getListContent класса tx_ttnews, т.е. к родному коду функции добавлено еще несколько дополнительных строк. Понятное дело, что за таким экстом, который обновляется каждые пол-года, автору было не угнаться и его творение (newslist_ext) перестало функционировать с выходом tt_news v.3. Похоже, что функция getListContent претерпела значительные изменения.
Вот кусочек php-кода (и моих 5 копеек), который родил автор newslist_ext, для того, чтобы наша жизнь стала краше и мы могли выделять в списке новостей не только первую и последнюю позиции, но и четные и нечетные строки:
// add code : add marker
$counter = $cc+1;
$markerArray['###NEWS_LIST1###'] = '';
$markerArray['###NEWS_LIST2###'] = '';
$markerArray['###NEWS_LIST3###'] = '';
$markerArray['###NEWS_LIST1###'] = $counter;
if ($counter==1) $markerArray['###NEWS_LIST2###'] = 'first';
if ($counter == $resCount) $markerArray['###NEWS_LIST2###'] = 'last';
if (($counter % 2) != 1) {
$markerArray['###NEWS_LIST3###'] = 'even';
} else {
$markerArray['###NEWS_LIST3###'] = 'odd';
}
// add code : end
Теперь в файле typo3conf\ext\tt_news\pi1\class.tx_ttnews.php находим актуальную для нашей версии tt_news функцию getListContent. Выделяем ее и копируем в буфер обмена. Переходим к файлу class.ux_tx_ttnews.php в директории typo3conf\ext\newslist_ext. В этом файле определена одна единственная функция - getListContent, которую мы вытираем и заменяем содержимым нашего клипборда.
Осталось дело за малым - добавить дополнительные строки php-кода, которые вы видите выше. Вставить их нужно за следующей строкой:
$layoutNum = ($itempartsCount == 0 ? 0 : ($cc % $itempartsCount));
Сохраняем файл и получаем работоспособное расширение newslist_ext.
Не забывайте добавить маркеры ###NEWS_LIST3### в те места, где вы собираетесь увидеть дополнительные CSS-стили - odd и even
Скачать обновленный NEWSLIST_EXT можно тут T3X_newslist_ext-0_0_1-z-201101291026.t3x
среда, 26 января 2011 г.
TYPO3 хостинг. Обсудим провайдеров?
Предлагаю сообществу Typo3 обсудить, а возможно и составить белый и черный список хостинг-провайдеров. Ведь все мы рано или поздно задаем себе вопрос - где разместить свой сайт. Я последнее время смотрю только в сторону VDS-серверов. Тут ты и царь и бог! Но не всегда!
Взял я на свою беду VDS от одного известной российской компании - 1GB.RU, пакет назывался VZ-Профи. Этот пакет сулил мне и Linux x64 (AMD64), но почему-то с 32-битными приложениями, и виртуальной памяти - 2Гб, и дискового пространства 20 Гб, а максимальной мощности процессора аж - 2400 мГц (максимум). Короче, думал, что буду как сыр в масле. Да не тут-то было...
Решил свой новый сайт (http://www.gyrkalo.dp.ua/ пока в стадии разработки) реализовать на Typo3 v.4.4.6. Его производительность можете оценить сами, но до конца марта, пока этот сайт будет находится у 1gb.ru.
Все мои познания Linux привели к выводу, что причиной тормоза является дисковая подсистема. Все мои просьбы помочь разобраться с данной проблемой ни к чему не привели - одни отписки в стиле - вы сами контролируете VDS вот и ищите, что не так. В общем я принял твердое решение сменить хостинг-провайдера и найти нового. Думаю, что это будет какой-то Европейский хостинг, например в Германии. Результат своих поисков непременно опишу.
Если у кого есть, что сказать в защиту или против 1gb.ru, пишите. Но думаю, что они того не стоят, а лучше было бы услышать хорошие советы и положительные рекомендации о каких-либо компаниях.
Пишите свои истории. Это интересно!
понедельник, 24 января 2011 г.
Руссификация (локализация) BE TYPO3
Несмотря на то, что данная "проблема" - не нова, и поисковики выдают источники решающие данную проблему, я решил все-таки разместить несколько скриншотов, которые должны снимать с повестки дня новичков руссификацию админки (бэкенда) Typo3.
1. Здесь выбирается язык для локализации админки:

Как видим, по-умолчанию всего один язык - английский. Будем добавлять русский.
2. Добавляем русский язык к системе с помощью ExtManager (менеджера расширений):

после нажатия на кнопку Save selection появляются дополнительные кнопки:

Начинается процесс скачивания дополнительных файлов из репозитория (системного хранилища) Typo3:

При этом, как видим, обновляется не только сама система, но и многие расширения:

3. В списке доступных языков появилась новая строка, выбираем её и сохраняем параметры:

Теперь Админка будет иметь тот язык, который пользователю ближе по духу. Typo3 позволяет администратору сайта иметь одну локализацию, а рядовому пользователю (редактору) - другую.
Очень советую базу данных MySql создавать с опцией DEFAULT CHARACTER SET utf8, а в конфигурационном файле localconf.php устанавливать следующие параметры:
$TYPO3_CONF_VARS['BE']['forceCharset']='utf-8';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8'.chr(10).'SET SESSION character_set_server=utf8';
среда, 5 января 2011 г.
Странности при сохранении в t3editor
При визуальной настройке плагина новостей, на последней закладке - "Другие настройки", имеется область ввода - "Typoscript для этого элемента содержимого" внутри которого можно вписывать дополнительные настройки (см. картинку).

Так вот, в этом поле, после сохранения, стали пропадать символы: "<>&".
Такая же фигня обнаружилась и внутри t3editor в расширении - TypoScript code (id -typoscript_code).
В данной ситуации всё лечится всего одной строкой в localconf.php:
$TYPO3_CONF_VARS['BE']['flexformForceCDATA'] = '1';
Этот параметр можно установить и в Install Tools. Именно тут, после долгого изучения всех параметров TYPO3, я и нашел данное решение.
А чуть позже, тут, нашел и это:

Выходит, что это какие-то косяки с libxml (1.6.32 и выше) на сервере! Дай бог им всем здоровья ;), а у меня пропало пол-дня.

Так вот, в этом поле, после сохранения, стали пропадать символы: "<>&".
Такая же фигня обнаружилась и внутри t3editor в расширении - TypoScript code (id -typoscript_code).
В данной ситуации всё лечится всего одной строкой в localconf.php:
$TYPO3_CONF_VARS['BE']['flexformForceCDATA'] = '1';
Этот параметр можно установить и в Install Tools. Именно тут, после долгого изучения всех параметров TYPO3, я и нашел данное решение.
А чуть позже, тут, нашел и это:

Выходит, что это какие-то косяки с libxml (1.6.32 и выше) на сервере! Дай бог им всем здоровья ;), а у меня пропало пол-дня.
Подписаться на:
Сообщения (Atom)
О себе

- Вадим Гиркало
- Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Мой сайт
Позвонить мне в Skype
TOP - 3
-
Как я уже писал в одной своей заметке ( SEO и общие рекомендации ), для сайта очень важно, чтобы при обращении к заведомо несуществующей ст...
-
Дорабатывая очередной свой сайт столкнулся с такой проблемкой. В шапке сайта есть две флэш вставки - банер, который вставлен через конструкц...
-
Несмотря на то, что материала по данной тематике вроде бы и достаточно, но весь он носит кусочно-латочно-разрозненный характер, что мешает б...