Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Книга "Движок для Вашего сайта"

 
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> О книгах
 
Автор Сообщение
ScarHead




Зарегистрирован: 26.05.2009
Сообщения: 1

СообщениеДобавлено: Вт Май 26, 2009 2:57 pm    Заголовок сообщения: Книга "Движок для Вашего сайта"
Ответить с цитатой

Здравствуй Денис! Пишет тебе читатель твоей книги "Движок для Вашего сайта". Меня зовут Олег. Живу я в России. В этом году закончиваю колледж, сейчас работаю над дипломом, тема которого - Разработка системы управления контентом сайта, то бишь CMS. Долго искал учебные материалы по данной теме и вот на глаза мне попалась твоя книга. Пролистав ее в магазине я понял, что это то что мне нужно и не задумываясь купил. Заплатил я за нее 375 российских рублей (примерно 92 гривны). Написал по ней собственный движок, и теперь он успешно работает, так что диплом практически готов! Я в восторге! Вообще твоя книга произвела революцию в моей голове, теперь я решил, что сайты надо создавать исключительно с помощью CMS! Если это мегасайт, то следует использовать джумлу, PHP Nuke итд, а если простой сайт то почему бы не написать свой движок! Огромное
спасибо за книгу!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Май 26, 2009 2:58 pm    Заголовок сообщения:
Ответить с цитатой

Тебе спасибо за покупку книги! Будут вопросы - обращайся Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Наташенька

Новенький


Зарегистрирован: 29.05.2009
Сообщения: 22
Откуда: Россия

СообщениеДобавлено: Пт Май 29, 2009 1:02 pm    Заголовок сообщения:
Ответить с цитатой

Здравствуйте, Денис!

Я начинающий веб-дизайнер, студентка художественного колледжа. Ваша книга очень мне пригодилась для изучения того, как установить и использовать стандартные движки, и как к ним приделывать некоторые простые свои фишки. Глубоко в программирование я пока не могу закапываться, мне нужнее работать с оформлением сайтов, но пока я не знала, как сайт настраивается, многого не удавалось вообще сделать. А книги по общим вопросам программирования на PHP для меня оказались слишком сложными. Поэтому спасибо Вам за понятную и полезную книгу!

У меня вопрос, который, может быть, будет важен не только для меня. В Вашей книге, когда говорится об интеграции CMS с форумом phpBB, везде имеется в виду версия 2 этого форума. Но она больше не поддерживается разработчиками, и уже два года существует версия 3 Olympus, гораздо более современная, с исправленными ошибками и многими новыми возможностями. На диске к Вашей книге тоже прилагался (старый) дистрибутив 3-й версии, но в книге нет ни слова о том, как его использовать. А версия 2 форума уже мало кому сейчас нужна.

Я бы хотела взять за основу Вашу CMS (убрав из нее некоторые лишние для меня функции и добавив несколько своих типов страниц), но ее нужно будет обязательно интегрировать с форумом phpBB 3 Olympus (версия 3.0.4). Я правильно понимаю, что для этого надо исправить обращения к функциям форума и пути к его файлам? Или там еще и таблицы другие?

Я, конечно, не прошу за меня написать заново всю главу про интеграцию с форумом для phpBB 3, Smile но пожалуйста, объясните, что нужно исправить в Ваших скриптах, чтобы они работали с этой версией. В частности, в Ваших примерах везде подцепляются файлы форума phpBB2:

pagestart.php
extension.inc

В версии 3 таких файлов уже вроде бы нет. Не могли бы Вы подсказать, какие именно функции и переменные форума должны быть доступны для скриптов из глав 14-20 книги? В каких файлах форума 3-й версии их, скорее всего, надо искать?

Буду очень благодарна за ответ.
_________________
Ко мне всегда можно на ты. Но это не значит, что я всегда согласна.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Май 29, 2009 2:36 pm    Заголовок сообщения:
Ответить с цитатой

Цитата:

А версия 2 форума уже мало кому сейчас нужна.

Ошибаешься Smile Вот этот форум как и многие другие работают на второй версии и все прекрасно Smile Тем более когда уже сам доработал этот форум от и до.

Цитата:

