Апр
05
Posted under
joomla,
работа Давненько не писал... Работы валом, да и сложных задач не было, о которых хотелось бы поделиться. Но вот приплыла верстка под Joomla 1.5 со страницей приветствия. Начинаю яндексить...
Скажу честно, одно говно. Я даже удивился, что за все время развития Joomla никому не пришло в голову правильного решения. Нет, нашел один сайтик кто мыслил как я, но решения поставленной задачи так и не нашел. После чего он отговорил заказчика от идеи страницы приветствия. А задача проста — при первом входе вывести страницу приветствие. Много пишут про взаимодействие index.html и index.php. Т.е. при заходе на http://сайт.ру/ мы попадаем на index.html, а там переходим на index.php. Ну что ж, алгоритм прост, но разумность его вызывает сомнения. Во первых прощай ЧПУ. Что не есть гуд. И где гарантия что случайным образом опять не попаду на index.html. Сразу приходит в голову работа с сессиями.
Вот тут оказывается никто не копался, а если и копался то быстро сдался. Я уже и сам начал убеждать заказчика, что это лишнее телодвижение, а тот в никакую. Хацю. Мое желание для себя решить поставленную задачу пересилило. Начинаем PHP кодинг.
Нашел мануальчик Joomla класс JSession. Изучение изложенного ничего не дало. Ползем в БД. Судя по таблице _session данные сессии time, data перезаписываются при каждом обновлении страницы. Понимаю, что придется влазить в ядро и делать хак для добавление еще одного параметра (дата создания сессии) в таблицу. Подобное я когда то проделывал с Joomla 1.0 для вывода счетчика (сессий, посетителей, поисковиков) в админке. Кстати о чем также хотел написать, да времени не было. А сейчас уже и не помню что там делал ))). Ой как не люблю эти вещи, надо писать карту изменений и при каждом обновлении добавлять хаки. Ну что ж выбора нет лезем в ядро.
В процессе изучения библиотеки session.php нарыл что время жизни, т.е. время создания и последнего обновления сессии записывается в md5 параметра date. Это очень хорошо! Будет универсальный скрипт и без хаков. Оказалось все просто, странно, что этого не нашел мне яндекс
Поехали:
1
2
3
4
| $session =& JFactory::getSession();
$time_start = $session->get('session.timer.start');
$time_now = $session->get('session.timer.now');
if ( $time_now == $time_start ) { $start = true; } else { $start = false; } |
Проще говоря. Если создание и обновление сессии идентичны присваиваем переменной истину иначе ложь. Ну а дальше можно с этим параметром делать все что душе угодно.
Для реализации страницы приветствия, этот скрипт можно поместить в index.php шаблона сайта. Где нибудь после
1
2
| ...
defined( '_JEXEC' ) or die( 'Restricted access' ); |
и вызвать проверку условия
1
2
3
4
5
6
7
| ...
<body>
<?php if ( $start == false ) { ?>
... основной шаблон ...
<?php } else { include_once('start.php'); } ?>
</body>
... |
start.php вкладываем в корень шаблона и прописываем там страницу приветствия.
Ну и еще в заключении расскажу почему я применил несколько проверок условий. Во первых создание переменной $start дает нам возможность использовать его в нескольких местах. Плюс ко всему к этому условию можно добавить еще одно в виде проверки посетителя. Т.е. Если пришел поисковой робот, то ему вообще не стоит показывать страницу приветствия. Или же если вход на сайт осуществляется с поисковой системы. Что то-же по сути логично. В итоге я сделал страницу приветствия только для прямых заходов.
Пользуйтесь на здоровье...
Popularity: 58% [?]
Апр
18
Posted under
CMS,
бизнес,
Мысли в слух,
работа Для тех кто не в теме: Не знаю на сколько он крут, но по моему самый популярный интернет-магазин в Рунете. А ну и для тех кто еще в меньшей степени в теме: это движок.

