Сен
20
Рубрика:
joomla,
работа Портировал плагин RD Add PHP на Joomla 1.7
Плагин работает по прежнему
{rdaddphp file=php/test.php} — В корне сайта папка php, во вложении файл test.php
Пользуйтесь на здоровье — скачать.
Popularity: 28% [?]
Апр
05
Рубрика:
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: 55% [?]
Янв
24
Рубрика:
Новости В сети стали появляться концепт видео новой Windows 8. Платформа будет существенно отличаться от Seven и Vista. Восьмерка получит с нуля написанное ядро. Компания Microsoft сама стала афишировать новую ось, но только своим партнерам. Так первым выложившим в сеть концепт видео был Франциско Мартин. Реакция Microsoft была мгновенной, почти сразу блог Фоанциско Мартина был удален с Live Spaces.
Жду с нетерпением. Семерка меня впечатлила, как удачная и стабильная. Чего не могу сказать о старших творениях.
Get the Flash Player to see this player.
Читать полностью »
Popularity: 61% [?]
Дек
02
Рубрика:
Новости http://translate.google.com/
Переходим по ссылке и жмем Прослушать
Popularity: 68% [?]
Ноя
04
Рубрика:
Заработок,
работа На днях постоянные заказчики дали мелкую доработку на 301 редирект. Первое что приходит на ум это .htaccess. И правильно, пусть Apache сам справляется. Задача стояла в следующем: Всем ссылкам с окончанием / (слэш) вернуть 301 и перенаправить на страницу без него.
Я в Apache и администрировании веб-серваков не силен, но логику в обработке .htaccess понимаю, но скажу честно, потратил на решение задачи 3 часа. Пробовал два варианта с RedirectPermanent и RewriteRule. С прямым указанием старой и новой ссылки все работает, но извините у меня их несколько сотен, каждую прописывать естественно не будешь. Начал крутить с Метасимволами и Модификаторами, т.е. вырезать все что между символами / и формировать новую ссылку. Не работает. Начал гуглить и яндексить. Конкретных примеров нет. В общем крутился, крутился на своем офисном кресле и плюнул. Сел за редирект с помощью PHP, то что мне ближе по душе.
И так, вот код... Комментарии будут ниже.
1
2
3
4
5
6
7
8
9
10
| $uri = $_SERVER[REQUEST_URI];
$host = $_SERVER[HTTP_HOST];
if ($uri!='/'){
$templ = substr($uri,strlen($uri)-1,1);
if ($templ=='/'){
$temp_uri = substr($uri,0,strlen($uri)-1);
header ('HTTP/1.1 301 Moved Permanently');
header("Location: http://".$host.$temp_uri);
}
} |
1. Вырезаем имя хоста
2. Вырезаем урл после хоста
3. Делаем проверку. Т.к. хост вырезается до слеша, то урл на главной будет состоять из одного символа /, а обработка на главной нам не нужна. В данном случае мы не хотим выполнять редирект если урл равен /
4. Вырезаем последний символ урла.
5. Делаем проверку. Если последний символ равен / то переходим к редиректу.
6. Для удобства объявил переменную в которой вырезаем последний символ из урла.
7. Объявляем 301.
8. Делаем редирект.
Все это вставляем в самый верх шаблона и вуаля. На всех ссылках с окончанием / будет работать редирект.
На это у меня ушло 10 минут. И то пока вспоминал операторы работы со строками )). В общем спасибо маэстро, то бишь мне, пользуйтесь...
Пару слов, что еще происходит со мной в сфере блогинга между работой. 1) В плотную занялся системой dubli, о которой писал в посте Яндекс метрика растет в моих глазах! 2) Конкурс BestMasterиZация в котором я так же типа участвую, жжет. То есть сижу в пассиве. Все что я сделал для достижения цели — на своих сайтах повесил два сквозняка с PR2 и все )). Сижу в ТОП100, перед чем и ставилась задача. Надеюсь организаторы не обманут и выплатят 500 рублей )).
Popularity: 75% [?]