Я правильно понимаю, что для этого надо исправить обращения к функциям форума и пути к его файлам? Или там еще и таблицы другие?

Нужно смотреть, я третью версию если честно глубоко не ковырял. Пробуй сама, может получится - должно получиться. Сейчас лень переписывать (фактически) главы 14-20 Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Наташенька

Новенький


Зарегистрирован: 29.05.2009
Сообщения: 22
Откуда: Россия

СообщениеДобавлено: Пт Май 29, 2009 3:39 pm    Заголовок сообщения:
Ответить с цитатой

Денис, ну я ж писала, что не предлагаю переписывать книгу заново. Но Вы бы могли хотя бы подсказать, какие функции и переменные Ваш скрипт использовал из подцепляемых файлов 2-й версии форума:

pagestart.php
extension.inc

чтобы я могла сама искать их аналоги.

Это вопрос не по 3-й версии форума, а по Вашему скрипту, опубликованному в книге. Не ответите?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Май 30, 2009 6:47 am    Заголовок сообщения:
Ответить с цитатой

Наташенька, вот что нашел. Мне повезло и не пришлось самому разбираться с авторизацией phpbb3 - зачем изобретать велосипед, если уже кто-то его изобрел, а Гугл поможет его найти ))

Для того, что бы понимать зачем и как это делать, сначала я постараюсь объяснить логику работы. Из уже готовых изменений, нам нужно добавить в БД сайта, дополнительное поле, например — 'user_f_id', в которое мы будем записывать информацию о сопоставлении профилей пользователей сайта, с профилями пользовталей форума (предполагается числовой идентификатор, user_id из БД форума — таблицы %prefix%_users).

1. Пользователь заполняет на сайте поля login и password
2. Проверяем, заполненно ли у предпологаемого пользователя поле user_f_id
Если заполненно, то:
1) Запускаем функцию авторизации пользователя через форумную БД (листинг ниже)
2) Если пароль не подходит, то выходим. Если подходит, то ставим авторизию на сайте + авторизацию на форуме
3) Авторизация на форуме делается путем установки кук + добавлением записи в таблицу %prefix%_sessions БД форума (листинг ниже)
Если не заполнено, то:
1) Скрипт производит стандартные функции валидации пароля
2) Если пароль не подходит, то выходим, если подходит, то запускаем функции установки сопоставления
3) Создаем запись в БД форума о пользователе (таблица %prefix%_users)
4) Созадем запись в БД форума о правах пользователя (таблица %prefix%_user_group)
5) Заполняем в БД нашего сайта поле user_f_id

Собственно всё. Теперь мы имеем систему, благодаря которой уже зарегистрированные пользователи, при первом входе заведут себе новый аккаунт на форуме. По какому критерию их сравнивать (логин, почта) это уже решайте сами.

Естественно нужно еще дописать функии, которые при регистрации пользователей будут создавать учетную запись на форуме. И чтобы при авторизации несуществующего пользователя на сайте, при правильном форумном логине и пароле, ему автоматически создавалась учетная запись на сайте.

Листинг ф-ций, которые проверяют пароль из форумной базы:
Код:

