четверг, 23 июля 2015 г.
Разворачиваем TYPO3 на Windows 8
20:48 |
Автор:
Вадим Гиркало |
Изменить сообщение
Ох, как давно я не писал сюда. Уже некоторые даже звонят и спрашивают - занимаюсь ли я TYPO3 ещё? На всякий случай всем хочу сказать, что TYPO3 - это любовь на всю жизнь! В блог я могу и не писать по разным причинам, но TYPO3 занимался, занимаюсь и заниматься буду.
Теперь по теме. По различным причинам, но назрел у меня вопрос развертывания TYPO3 на моей локальном компьютере, а конкретнее - на Windows 8. В принципе ничего военного, но, как обычно, есть свои нюансы.
Почему-то, для себя я выбрал первый вариант - Bitnami и потом не пожалел. Очень обрадовался когда увидел там почти свеженькие сборки 7.3.0 и 6.2.13
Итак, после установки в директорию C:\Bitnami\typo3\ увидим такую структуру:
Самое интересное происходит в папке apps. Там есть еще 2 папки - phpmyadmin и typo3. Вот тут-то я и понял, что каждый сайт в данном инсталлере играет роль приложения (application). Чтобы каждый сайт имел приятный url, я полез C:\Bitnami\typo3\apache2\conf\bitnami\bitnami-apps-vhosts.conf и добавил следующие строки:
а в файлах httpd-vhosts.conf описал виртуальные хосты, например для phpmyadmin:
Теперь по теме. По различным причинам, но назрел у меня вопрос развертывания TYPO3 на моей локальном компьютере, а конкретнее - на Windows 8. В принципе ничего военного, но, как обычно, есть свои нюансы.
Выбираем инсталлер (Installer)
Идем на http://typo3.org/download/ и видим такой список:
Почему-то, для себя я выбрал первый вариант - Bitnami и потом не пожалел. Очень обрадовался когда увидел там почти свеженькие сборки 7.3.0 и 6.2.13
Установка и настройка инсталлера
Процесс установки не вызвал никаких проблем. По ходу дела я выбрал также установку phpmyadmin, что позже стало даже полезным.Итак, после установки в директорию C:\Bitnami\typo3\ увидим такую структуру:
23.07.2015 10:31 <DIR> apache2
23.07.2015 14:56 <DIR> apps
23.07.2015 10:27 <DIR> common
23.07.2015 18:08 <DIR> imagemagick
23.07.2015 10:27 <DIR> img
23.07.2015 10:30 <DIR> licenses
23.07.2015 10:26 <DIR> mysql
23.07.2015 10:31 <DIR> php
23.07.2015 10:30 <DIR> scripts
23.07.2015 10:27 <DIR> sqlite
26.06.2015 12:58 manager-windows.exe <= это запускалка мускула и апача!
Самое интересное происходит в папке apps. Там есть еще 2 папки - phpmyadmin и typo3. Вот тут-то я и понял, что каждый сайт в данном инсталлере играет роль приложения (application). Чтобы каждый сайт имел приятный url, я полез C:\Bitnami\typo3\apache2\conf\bitnami\bitnami-apps-vhosts.conf и добавил следующие строки:
Include "C:/Bitnami/typo3/apps/typo3/conf/httpd-vhosts.conf"
Include "C:/Bitnami/typo3/apps/phpmyadmin/conf/httpd-vhosts.conf"
а в файлах httpd-vhosts.conf описал виртуальные хосты, например для phpmyadmin:
<VirtualHost *:80>
ServerName phpmyadmin.example.com
ServerAlias www.phpmyadmin.example.com
DocumentRoot "C:\Bitnami\typo3/apps/phpmyadmin/htdocs"
Include "C:\Bitnami\typo3/apps/phpmyadmin/conf/httpd-app.conf"
</VirtualHost>
и для TYPO3:
<VirtualHost *:80>
ServerName typo3_7.com
ServerAlias www.typo3_7.com
DocumentRoot "C:\Bitnami\typo3/apps/typo3/htdocs"
Include "C:\Bitnami\typo3/apps/typo3/conf/httpd-app.conf"
</VirtualHost>
Думаю, что само-собой понятно, что домены phpmyadmin.example.com и typo3_7.com я добавил в hosts:
127.0.0.1 phpmyadmin.example.com
127.0.0.1 typo3_7.com
После перезапуска apache мои локальные сайты заработали под именами phpmyadmin.example.com и typo3_7.com.
После этого я сразу задался вопросом, а что если мне нужно будет поднять еще одну TYPO3, но только уже другой версии, например 6.3.14.
Я сделал всё по аналогии. В директории app создал еще одну папку - typo3test, залил в неё содержимое папки apps/typo3, удалил всё содержимое htdocs и typo3_src, исправил все пути в конфигурационных файлах директории typo3test/conf и проделал установку TYPO3 с нуля по всем правилам. Т.е. в typo3_src распаковал ядро от 6.3.14, а в htdocs сделал симлинки на typo3_src. Windows 8 позволяет делать симлинки специальной командой - mklink. Вот эти команды:
mklink /D typo3_src "C:/Bitnami/typo3/apps/typo3test/typo3_src"
mklink /D typo3 "C:/Bitnami/typo3/apps/typo3test/typo3_src/typo3"
mklink index.php "C:/Bitnami/typo3/apps/typo3test/typo3_src/index.php"
Про создание БД я не пишу, там всё понятно. Паролем root-а от mysql, будет тот пароль который вы вводили на этапе установки Bitnami.
В целом установка проходит гладко. Но...
Настройка ImageMagick
Когда я пошел в InstallTool/Test setup, чтобы проверить работу ImageMagick, который исправно работает для директории apps/typo3, я с удивлением обнаружил что тут, в папке apps/typo3test он уже не работает, хотя пути к IM я прописал точно такие же как и для первого экземпляра TYPO3. И тут началось...
Для начала я поставил IM как отдельное приложение. Скачал ImageMagick-6.9.1-9-Q16-x86-dll.exe с родного сайта и установил его. Это проблему не решило, хотя convert.exe запускался из командной строки на раз.
После нескольких часов изысканий я обнаружил интересный факт. Когда выполняешь команду: convert.exe -verbose pic-1.jpg pic-1.png от лица администратора компьютера - утилита работает, а если от обычного пользователя, то выдает ошибку: convert.exe: no decode delegate for this image format...
Но, что интересно, так было с convert.exe от Bitnami (C:\Bitnami\typo3\imagemagick\convert.exe), но не с convert.exe от IM, который в любой ситуации отрабатывал без проблем.
Поскольку я не являюсь знаком Windows, то я не стал искать причину такого странного поведения, а поступил очень просто - прописал в TYPO3 пути к другой версии IM. А именно, в файле typo3conf\LocalConfiguration.php сделал такие настройки:
Для начала я поставил IM как отдельное приложение. Скачал ImageMagick-6.9.1-9-Q16-x86-dll.exe с родного сайта и установил его. Это проблему не решило, хотя convert.exe запускался из командной строки на раз.
После нескольких часов изысканий я обнаружил интересный факт. Когда выполняешь команду: convert.exe -verbose pic-1.jpg pic-1.png от лица администратора компьютера - утилита работает, а если от обычного пользователя, то выдает ошибку: convert.exe: no decode delegate for this image format...
Но, что интересно, так было с convert.exe от Bitnami (C:\Bitnami\typo3\imagemagick\convert.exe), но не с convert.exe от IM, который в любой ситуации отрабатывал без проблем.
Поскольку я не являюсь знаком Windows, то я не стал искать причину такого странного поведения, а поступил очень просто - прописал в TYPO3 пути к другой версии IM. А именно, в файле typo3conf\LocalConfiguration.php сделал такие настройки:
'GFX' => array(
'colorspace' => 'RGB',
'im' => 1,
'im_mask_temp_ext_gif' => 1,
//'im_path' => 'C:/Bitnami/typo3/imagemagick/',
//'im_path_lzw' => 'C:/Bitnami/typo3/imagemagick/',
'im_path' => 'C:/Program Files (x86)/ImageMagick-6.9.1-Q16/',
'im_path_lzw' => 'C:/Program Files (x86)/ImageMagick-6.9.1-Q16/',
'im_v5effects' => 1,
'im_version_5' => 'im6',
'image_processing' => 1,
'jpg_quality' => '80',
),
И, о чудо! Всё заработало! Теперь я могу иметь сколько угодно локальных TYPO3! Даже у себя на даче, где пока нет интернета, я смогу иногда поработать.
четверг, 17 октября 2013 г.
Если картинки на сайте темнее оригинала
23:33 |
Автор:
Вадим Гиркало |
Изменить сообщение
Впервые столкнулся с необычным явлением - картинки на TYPO3-сайте выглядят несколько темнее, чем те оригиналы, которые я загружал. Поспешу сказать, что сама TYPO3 тут абсолютно ни при чём. Она "виновата" лишь в том, что для всех манипуляций с картинками использует графические библиотеки IM (ImageMagick) или GM (GraphicsMagick). В моём случае это был ImageMagick. Вначале я решил исследовать на эту тему все настройки TYPO3 в разделе Install/All Configuration. Там меня заинтересовал параметр - colorspace, значение которого было - RGB, а коментарий к параметру:
- String: Specifiy the colorspace to use. Some ImageMagick versions (like 6.7.0 and above) use the sRGB colorspace, so all images are darker then the original.
- Possible Values: CMY, CMYK, Grey, HCL, HSB, HSL, HWB, Lab, LCH, LMS, Log, Luv, OHTA, Rec601Luma, Rec601YCbCr, Rec709Luma, Rec709YCbCr, RGB, sRGB, Transparent, XYZ, YCbCr, YCC, YIQ, YCbCr, YUV
До конца не поверив, что решение так быстро найдено, я почитал мануал по IM и наткнулся на такой текст:
...In the above example, the result is darker than the original, because the channels were separate as linear gray and subsequently combined as linear color. In order to return the channels back to sRGB, one must change the colorspace from RGB back to sRGB after the -combine
step.
Т.е. все пути вели к значению sRGB. После того, как я поменял RGB на sRGB в файле конфигурации (typo3conf/LocalConfiguration.php) появилась такая строка:
'GFX' => array(И о чудо! Картинки стали светлее!
'colorspace' => 'sRGB', 'gdlib_png' => 1,
'im_combine_filename' => 'composite',
'jpg_quality' => '80',
),
p.s. После смены значения параметра colorspace, TYPO3 может какое-то время заниматься переконвертацией всех картинок в соответствии с новыми графическими настройками, поэтому сайт может вести себя не совсем адекватно. В моем случае это был абсолютно белый экран, который пропал минут через 5.
вторник, 1 октября 2013 г.
Константы TYPO3 в шаблоне FLUID
23:09 |
Автор:
Вадим Гиркало |
Изменить сообщение
При формировании меню с помощью FLUID, а точнее вьюхелпером - page.menu из пакета VHS, столкнулся с задачей передачи значения константы TYPO3 в качестве одного из параметров вьюхелпера.
Вот как выглядел viewhelper изначально:
<v:page.menu showHidden="1" doktypes="3" classCurrent="" classActive="" classFirst="" classLast="last" pageUid="26">
<ul class="socicons-container">
<f:for each="{menu}" as="menuLink" iteration="menuIterator">
<li {f:if(condition: menuIterator.isLast, then: 'class="last"')}>
<a href="{menuLink.link}" title="{menuLink.title}" target="{menuLink.target}">
<img src="fileadmin/tmpl/florian/Resources/Public/images/icons/{menuLink.subtitle}" width="30" height="30" alt="{menuLink.title}" />
</a>
</li>
</f:for>
</ul>
</v:page.menu>
тут меню формируется на основании страниц, которые содержатся в системной папке с id=26.
Понятное дело, что тупое указание id это не очень хорошо как для пользователя сайта, так и для его разработчика, который планирует использовать наработку с последующих проектах. Поэтому я решил заменить число 26 на тайповскую константу, которую всегда можно будет изменить в разделе констант шаблона. Причем сделать это будет под силу кому угодно, даже не очень эдвансед юзеру.
Итак, создаем TYPO3-константу:
socialIcons = 26
Как же ее значение использовать вьюхелпером? Для этого нужен промежуточный этап. Сначала значение данной константы помещаем в объект lib:
lib.constants.socialIcons.id = {$socialIcons}
А вот значение параметра lib внутри вьюхелпера можно получить с помощью другого вьюхелпера - var.typoscript. В итоге получаем следующую конструкцию:
<v:page.menu showHidden="1" doktypes="3" classCurrent="" classActive="" classFirst="" classLast="last" pageUid="{v:var.typoscript(path: 'lib.constants.socialIcons.id')}">
<ul class="socicons-container">
<f:for each="{menu}" as="menuLink" iteration="menuIterator">
<li {f:if(condition: menuIterator.isLast, then: 'class="last"')}>
<a href="{menuLink.link}" title="{menuLink.title}" target="{menuLink.target}">
<img src="fileadmin/tmpl/florian/Resources/Public/images/icons/{menuLink.subtitle}" width="30" height="30" alt="{menuLink.title}" />
</a>
</li>
</f:for>
</ul>
</v:page.menu>
P.S. Т.к. в примере используется пакет VHS, то не забывайте подключать его с помощью - {namespace v=Tx_Vhs_ViewHelpers} в начале html-шаблона.
Подписаться на:
Сообщения (Atom)
О себе
- Вадим Гиркало
- Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Мой сайт
Позвонить мне в Skype
TOP - 3
-
Как я уже писал в одной своей заметке ( SEO и общие рекомендации ), для сайта очень важно, чтобы при обращении к заведомо несуществующей ст...
-
Дорабатывая очередной свой сайт столкнулся с такой проблемкой. В шапке сайта есть две флэш вставки - банер, который вставлен через конструкц...
-
Несмотря на то, что материала по данной тематике вроде бы и достаточно, но весь он носит кусочно-латочно-разрозненный характер, что мешает б...