Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Комната отдыха » Пересоздание движка для новостного районного сайта.


Пересоздание движка для новостного районного сайта.

Сообщений 61 страница 79 из 79

61

John Warner написал(а):

Я подумал, что если замостить страницу "тайлами", как их называют игроделы, то станет доступна возможность тотального изменения страницы нажатием двух-трёх кнопок в админке.

Ну как по мне, для меня самое удобное просто в Админке самому прописать для собственного сайта порядок следования и структуруру дивов или иных элементов, а сервер все это сожрал и перенёс на страницу

0

62

https://i5.imageban.ru/out/2021/07/08/955bc5c87ee206a4a7d68cd490fa4aa2.jpg
И даже так...

0

63

Deff написал(а):
John Warner написал(а):

Я подумал, что если замостить страницу "тайлами", как их называют игроделы, то станет доступна возможность тотального изменения страницы нажатием двух-трёх кнопок в админке.

Ну как по мне, для меня самое удобное просто в Админке самому прописать для собственного сайта порядок следования и структуруру дивов или иных элементов, а сервер все это сожрал и перенёс на страницу

Как говорится, два мира - два Шапиро :)
Тоже неплохо, надо будет позже обдумать.  :flag:

0

64

Deff написал(а):

может какой нидь случайный цикл в функции замкнул ?

А это мысль.
Буду посмотреть.
Спасибо за наколку :)

0

65

Твоя идея разметки квадратиками интересна для игровых приложений, когда я в каждый кубик могу вставлять динамический cаnvas c изображением и перс может плавно переходить по локации при этом меняется лишь кубики с персом и секция (строка/cтолбец) по направлению перемещения... т.е. экономим на динамике вставки

0

66

John Warner написал(а):

Слуушай, а чего у нас стали посты удваиваться?
У тебя два отдельных, у меня два в одном...

Чот у тебя с кешем браузера  :dontknow:
Очистить или попробовать с другого ( возможно глючит Аякс вставка )

+1

67

Deff
Понял, ща почищу.

0

68

Deff написал(а):

Твоя идея разметки квадратиками интересна для игровых приложений, когда я в каждый кубик могу вставлять динамический cаnvas c изображением и перс может плавно переходить по локации при этом меняется лишь кубики с персом и секция (строка/cтолбец) по направлению перемещения... т.е. экономим на динамике вставки

Хе-хе, идея всё-таки неплохая, значит :)

+1

69

Deff написал(а):

Чот у тебя с кешем браузера

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

Отредактировано John Warner (Чт, 8 Июл 2021 16:42:26)

+1

70

John Warner написал(а):

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

Есть вариант что как-то получается двойной клик по отправке - при отправке двух постов с разницей менее скольких-то секунд - посты склеваюца сервисом...
Ну и потести с иного браузера...

Отредактировано Deff (Чт, 8 Июл 2021 16:46:35)

+1

71

Deff написал(а):

Есть вариант что как-то получается двойной клик по отправке

Теперь понятно: у меня мыша снова помирает, у кнопки левого клика (ЛКМ) опять стал чудить микропереключатель.
Я за полгода туда уже третий поставил: я не один юзаю комп, мне помогают дети)))

+1

72

Deff написал(а):

идея разметки квадратиками интересна для игровых приложений,

Ксать вспомнил что навеяло, - в первом Принце Персии было реализовано подобным образом(но поскок тогда игра была не браузерная, картинки менялись в квадратиках памяти копируемых на экран)

0

73

Кстати, проверил самописный движок на базе phpBB2, который я ещё для киевского ЗАЗ-клуба писал, на предмет тормозов.
Тормозов при загрузке нет.
В нём была проведена грандиозная работа по ускорению, и, видимо, не зря.
Раньше моему древнему компу, видимо, не хватало производительности, сейчас сайт летает просто.
Изучаю движок новостного сайта, ищу проблемы в производительности.

+1

74

John Warner написал(а):

Сложности такие в этом: задолбаешься задавать сетку, притом желательно применять не пикселы (px), а "фольксвагены" (vw). Остальное дело техники.
Подход с area тоже возможен.