// phpbb_hash($password) - Создание пароля
// phpbb_check_hash($password, $hash) - Верификация пароля
function unique_id()
{
return substr(md5(rand().'_'.microtime().'_'.rand()), rand(0, 15), 16);
}
function _hash_gensalt_private($input, &$itoa64, $iteration_count_log2 = 6)
{
if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
{
$iteration_count_log2 = 8;
}
$output = '$H$';
$output .= $itoa64[min($iteration_count_log2 + ((PHP_VERSION >= 5) ? 5 : 3), 30)];
$output .= $_hash_encode64($input, 6, $itoa64); return $output;
}
function _hash_encode64($input, $count, &$itoa64)
{
$output = '';
$i = 0;
do
{
$value = ord($input[$i++]);
$output .= $itoa64[$value & 0x3f];
if ($i < $count)
{
$value |= ord($input[$i]) << 8;
}
$output .= $itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
{
break;
}
if ($i < $count)
{
$value |= ord($input[$i]) << 16;
}
$output .= $itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
{
break;
}
$output .= $itoa64[($value >> 18) & 0x3f];
}
while ($i < $count);
return $output;
}
function _hash_crypt_private($password, $setting, &$itoa64)
{
$output = '*';
// Check for correct hash
if (substr($setting, 0, 3) != '$H$')
{
return $output;
}
$count_log2 = strpos($itoa64, $setting[3]);
if ($count_log2 < 7 || $count_log2 > 30)
{
return $output;
}
$count = 1 << $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt)
!= 8)
{
return $output;
}
if (PHP_VERSION >= 5)
{
$hash = md5($salt . $password, true);
do
{
$hash = md5($hash . $password, true);
}
while (--$count);
}
else
{
$hash = pack('H*', md5($salt . $password));
do
{
$hash = pack('H*', md5($hash . $password));
}
while (--$count);
}
$output = substr($setting, 0, 12);
$output .= $_hash_encode64($hash, 16, $itoa64);
return $output;
}
public function phpbb_hash($password)
{
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$random_state = $unique_id();
$random = '';
$count = 6;
if (($fh = @fopen('/dev/urandom', 'rb')))
{
$random = fread($fh, $count);
fclose($fh);
}
if (strlen($random) < $count)
{
$random = '';
for ($i = 0; $i < $count; $i += 16)
{
$random_state = md5($unique_id() . $random_state);
$random .= pack('H*', md5($random_state));
}
$random = substr($random, 0, $count);
}
$hash = $_hash_crypt_private($password, $_hash_gensalt_private($random, $itoa64), $itoa64);
if (strlen($hash) == 34)
{
return $hash;
}
return md5($password);
}
function phpbb_check_hash($password, $hash)
{
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if (strlen($hash) == 34)
{
return ($_hash_crypt_private($password, $hash, $itoa64) === $hash) ? true : false;
}
return (md5($password) === $hash) ? true : false;
}


Массив для добавления записи о сессии в БД форума.

Код:

$browser = get_browser(null, true);
$ss = array(
'sid'          => md5(date('U').rand(0,20)),
'user_id'      => $forum['user_id'],
'forum_id'     => '0',
'last_visit'   => date('U'),
'start_time'   => date('U'),
'session_time' => date('U')+86400,
'session_page' => 'index.php',
'remote_ip'    => getenv('REMOTE_ADDR'),
'browser'      => htmlspecialchars($browser['browser_name_pattern']),
'autologin'    => '1'
);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Май 30, 2009 6:52 am    Заголовок сообщения:
Ответить с цитатой

Теперь относительно моего сценария. pagestart.php я не использовал, вот файлы которые я подключал:

Код:

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


Это фрагмент из листинга 19.2. Первого файла действительно нет в третьей версии, но он подключался исключительно, чтобы стала доступной переменная $phpEx. Поэтому вместо подключения этого файла можно было бы объявить:

$phpEx = "php";

Затем подключался файл common.php, он есть и в третьей версии.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Май 30, 2009 6:57 am    Заголовок сообщения:
Ответить с цитатой

Файл require('./pagestart.' . $phpEx); использовался в главе 20, где было описано создание модуля админки для phpbb2. Поищи, в Инете должен быть мануал по созданию модулей для phpbb3.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Май 30, 2009 6:58 am    Заголовок сообщения:
Ответить с цитатой

Цитата:

Это вопрос не по 3-й версии форума, а по Вашему скрипту, опубликованному в книге. Не ответите?

Сразу не заметил это сообщение. Если уж на то пошло, то мой сценарий адаптирован под вторую версию форума и он прекрасно работает! Или это не так? Так что все-таки ваш вопрос касается phpbb3, а не моего сценария!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Наташенька

Новенький


Зарегистрирован: 29.05.2009
Сообщения: 22
Откуда: Россия

СообщениеДобавлено: Вс Май 31, 2009 7:50 pm    Заголовок сообщения:
Ответить с цитатой

den, спасибо за подробный ответ. Попробую разобраться.

den писал(а):
Если уж на то пошло, то мой сценарий адаптирован под вторую версию форума и он прекрасно работает! Или это не так? Так что все-таки ваш вопрос касается phpbb3, а не моего сценария!