Работы валом, и времени на написание статей совсем нету. Но этот самый злополучный webAsyst отнял у меня три дня драгоценного времени. В виду эмоциональной особенности решил написать как я с ним боролся.
Получил заказ на перенос/создание интернет-магазина на новый домен и хостинг с изменением юридической привязанности. Как я понял там похоже разделение бизнеса. Но не в этом суть. Магазин стоит на WebAsyst. Что бы не делать лишних телодвижений мы с бизнес-партнером решили оставить как есть, то бишь оставим ядро в неприкосновенности. Я как программист привык все отрабатывать на локальном сервере — экономит много времени и сил. Скачал WebAsyst 279 сборки, нул-версия. Импортировал базу с более чем 3000 позиций и описаний к ним + фото. Все отработало, более менее изучил движок, не лез только в подводные камни.
Погулял по движку и обрадовался, что все легко и не займет много времени. Сделал образ сервака и БД. Залил на новый хостинг + импорт БД. А мне в ответ — фиг вам. В общем покапался и понял что скорей всего надо будет ставить новый движок. Т.к. он генерит рабочие папки из имени БД, ну и так далее. В принципе на локале NULL версия ничем не отличалась от лицензии. Принял решение оставить NULL, как то жалко выкидывать 250$ за лицензию, при том что этот пункт не оговаривался и вообще не было привязанности именно к WebAsyst. А лицензионный номер хранится в installer'е куда доступ только у админа. Админ в данном случае компания которая им до нас оказывала услуги по создания магазина. Как я понимаю лицензию ставили свою же, т.к. доступ к installer'у не предоставили.
Приступил к установки нового движка. Залил, перешел к установке. Движок рекомендует иметь права root к базе данных. Таких привилегий хостинг обычно не предоставляют. Конечно же можно обратиться в тех. поддержку что бы оказали вам часок внимания и помогли с правами root установить движок. Но не хочется по такой мелочи выдрачивать мозг поддержке. Оставил эту идею на самый крайний случай.
В общем с горем попалам установил. Но вот беда не работает админка. грузится менюшка, а остальные компоненты увы не.
Начинаю гуглить (яндексить).
Запрос: WebAsyst не работает админка
Результат: один шлак. Правда одна выдача вела на форум официального сайта.
Некий bes 2008–12–29 01:37 спрашивает:
Всем привет! В который раз уже сталкиваюсь с весьма
непонятной мне проблемой. При открытии админки меню
видно, а вот ниже уже ничего нет. Вместо дерева категорий,
например, просто пустое место. И так по всем пунктам
меню. В логах написал
implode() [<a href="function.implode">function.implode</a>]: Invalid arguments passed File: /shop/kerne/dbfunctions_cmn.php Line: 4873 Error #: 2
Кто-нибудь сталкивался с такой проблемой?
Все симптомы как у меня. В ответ тишина, если честно меня шокировало. Как это так форум поддержки и тишина. Спустя 1.5 года. Ужос.
Ну делать нечего, скачиваю сборку 287. Заливаю. И тут на тебе. При апгрэйде БД опять же выкидывает ошибки. Захожу в Мускул, а там картина из 106 таблиц остается 6. Ужос, что за движок??? Пишу в тех.поддержку. Ответили на удивление очень быстро:
Здравствуйте,
Консультации по техническим вопросам оказываются при
обращении в службу поддержки с зарегистрированного
адреса электронной почты, т.е. адреса, на который вы
регистрировали покупку скриптов или онлайн-аккаунт
WebAsyst. Если вам удобнее обращаться в нашу службу
поддержки с других адресов, добавьте такие адреса в
свой профиль, как описано ниже:
Если вы приобрели скрипты WebAsyst или услугу
виртуального хостинга Архост, войдите в Центр Заказчика
my.аrtiсиs.ru и добавьте адреса в разделе "Настройки".
После добавления адресов отправьте свой запрос повторно.
С уважением,
-----
Юрий
Служба поддержки WebAsyst
Первая мысль, вот монополисты. Хотя потом обмозговав ответ, понял что WebAsyst то платный и FREE версий то нету, а NULL это ломаная. Неужели придется покупать лицензию?
Ну что ж все шло к тому что надо ставить Joomla + Virtuemart и все верстать руками. Ох ужос.
Но я настырный по натуре и не могу быть остаться поверженным. Думаю дайка попробую и на локале обновить сборку, тем паче что там у меня права к БД root. Обновляюсь, все пашет. Делаю бэкап БД.
Откладываю дело на следующий день.
С чистыми мыслями приступил к очередному изнасилованию WebAsyst. Долго мучал разные варианты. И решил раз на локале все работает, а на хостере нет. Значит мне мои права не позволят корректно поставить движок. Но специфика корней движка. Понял что на локале надо на 100% повторить хостинг. Создаю новое доменное имя с теми же пользователями и именем БД, но с правами root. Устанавливаю сборку 287 и снова выскакивает ошибка с БД. Лезу в мускул, опять похерел таблицу. Но не падая духом восстанавливаю последнюю удачную копию БД. И вуаля все работает.
Перехожу к хостингу. Заливаю файлы с локала + удачную БД. Выставляю на необходимые папки и файлы права доступа 777
Хоп. Сайт работает. Админка. Работает. Я в экстазе, доволен как слон, что поборол его.
Выводы: В большей степени конечно на весь гемор сказались права к хостингу. Во вторую очередь, хитрая система защиты от не лицензионного использования.
На самомо деле у меня выскакивало очень много различных ошибок, которые так же обсасываются на форуме, но не одного ответа от поддержки. Все завязано на лицензировании. Но хоть поверхностно зная PHP можно проанализировать логи и понять что вызывает ошибку. Чаще всего это доступ к файлам и каталогам. В общем установив права на запись ошибки исчезали. Чаще всего это файлы с расширением .xml и .log
И так теперь меньше текста и ближе к алгоритму борьбы. Как я понимаю что меня помогло его побороть.
Установка на локале стабильной 279 сборки, после АП до 287 и копирование БД. На локале создавалась точная копия хостинга. Т.е. имя домена и логин с именем к БД как на хостинге, даже использовал те же пароли. На локале всему давал права root. Копию локала заливал на хостинг выставлял где надо права на изменения (описано в инструкции к установке) + дополнительно на некоторые .xml Переходил в браузер и проверял все настройки и сохранял. Все работало и работает. И еще: сборка 279 — все гуд,
Удачи в борьбе с паразитом по имени webAsyst.
Popularity: 36% [?]
Ноя
19
Posted under
CMS,
joomla,
Заработок Получил заказ на монетизацию сайта antecombl.com в стиле pr-cy.ru
Сее чудо пока лишь интегрировано в движок Joomla (до версии 1.5). В пакет входит компонент и модуль для вывода сквозных ссылок. Система построена по принципу «плати и властвуй». Тобишь пополняй счет ссылки и продвигайся в топ5, которые в свою очередь становятся сквозняками сайта.
Система полностью автоматизирована. В роли платежного посредника выступает robokassa.com, на прямую с мерчантом решил не работать, т.к. не все имеют персональные и выше аттестаты.
Пока ссылки вечные, в будущем планируется добавить биллинг по времени. То есть спустя месяц, со счета ссылки будет сниматься какая-то сумма, что в свою очередь должно оживить работу новых рекламодателей.
Систему администрирования пока не писал, собственно и администрировать пока нечего. Только если чистить неоплаченные резервы. В будущем думаю и это будет.
Кому интересно кричите, за чисто символическую сумму продам сее творение.
Popularity: 32% [?]
марта
13
Posted under
CMS,
joomla,
работа
Давно уже пользуюсь FireStats на WordPress’е совместно с Google Analytics. Но заметил большие расхождения между ними! Судя по уникальным посетителям, Гугл обманывает меня порядком в 2–3 раза. С чем это связано? В первую очередь из-за самих посетителей. Многие используют браузеры которые отключают или кэшируют картинки и скрипты. А это приводит к тому, что статистика просто не собирается из-за отсутствия обращения к картинки или скрипту статистического сервиса. Вот и вся капуста.
Вот тут то и назрела в голове идея установки FireStats на Joomla, тем более что разработчики гарантируют работу и на ней. Скачал паке FireStat и мамбот. Что делать дальше? Самое интересное, что потраченный день на поиск мануалки в инете прошел за зря. Четких инструкций не нашел, даже поверхностно ничего описано не было. Решил разбираться сам. Read the rest of this entry »
Popularity: 100% [?]
марта
11
Posted under
CMS,
joomla
Мамбот самостоятельно создает маленькие превью картинки и при нажатии на нее красиво выводит оригинальный размер.
На днях у меня появился заказ на доработку уже готового мамбота «Thumbimage», автор оригинальной версии — Adeptus, более известный своим рестайлингом и доработкой форума FireBoard для Joomla (версия Адептуса во много раз превосходит оригинал и регулярно обновляется).
И так! Что было проделано: функция осталась прежней, картинки все так же всплывают в красивом виде. Но в оригинальной версии мамбота есть большой недостаток, картинки грузились оригинального размера, а мамбот просто сжимал размеры превьюшек. Такой вариант моему заказчику не подходил. В результате и родилось задание для создания превьюшек уменьшенного размера, а вывод оригинального. Read the rest of this entry »
Popularity: 81% [?]