Вероятно как то так:
[html]<style>
.table {
  display: grid;
  grid-template: repeat(3, 25vw)/repeat(4, 25vw);
}
.table div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid red;
}
</style>

<div class="table">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
  <div>11</div>
  <div>12</div>
</div>[/html]

Код
Код:
<style>
.table {
  display: grid;
  grid-template: repeat(3, 25vw)/repeat(4, 25vw);
}
.table div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid red;
}
</style>

<div class="table">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
  <div>11</div>
  <div>12</div>
</div>

Отредактировано kolobdur74 (Чт, 8 Июл 2021 19:55:13)

+2

75

kolobdur74
Отличный код, ёмкий и краткий, но как обращаться к каждому отдельному квадрату?

0

76

John Warner написал(а):

Отличный код, ёмкий и краткий, но как обращаться к каждому отдельному квадрату?

Если к каждому индивидуально, то надо именовать квадраты.. Как я делал на вкладках:

#nav-bottom-1 {grid-area: nav-bottom-1;}
#nav-bottom-2 {grid-area: nav-bottom-2;}
#nav-bottom-3 {grid-area: nav-bottom-3;}
#nav-bottom-4 {grid-area: nav-bottom-4;}
#nav-bottom-5 {grid-area: nav-bottom-5;}
#nav-bottom-6 {grid-area: nav-bottom-6;}
#nav-bottom-7 {grid-area: nav-bottom-7;}
#nav-bottom-8 {grid-area: nav-bottom-8;}
#nav-bottom-9 {grid-area: nav-bottom-9;}
#nav-bottom-10 {grid-area: nav-bottom-10;}

Можешь глянуть код, ссылка в подписи у меня..

+1

77

kolobdur74
Понял, спасибо.
Я сначала спросил, а потом и сам сообразил, что и как.

0

78

John Warner, с именами тот же вид будет вот так:
[html]<style>
.table {
  display: grid;
  grid-template: "quadro-1 quadro-2 quadro-3 quadro-4" 25vw
                 "quadro-5 quadro-6 quadro-7 quadro-8" 25vw
         "quadro-9 quadro-10 quadro-11 quadro-12" 25vw
         / 25vw 25vw 25vw 25vw;
}
.table div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid red;
}

#quadro-1 {grid-area: quadro-1;}
#quadro-2 {grid-area: quadro-2;}
#quadro-3 {grid-area: quadro-3;}
#quadro-4 {grid-area: quadro-4;}
#quadro-5 {grid-area: quadro-5;}
#quadro-6 {grid-area: quadro-6;}
#quadro-7 {grid-area: quadro-7;}
#quadro-8 {grid-area: quadro-8;}
#quadro-9 {grid-area: quadro-9;}
#quadro-10 {grid-area: quadro-10;}
#quadro-11 {grid-area: quadro-11;}
#quadro-12 {grid-area: quadro-12;}
</style>

<div class="table">
  <div id="quadro-1">1</div>
  <div id="quadro-2">2</div>
  <div id="quadro-3">3</div>
  <div id="quadro-4">4</div>
  <div id="quadro-5">5</div>
  <div id="quadro-6">6</div>
  <div id="quadro-7">7</div>
  <div id="quadro-8">8</div>
  <div id="quadro-9">9</div>
  <div id="quadro-10">10</div>
  <div id="quadro-11">11</div>
  <div id="quadro-12">12</div>
</div>[/html]

Код
Код:
<style>
.table {
  display: grid;
  grid-template: "quadro-1 quadro-2 quadro-3 quadro-4" 25vw
                 "quadro-5 quadro-6 quadro-7 quadro-8" 25vw
 "quadro-9 quadro-10 quadro-11 quadro-12" 25vw
 / 25vw 25vw 25vw 25vw;
}
.table div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid red;
}