Я не проверяла работу скрипта со 2-й версией, т.к. не вижу смысла ставить ее на НОВЫЙ сайт (я понимаю, что если у кого-то уже стоит давно эта версия, то она его может устраивать, но на новом проекте это не имеет смысла).

А мой вопрос касался именно Вашего сценария. Меня интересовало, какие функции и переменные использует скрипт из phpBB2. Я не настолько хорошо разбираюсь в PHP, чтобы с первого взгляда отличить встроенные функции языка от тех, которые подцепились через подключенные файлы форума. Всего-то.

Так что не сердитесь, пожалуйста. Embarassed
_________________
Ко мне всегда можно на ты. Но это не значит, что я всегда согласна.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Июн 01, 2009 5:01 am    Заголовок сообщения:
Ответить с цитатой

Цитата:

я понимаю, что если у кого-то уже стоит давно эта версия, то она его может устраивать, но на новом проекте это не имеет смысла

Может и так, но я ставил, правда после установки немного допиливал напильником и пока еще никто не жаловался. Может потому, что я знаю вторую от и до, а с третьей лень разбираться, а ставить сток не хочется, чтобы потом действительно не начались проблемы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Наташенька

Новенький


Зарегистрирован: 29.05.2009
Сообщения: 22
Откуда: Россия

СообщениеДобавлено: Чт Июн 04, 2009 9:26 am    Заголовок сообщения:
Ответить с цитатой

Вот я сделала выборку только принципиально важных нововведений 3-й версии по сравнению со 2-й (какие-то из этих возможностей во 2-й версии частично поддерживались только самодельными модами, какие-то - вообще не поддерживались, теперь все это встроено в форум):

Код:

Basic Features:

UTF-8 Support    
Search Engine spider Handling

Security:

Temporary Bans (Suspension)
Paid Security Code Audit
Type Aware Parameter Handling
Type Aware Database Layer

Anti-Spam:

Suspensions
Warnings
User Logging
Report Posts

Data Management:

Oracle
Firebird
SQLite

Registration:

Set min/max Username Length
Set min/max Password Length
Limit username Chars
Set Password Complexity Requirements
Force Password Change
Allow/Disallow e-mail Address Re-usage

Posting:

Custom BBCode Buttons
Quote Multiple Posts
Syntax Highlighting
Attachments
Post Drafts
Multiple Poll Option Voting
User based Poll Tracking
Allow/Disallow Vote Change
Beaten-to-Posting Review

Attachments:

Automatic Image Thumbnails
Attachment Types
Multiple Attachments
Attachment Placement

Caching:

Database Query Caching
Template Caching
Arbitrary Data
Manual Cache Refreshing

Profiles / Memberlist:

Custom Profile Fields
Memberlist Searching
Disallow Non-Registered User Memberlist Viewing

Search System:

Customised Topic Search
MySQL fulltext
Active/New Topics

Forums:

Password Protected Forums
Forum Specific Styles
URL Link Redirect Forums
Forum Rules
Subforums
Subscribe to Forums
Bookmark Topics
Topic Sorting
Post Sorting
Topic Participation Tracking
Print Topics
E-mail Topics

User Control Panel:

Manage Saved PM/Post Drafts
Manage Bookmarks
Manage Attachments
Manage Subscribed Topics
Custom Profile Fields
Friends/Foe List

Private Messaging:

Additional PM Folders
Customisable PM Filter Rules
Send to Multiple Recipients
Send Blind Carbon Copies
Send to Groups
Forward Messages
Address Book
Message Drafts
Export Messages
Attachments for Messages
Conversation View
Custom Message Handling Rules

Usergroups:

Multiple Group Leaders
Custom Group Colours
Group Ranks
Group Avatars
Group-based Memberlist Display

Moderation Control Panel:

Global Moderators
Topics/Posts Moderation Queue
Manage Reported Topics/Posts
Topic History
Forum/Topic Logs
Localised Moderator Logs
Post Locking
Change Post Author
Merging Topics
Merging Posts
Merging Multiple Topics
Copying Topics
Global Topics
Manage Bans
Manage User Warnings
Banning by Username
Banning by E-mail Address
Banning by IP Address
User Notes

