Тэг ‘cms’

Расположение конфигурационных файлов в популярных CMS

Иногда, имея ftp-доступ требуется найти доступ к БД.

Места хранения паролей для доступа к базам данных для различных CMS собраны в таблице:

CMS Конфигурационный файл с паролем к базе MySQL
bitrix /bitrix/php_interface/dbconn.php
Joomla /configuration.php
MODx /manager/includes/config.inc.php
Wordpress /wp-config.php
OsCommerce /includes/configuration.php /admin_area/includes/configuration.php

Наверняка, список далеко не полный - дополняйте в комментариях

Опубликовано Январь 27, 2011 | автор: levik  |  Комментарий (1) »

Joomla делаем из абсолютных ссылок относительные

Сайт, работающий на Joomla выводит все ссылки, которые генерируются при помощи mod_mainmenu (upd. и не только) как абсолютные, то есть с http://:

http://joomla.site/link.htm

Насколько это корректно, хорошо или плохо - не скажу.. однако, я считаю, что внутренние ссылки должны быть именно внутренними, а точнее, относительными (т.е. без http:// ). Читать целиком »

Опубликовано Сентябрь 21, 2010 | автор: levik  |  Нет комментариев »

Программирование для joomla

Подборка полезных ссылок

Создаем свой модуль для Joomla!

http://blog.boxdox.ru/2009/08/modul_for-joomla/ - собственный модуль для joomla

http://joomla-book.ru/development/creating-module/ - более подробная информация по созданию модулей для Joomla

Как вставить php-скрипт в Joomla
вставка php-скрипта в joomla - rdaddphp

Rdaddphp выводит пустую страницу.

Столкнулся с тем, что Rdaddphp выдает “пустую” страницу (там, где должно быть содержимое его просто нет, однако шаблон страницы выводится) . Получилось при добавлении строки :

$row = mysql_fetch_row ();

Причина была в использовании нужных для Joomla имен внутри файла. (в данном случае $row). Следите за уникальностью.

Опубликовано Июль 12, 2010 | автор: levik  |  Нет комментариев »

Drupal - подборка модулей, ссылок, полезностей

Drupal (капля) - CMS (система управления контентом). Большое сообщество, неплохая документация (в том числе и на русском) - неплохая подмога в решении практически любой задачи на drupal. Множество готовых модулей как на официальном англоязычном сайте (drupal.org), так и “менее официальных” в русскоязычном сообществе (drupal.ru).

Подборка модулей для Drupal

Довольно много модулей входит в инсталляционный пакет drupal. Однако, для расширения функциональности очень удобно пользоваться готовыми отлаженными наработками.

CCK - позволяет изменять типы данных (node), добавлять дополнительные поля.

Views - настройки отображения списков-таблиц элементов.

http://drupal.ru/
http://habrahabr.ru/blogs/about_cms/18078/
http://habrahabr.ru/blogs/drupal/18114/

Из менее популярного, но полезного:

Yandex Maps - позволяет привязать Яндекс-карту к ноде
http://www.drupal.ru/node/39766

Simple Gmaps - Google-карты
http://drupal.ru/node/24680

http://ann.sabonim.ru/module2

Аналог nodewords и даже лучше - позволяет задавать мета и тайтлы как для страниц node, так и для “каталожных” страниц view-шек
http://drupal.org/project/simplemeta/ + http://drupal.org/project/page_title

Опубликовано Июль 2, 2010 | автор: levik  |  Комментарий (1) »

Хранение паролей сайта или восстанавливаем пароль, имея доступ к базе

В целях безопасности многие сайты не хранят в открытом виде пароли пользователей. Функция восстановления пароля в таких случаях не “восстанавливает” старый пароль, а генерирует новый. При авторизации в этом случае присланный пароль шифруется (обычно хеш-функцией), а результат сравнивается с тем, что хранится в базе. Если совпадают - все в порядке. Если нет - ошибка авторизации.

Однако, довольно часто, требуется войти в панель управления или администрирования (админку), доступ к которой потерян (или вообще неизвестен). Восстановление тоже может не работать. Как быть?

Если имеется доступ к базе - можно попробовать задать новый пароль “ручками”, непосредственно в таблице пользователей. У каждой системы управления может быть свой метод хранения хешированных паролей, однако, наиболее распространенных способов не так много.

  • Хранение пароля в открытом виде

На сегодняшний день многие CMS не используют этот способ хранения пароля. Однако, полностью исключать этот случай нельзя. Возможно комбинация “логин-пароль” непосредственно из базы данных подойдет для входа.

  • Хранение результата хеш-функции (хеш-суммы) пароля.

При задании (или генерации) пароля производится вычисление хеш-функции от строки пароля, и это значение записывается в таблицу. Наиболее распространенные функции для хранения паролей к сайтам - md5() , sha1(). Распознать хеш-функцию можно по характеным признакам:

md5-хеш содержит 128 бит (16 байт) и обычно представляется как последовательность из 32 шестнадцатеричных цифр. Например, MD5(”md5″) = 1bc29b36f623ba82aaf6724fd3b16718

sha1-хеш содержит 160 бит (20 байт) и представляется в виде последовательности 40 шестнадцатеричных цифр (5 групп по 8 символов). sha1(”sha”)   = d8f45903 20e1343a 915b6394 170650a8 f35d6926

  • Хранение хеш-суммы пароля и соль (salt)

Этот вариант имеет ещё более высокую степень защиты. В базе хранится хеш сумма и соль в виде hash:salt. (символ двоеточия приведен для примера, однако, именно его использование распространено)

salt - (соль) обычно строка из нескольких символов.  Используется для генерации хеш суммы. функция вычисляется не от значения пароля, а от значения “пароль”+”соль” ( “соль”+”пароль”, md5(md5(”пароль”)+”соль”)).

Хранение паролей в некоторых CMS

MD5 c4ca4238a0b923820dcc509a6f75849b Используется в phpBB v2.x, Joomla версии ниже 1.0.13, а также во многих других форумах и CMS.Длина: 16 байт. shugarcrm (поле user_hash)
md5($pass.$salt) 6f04f0d75f6870858bae14ac0b6d9f73:1234 Используется в WB News, Joomla версии 1.0.13 и выше.Длина: 16 байт.
md5($salt.$pass) f190ce9ac8445d249747cab7be43f7d5:12 Используется в osCommerce, AEF, Gallery и других CMS.Длина: 16 байт.
md5(md5($pass)) 28c8edde3d61a0411511d3b1866f0636 Используется в e107, DLE, Koobi .Длина: 16 байт.
md5(md5($pass).$salt) 6011527690eddca23580955c216b1fd2:wQ6 Используется в vBulletin, IceBB.Длина: 16 байт.
md5(md5($salt).md5($pass)) 81f87275dd805aa018df8befe09fe9f8:wH6_S Используется в IPB.Длина: 16 байт.
md5(md5($salt).$pass) 816a14db44578f516cbaef25bd8d8296:1234 Используется в MyBB.Длина: 16 байт.
SHA-1 356a192b7913b04c54574d18c28d46e6395428ab Используется во многих форумах и CMS.Длина: 20 байт.Алгоритм: соответствует функции sha1() языка PHP.
sha1(strtolower($username).$pass) Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a Используется в SMF.Длина: 20 байт.
base64_encode($pass) * Используется в Shop Script .

Cбрасываем пароль для JOOMLA
update `jos_users` set password = CONCAT(MD5(CONCAT('123','123')),':123') where id=1
пароль, как несложно догадаться - 123

Сброс пароля для Bitrix
http://www.vladsun.com/cms/bitrix_password_change.php
* с версии 7.1 checkword = (md5(salt+pass))

http://www.insidepro.com/hashes.php?lang=eng

Опубликовано Июнь 25, 2010 | автор: levik  |  Комментарии (5) »

Вывод даты в modx - форматируем дату по-русски в php

Modx - система управления контентом (CMS). Иногда можно услышать о ней как о CMF.

В общем, форматируем дату в стиле “1 июня 2010 года”.

На php даже при установленной русской локали вывод даты в формате  ‘d B Y’ выведет что-то вроде “1 Июнь 2010″. Родительный падеж придется делать самостоятельно.

<?php
function rus_date($d) { //$d - timestamp
$month = array(1=>'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
return date('d ',$d).$month[(int)date('m',$d)].date(' Y года',$d);
}
?>

Как прикрутить вывод даты к modx? Как обычно - через одно место. Через сниппет. (вариант с  phx тоже будет работать.. Если подключить PHx).

Создаем сниппет [[rus_date]] , в который помещаем очень похожий код:

<?php
$month = array(1=>'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$d = isset($d)?$d:$modx->documentObject['pub_date'];
return date('d ',$d).$month[(int)date('m',$d)].date(' Y года',$d);
?>

Вызов сниппета в документе - просто [[rus_date]]
Для форматирования даты по-русски при выводе в сниппете Ditto: в созданный чанк-шаблон в том месте, где нужно вывести дату вставляем
<p class="date">[[rus_date?&d=[+pub_date+]]]</p>

Ditto будет выводить уже отформатированную дату по-русски.

Опубликовано Июнь 1, 2010 | автор: levik  |  Комментарии (4) »

joomla размещаем баннер после статьи - frontpagebanner мамбот

Наткнулся на интересный мамбот для Joomla! - (кто-то может называть его плагином) FrontpageBanner .

Мамбот FrontpageBanner позволяет разместить на главной странице сразу после первой статьи баннер. То есть баннер (модуль баннеры) выводится в основной части сайта сразу после статьи. Возможности по настройке баннеров (какого выбрать рекламодателя или баннер) и более подробную информацию можно откопать на форуме мамбота. Читать целиком »

Опубликовано Февраль 24, 2010 | автор: levik  |  Нет комментариев »

Virtuemart - скрываем пустые категории

При работе с интернет-магазином на базе Virtuemart после импорта из csv возможно появление пустых категорий, которые virtuemart не скрывает автоматически. Т.е. отображаются категории, в которых нет ни одного опубликованного товара (или вообще ни одного товара) - при заходе в такую категорию, естественно,  “ощущается пустота”.

Зачем нам отображение пустых категорий? В общем-то, если только для поисковиков.. чтоб наведывались. Однако для покупателей гораздо удобнее, если пустые категории не показываются.

В настройках Virtuemart (ни в глобальной конфигурации, ни в настройках категорий) пункта-галочки “скрывать пустые категории” (или отображать) я не нашел. Может плохо искал? Читать целиком »

Опубликовано Ноябрь 4, 2009 | автор: levik  |  Комментарии (4) »

Импорт csv в virtuemart - Simple CSV (часть 2)

Не так давно публиковал заметку о реализации импорта csv в virtuemart

Когда потребовалось повторить установку “мода” Simple CSV - пока читал форум, забыл зачем пошел. :) На десяти страницах форума слишком много “воды” и повторяющихся вопросов. Решил собрать краткий ман-faq по мод-хаку  в одном месте. Может кому-нибудь окажется полезным.

Хак для версии virtuemart 1.0.* Читать целиком »

Опубликовано Сентябрь 25, 2009 | автор: levik  |  Комментарии (5) »

оптимизация Oscommerce - уменьшаем нагрузку на сервер

OsCommerce - довольно известный движок для создания интернет-магазина. Широкие возможности, большое количество модулей-патчей - несомненный плюс. Однако, как и у всего, у Oscommerce имеются и минусы.

Одним из существенных недостатков, который зачастую оказывает решающее влияние при выборе движка для магазина является высокая требовательность к ресурсам (”громоздкость”, низкая производительность или “тормознутость” - термины не совсем корректные, однако, понятные каждому).

Похоже, что при разработке OScommerce вопросам производительности уделялось не так уж много внимания… Полностью переписывать OScommerce - решение далеко не оптимальное. Попробую собрать некоторые приемы, которые позволяют существенно снизить нагрузку на сервер со стороны OSCommerce.

Продолжение статьи про оптимизацию OsCommerce

Опубликовано Июнь 27, 2008 | автор: levik  |  Комментарии (3) »