www & wap

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
faeton
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 6 месяцев

www & wap

Сообщение faeton »

Доброго времени суток!

Я делаю сайт, который должен быть доступен как в Wap версии так и WWW версии но с одним контентом

Столкнулся с проблемой как сделать разное оформление для wap и www

Решил сделать так (про такой подход еще не слышал):
делаю 2 копии скриптов форума:
http://www.site.ru/forum
wap.site.ru/forum

Решил подменить значение $config['default_style'] на $config['default_style_wap']
В CONFIG_TABLE добавляю новую строку
config_name config_value is_dynamic
default_style_wap 10 0
где 10 - id установленного мобильного стиля


Изменял только скрипты wap версии

Изменил includes/cache.php:

Код: Выделить всё

	function obtain_config()
	{
* * *
			while ($row = $db->sql_fetchrow($result))
			{

				// Подменяем
				if ($row['config_name']=='default_style')
					continue;
				if ($row['config_name']=='default_style_wap')
					$row['config_name']='default_style';
				
				if (!$row['is_dynamic'])
				{
					$cached_config[$row['config_name']] = $row['config_value'];
				}

				$config[$row['config_name']] = $row['config_value'];
			}
			$db->sql_freeresult($result);

			$this->put('config', $cached_config);
		}

		return $config;
	}
Изменил includes/functions.php:

Код: Выделить всё

function set_config($config_name, $config_value, $is_dynamic = false)
{
	global $db, $cache, $config;

	// Подменяем
	if ($config_name=='default_style') $config_name=='default_style_wap';
	
	$sql = 'UPDATE ' . CONFIG_TABLE . "
		SET config_value = '" . $db->sql_escape($config_value) . "'
		WHERE config_name = '" . $db->sql_escape($config_name) . "'";
	$db->sql_query($sql);

	if (!$db->sql_affectedrows() && !isset($config[$config_name]))
	{
		$sql = 'INSERT INTO ' . CONFIG_TABLE . ' ' . $db->sql_build_array('INSERT', array(
			'config_name'	=> $config_name,
			'config_value'	=> $config_value,
			'is_dynamic'	=> ($is_dynamic) ? 1 : 0));
		$db->sql_query($sql);
	}

	// Меняем название назад
	if ($config_name=='default_style_wap') $config_name=='default_style';

	$config[$config_name] = $config_value;

	if (!$is_dynamic)
	{
		$cache->destroy('config');
	}
}
Стиль для www устанавливается через админку
а для wap только через редактирование строки default_style_wap в CONFIG_TABLE

Собственно вопрос: а как сделать чтобы стиль для Wap версии я мог задавать через админку wap версии?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: www & wap

Сообщение Nekstati »

faeton писал(а):делаю 2 копии скриптов форума
Вы изначально выбрали неверный подход и пожинаете плоды, в т. ч. проблему с файлами, о которой писали в другой теме. Надо привязать оба домена к одной папке (мод th23 domain), а для wap-адресов просто переключать стиль на мобильный (это пара строк в session.php).
faeton писал(а):как сделать чтобы стиль для Wap версии я мог задавать через админку wap версии?
Посмотрите, как сделано здесь: Мобильная версия phpBB (правка в файле includes/acp/acp_board.php).

Вернуться в «Для авторов (phpBB 3.0.x)»