Administration Control Panel:

Founder Status/Board Creator
Prune Inactive Users
Manage Attachments and Settings
Manage User Attachments
List Groups on Index
Topic Icons
Manage report/denial Reasons
Module Management
Custom BBCodes
Custom Profile Fields
Custom Profile Fields Placement Options
Custom Profile Fields Data Types

Styles:

Customise/Edit Templates
Customise/Edit Themes
Customise/Edit Imagesets

Permissions:

Admin Permission Roles
User Permission Roles
Moderator Permission Roles
Forum Permission Roles
Multi-level Permission Masks

Notifications:

Instant Messaging
Bookmarks

Localisation:

Languages: +11 (total  61)
Right to Left Support
Language Pack Web-Editor

Installation / Upgrade:

Update Wizard
Converter Wizard
File Merge Diff Update Engine

Technical Features:

CMS Software Integration
XHTML Compliant

Plug-ins:

Auth Plug-ins
Search Plug-ins
Cache Plug-ins
Hooks System


Самые существенные - поддержка UTF8, управление прикрепленными файлами, кэширование, доп. поля в профилях произвольных типов, полнотекстовый поиск в базе, подфорумы, черновики/закладки/списки друзей-недругов в профиле, развитое управление личными сообщениями, пользовательские группы, панель модератора, поддержка "ролей" в правах доступа, встроенные средства обновления и конвертации... В общем, это уже система совсем другого класса, практически не уступающая современным версиям коммерческих скриптов типа IPB или vBulletin.

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

Так что ждем от Вас новую книгу, что-нибудь типа "Веб-программирование в API форума phpBB3 Olympus" Idea

Одна покупательница уже есть. Smile

(Если только к тому времени книги не подорожают совсем уж выше крыши, а то на предыдущую ушло больше половины моей стипендии...)


Последний раз редактировалось: Наташенька (Чт Июн 04, 2009 9:34 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Июн 04, 2009 9:32 am    Заголовок сообщения:
Ответить с цитатой

Наташенька, будем стараться. А вообще жаль, что отправка книг в РФ подорожала. Сейчас отправлять из Украины в РФ нет смысла. А раньше можно было купить книги у меня за копейки по сравнению с магазинами. Сейчас вот акция, все книги 2009 года, вне зависимости от объема, продаю за 80 грн/штука. В магазинах они от 120 грн. Курс 10 рублей = 2.49 грн. Но отправка в РФ одного килограмма без упаковки кажется 140 грн + упаковка. Сегодня отправлял Линукс на ноутбуке + Серверное применение - вышло 1 кг 200 грамм, то есть в среднем 600-700 грамм книга, за книги я взял 160 грн (отправка по Украине), а если бы отправить в РФ, то вышло бы 160 книги и 160 отправка Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Наташенька

Новенький


Зарегистрирован: 29.05.2009
Сообщения: 22
Откуда: Россия

СообщениеДобавлено: Чт Июн 04, 2009 9:37 am    Заголовок сообщения:
Ответить с цитатой

Т.е. почта хочет за свои примитивные услуги получать не меньше, чем авторы, которые пишут книги, да? Evil or Very Mad
_________________
Ко мне всегда можно на ты. Но это не значит, что я всегда согласна.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Июн 04, 2009 9:45 am    Заголовок сообщения:
Ответить с цитатой

Если честно, то не знаю, почему так они подняли цену. Услуги там совсем не примитивные, но цены теперь кусаются. Выгодно отправлять только что-то большое. До 10 кг. Тогда цена будет до 250 грн за все, что дешевле, чем отправлять 1 кг. Если есть минимум 10 желающих, могу продать 10 книг дешевле чем в магазинах, доставка выйдет, как и раньше 25 грн за книжку (если отправлять "мелким оптом"). Из новинок есть Линукс на ноуте, Серверное применение Линус, Беспроводная сеть. Еще есть по ПХП и SUSE11 - это то, что в наличии и что стоит на полке. Вообще подробно смотреть нужно, что есть, а чего нет. От новичка к профи уже нет - все распродал (в смылсе свои авторские, в магазинах тираж еще есть)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов dkws.org.ua -> О книгах Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис