Знакомясь с Joomla, на пути от новичка до профи, многие веб-мастера сталкиваются с вопросами, ответы на которые нужно искать в сети. На wedal.ru мне задают много вопросов. Некоторые из них повторяются достаточно часто. Такие вопросы я собрал в этой статье и написал по каждому комментарии и ответы. Советую не пропускать эту статью мимо, т.к. в ней описаны решения проблем, с которыми, рано или поздно, столкнется практически каждый web-мастер.
Содержание
Белый экран
Наверное самый частый вопрос, который мне задают, это «белый экран». При установке или настройки расширений, редактировании шаблона и многих других действиях на сайте при переходе по ссылке можно увидеть «белый экран». Т.е. браузер показывает белую страницу и ничего более.
Решение тут простое. Белый экран в большинстве случаев означает ошибку в php-коде одного из файлов. Вы могли где-то не закрыть скобку, не поставить точку с запятой, ошибиться буквой в операторе. Много чего. «Белый экран» служит для лучшей защищенности сайта. Если хакер попытается взломать сайт и увидит информацию об ошибке, это позволит ему быстрее достигнуть своей цели. По этой причине для работающего сайта в случае возникновения ошибки нормой считается показывать пустой экран. Но во время разработки такие ошибки нужно видеть, иначе как же их исправлять? Если вы работаете на локальном сервере, то отображение можно включить/выключить в файле php.ini. Находим в нем параметр «display_errors» и изменяем с «off» на «on». Если же сайт находится на хостинге и доступа к php.ini нет, то в файл .htaccess, который находится в корне Joomla, добавляем строчку:
1 |
php_value display_errors 1
|
htaccess.txt и .htaccess
Очень часто встает вопрос почему ссылка выглядит не так, как хотелось бы. Человек вроде бы и все СЕО-настройки включил в глобальной конфигурации Joomla, а все равно не то. Несмотря на то, что в этих настройках стоит восклицательный знак, многие забывают переименовать файл htaccess.txt в .htaccess. Что это за файл, и за что он отвечает? Вот цитата из Википедии:
«.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.»
О чем идет речь частично можно понять из описания предыдущей ошибки.
Важно помнить: если на сайте будут использоваться SEF-ссылки, то этот файл должен быть переименован. Windows XP, коим сегодня все еще пользуется много людей, отказывается переименовывать файл в .htaccess – говорит, мол, расширение файлу задай. Если вы столкнулись с такой проблемой, то воспользуйтесь любым файловым менеджером. Подойдет тот же Total Commander. Почитав подробнее про этот файл, вы можете узнать много интересных штук, которые можно применить к Joomla.
Максимальный размер загружаемого файла и максимальное время выполнения скрипта
Две настройки сервера, о которых многие не знают. Бывает так, что вы пытаетесь установить большое расширение, а Joomla выдает ошибку загрузки файла на сервер. Или так: загрузка идет, идет, идет, и… прерывается белым экраном или ошибкой.
Обе эти проблемы возникают из-за того, что на сервере заданы ограничения на максимальный размер загружаемого файла и максимальное время выполнения скрипта.
Чтобы решить проблему, нужно, по аналогии с вопросом про белый экран, переименовать htaccess.txt в .htaccess, а затем дополнить его следующими строчками:
1 2 3 4 5 |
php_value post_max_size 10M |
Но задавайте значения этих опций в меру, не более того, что требуется. Выставлять очень большие значения – не лучшая идея. Не думаю, что вы хотите, чтобы кто-то загрузил к вам на сервер сорокагигабайтные фильмы или процесс зависал при выполнении.
Поиск в файлах
В этот вопрос входит много подвопросов. Все они разные, но смысл одинаков: «В моем компоненте, модуле, плагине, шаблоне есть текст, который не перевелся после установки локализации. Где его можно найти и перевести?», или: «Я хочу изменить надпись на этой кнопке, лейбле, чекбоксе, и.т.д. Где она меняется?». Особенно много подобных вопросов поступает по VirtueMart. Люди часто хотят что-то где-то перевести по-своему, но не знают как это сделать. Помню, когда я только начал изучать все премудрости Virtuemart, то в поисках определенной надписи перерывал кучу языковых файлов. На это уходило много времени, хотя на самом деле все делается за пол минуты.
Все знают что такое поиск файлов, но почему-то, когда речь идет о поиске в файлах, многие впадают в ступор. Да, языковые файлы имеют расширение, отличное от .doc и .txt. Но если «поисковый пёсик» Windows еще как-то может переварить файлы .ini, то с .php у него проблемы.
Проблема решается просто: нужно установить любой более-менее вменяемый файловый менеджер. Возьмем Total Commander. Я использую именно его. Переходим в корень сайта Joomla, далее в верхнем меню выбираем «Команды» –> «Поиск файлов». Откроется вот такое окно:
Ставим галочки в опциях «С текстом», «UTF8», в нижнее поле вводим нужную фразу и начинаем поиск.
Таким способом найти файл для правки очень легко. Единственный минус способа – если сайт находится на хостинге, то через FTP такая штука уже не пройдет. Но в запасе всегда должна быть резервная копия сайта, на которой делаются эксперименты, так что это не должно стать проблемой.
Права на папки и файлы
Еще один частый вопрос связан с правами доступа, которые должны быть установлены на файлы и папки Joomla. Это очень важный момент, т.к. от этих прав сильно зависит безопасность сайта. Права всегда нужно проверять самостоятельно. В моей практике были случаи, когда техническая поддержка одного мелкого хостинга, не зная как решить проблему, выставила на некоторые папки Joomla права 777. Такие права позволяют любому желающему просматривать содержимое папки, изменять и выполнять его.
Правило тут простое: права всех папок должны быть 755, всех файлов – 644.
Если цифры выше вам ничего не говорят и вы вообще не понимаете о чем идет речь, то отсылаю к Википедии. Изменить права можно через FTP-клиент, через который вы подключаетесь к сайту(тот же Total Commander), панель управления хостингом или специальный компонент Joomla, например, eXtplorer.
Mootools vs JQuery
Случается так, что начинающий веб-мастер, видя изобилие расширений для Joomla, не думая устанавливает на свой сайт все подряд. Это естественно для новичка, ведь логика такая: пусть будет на всякий случай. Понимание проблем безопасности, быстродействия и совместимости, возникающих при таком подходе, появляется гораздо позже. А прежде задаются вопросы: «почему после установки компонента(модуля, плагина) Х, перестал работать компонент(модуль, плагин) Y?». Часто ответом на этот вопрос, особенно, когда речь идет о всяких галереях и слайдшоу, может служить частичная несовместимость JavaScript-библиотек Mootools и JQuery. Официально, стандартной библиотекой для Joomla является Mootools, но фреймворк JQuery сейчас очень активно развивается не только в плане функционала, но и в документации. Чтобы на сайте работал и Mootools и JQuery, рекомендуется использование режима noConflict. А вообще, по правилам хорошего тона, на сайте должна использоваться только одна библиотека скриптов.
Плагин loadmodule
«Посоветуйте расширение для вывода модуля Joomla в статье» – такой вопрос я слышу довольно часто. Интересно то, что плагин, осуществляющий такой фокус, уже встроен в Joomla. Его название loadmodule. Подробнее о том, как применять данный плагин можно прочитать в этой статье.
Надеюсь, данная статья ответит на вопросы многим веб-мастерам, работающим с Joomla, и поможет им сэкономить немало времени.
И еще, как можно узнать какие расширения используют ту или иную библиотеку. Есть ли быстрый способ. И как вы считаете какой лучше пользоваться (т.е. на основе какой больше и разнообразней расширения)?
Лично мне больше нравится JQuery. Это связано с тем, что по этой библиотеке гораздо больше описаний и готовых скриптов. Но стандарт для Joomla - это Mootools. Именно ее используют большинство расширений да и сама CMS.
А под режимом noConflict имеется ввиду, что данный режим нужно выставлять в модуле, или в настройках джумлы имеется режим noConflict?
Делаю сайт для своей компании, и вот на главной оргнанизовал вывод материалов с помощью меню блога на главной, т.е сначала идет 1 статья, потом несколько статей в две колонки. (пример dllmaster.ru) не могу понять как вставить после 2х столбцов статью на всю ширину.
Может быть знаете решение?
Наиболее правильное - переопределить шаблон главной страницы и изменить его под себя. Но это весьма сложно, особенно, если вы плохо разбираетесь в Joomla и PHP.
есть еще пара более простых способов.
1) Вывести на главной странице только одну статью в которую вставить модули c материалами через {loadposition}. О том, как вставлять их, я писал в этой статье: http://wedal.ru/rasshireniya-joomla/virtuemart-internet-magazin-na-joomla-chast-18-vivod-kategoriy-virtuemart-s-izobrazeniyami-na-glavnoy-stranice-saita.html
2) Переделать используемый шаблон Joomla, добавив под основным контентом позицию для вывода модулей. В этой позиции вывести модуль со статьей.
Если кто в теме - скажите- может можно как-то настроить Joomla чтоб она при установке создавала папки от моего имени а не от своего (или хостера) как я понял это одно и тоже. Спасибо
- Установка модуля (причем только при 777 на директорю куда он ставится. 755 не может)
Создается папка с правами на каталог 755 и на файлы 644 НО - Владелец/Группа = 48 и 48 (то есть хостер) а не 12856 и 12856 (то есть я)
- Ничего не могу сделать пока не отпишусь хостеру и он (хоть и оперативно но всё же... понимаете) не изменит владельца и группу на меня.
Оказывается надо просто в "настройки/сервер в часть FTP разрешить Joomla работать с файлами по FTP. Вроде как помогло. О минусах этого не пишу ибо еще не знаю. Во всяком случае сейчас модули становятся с моим UserID/GroupID.
То есть я вношу товары в корзину, а при нажатии "оформить товар" меня выкидывает на ошибку. Может подскажете, в чем дело?
То же самое происходит при попытке скорректировать товар в корзине
Мутул - это откат к каменному веку, почему - потому что везде используется JQuery,а Joomla решила поддерживать сирых и убогих, тогда и ей не долго среди них оказаться.
Сейчас наметилась тенденция на добавление в Joomla функции выбора JS-фреймворка. Это предложение идет в топе идей на Joomla Idea Pool. Возможно, к следующей версии разработчики воплотят ее в жизнь. Но это, опять же, не избавляет от проблем с расширениями, которые используют разные фреймворки. В общем, говорить можно много, но пока имеем то, что имеем. Думаю, все изменится к лучшему, но когда - покажет время.
Но все файлы где указана behavior.framework, я не беру во внимание админку, придется подружить с JQ, это значит нужно понять зачем им java фреймворк и сделать все на JQ, но блин это время, а так можно будет и собственную сборку джумлы сделать.
Но можно и не заморачиваться и тупо в шаблоне обнулить массивы скриптов так:
$document =& JFactory::getDocument();
$document->_scripts=array();
$document->_script=array();
а затем подключить ручками JQ и при устанвке модулей или компонент (или как там у джумлы называется), смотреть используют они мутулс или нет, а там предпринимать действия: лечить или покориться.
Другое дело расширения. Например, тот же Virtuemart во всю использует встроенный Mootools.
P.S.: "тупо обнулять" массивы не стоит. Для начала стоит разобраться в том, что в них содержится. На самом деле тема отключения Mootools довольно популярна и правильной код легко можно найти в Интернете.
Wedal, спасибо за общение!
Подскажите по Joomla, если знаете этот момент:
после редактирования статьи из админки или через web-интерфейс срок действия статьи автоматически истекает и ее никто не видит, кроме админа.
Где это настроить/исправить? Или это из-за конкретной сборки Joomla, установленной на хостинг? Или из-за чего-то еще?
Заранее спасибо.
А вот как это исправить? Или отредактировать на "молекулярном" уровне - в каком модуле в каком PHP-файле это прописано?
все хорошо, не те файлы редактировал:-)