#quadro-1 {grid-area: quadro-1;}
#quadro-2 {grid-area: quadro-2;}
#quadro-3 {grid-area: quadro-3;}
#quadro-4 {grid-area: quadro-4;}
#quadro-5 {grid-area: quadro-5;}
#quadro-6 {grid-area: quadro-6;}
#quadro-7 {grid-area: quadro-7;}
#quadro-8 {grid-area: quadro-8;}
#quadro-9 {grid-area: quadro-9;}
#quadro-10 {grid-area: quadro-10;}
#quadro-11 {grid-area: quadro-11;}
#quadro-12 {grid-area: quadro-12;}
</style>

<div class="table">
  <div id="quadro-1">1</div>
  <div id="quadro-2">2</div>
  <div id="quadro-3">3</div>
  <div id="quadro-4">4</div>
  <div id="quadro-5">5</div>
  <div id="quadro-6">6</div>
  <div id="quadro-7">7</div>
  <div id="quadro-8">8</div>
  <div id="quadro-9">9</div>
  <div id="quadro-10">10</div>
  <div id="quadro-11">11</div>
  <div id="quadro-12">12</div>
</div>

+2

79

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

Собственно, это централизованная система парсинга, выполненная в виде функции.
Точнее, даже две, так уж вышло.

Парсер общего назначения:

Код:
function page_body ($tpl_array)
{
	global $template, $tplEx, $tpl_array, $phpbb_root_path, $db, $debug_text, $msg_title, $msg_text, $s_hidden_fields, $l_confirm, $error_msg, $hidden_form_fields, $is_auth, $l_confirm;

	if (!isset($tpl_array))
	{
message_die(GENERAL_ERROR, 'Not specified templates!');
garbage_collection();
exit_handler();
die;
	}
	else
	{
foreach ($tpl_array as $var => $value)
{
	if (isset($value)) //Есть ли такое значение?
	{
$template->set_filenames(array(
	$var => $value
	));
$template->pparse($var); 	// Тут шаблонизатор парсит каждый шаблон в одну страницу
array_shift($tpl_array);// Удаляем загруженный элемент из массива
	}
	else
	{
message_die(GENERAL_ERROR, 'Template cell is empty!');
	}
}
unset($tpl_array);
	}
	return;
}

Парсер для новостной страницы:

Код:
function page_news_body()
{
	global $db, $template, $phpEx, $tplEx, $tpl_array, $phpbb_root_path, $incl_path, $topic_id, $forum_id, $user_id, $sql, $query;
	global $debug_text, $msg_title, $msg_text, $s_hidden_fields, $l_confirm, $error_msg, $hidden_form_fields, $is_auth, $l_confirm;
	
	$template->set_filenames(array(
'grid_body' => 'modules/grid_body.' . $tplEx,
'bottom_body' => 'modules/bottom_body.' . $tplEx
));
	
	$template->pparse('grid_body');
	 // Загрузка модулей, найденных в каталоге modules/
	$dir = @opendir($phpbb_root_path . 'modules/'); // Открываем каталог
	while( $file = @readdir($dir)) // Читаем каталог
	{
if(preg_match("/^module_.*?\." . $phpEx . "$/", $file)) // Да, это файл
{
	$moddata = preg_replace('/\.\w+$/', '', substr($file, 7, strlen($file))); // Получаем имя файла модуля
	$portal_module_name = '';
	$sql = "SELECT module_name, module_portal_name, module_status FROM " . PORTAL_MODULES_TABLE . " WHERE module_name = '" . $moddata . "'"; // Запрос статуса в БД
	if (!($showdata = $db->sql_query($sql)))
	{
message_die(GENERAL_ERROR, 'Could not query module_name', '', __LINE__, __FILE__, $sql);
	}
	while($show_data = $db->sql_fetchrow($showdata)) // Находим данные модуля в массиве из БД
	{
$mod_data = $show_data['module_status']; // Искомый статус модуля
	}
	if ($mod_data !== '0') // Если 0 то модуль не грузится
	{
include($phpbb_root_path . 'modules/' . $file); // Загрузка модуля со статусом 1
	}
}
	}
	$template->pparse('bottom_body');
	return;
}

Теперь сам увижу если, сразу вспомню :)

+1


Вы здесь » Единый форум поддержки » Комната отдыха » Пересоздание движка для новостного районного сайта.