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

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

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


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


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

Сообщений 1 страница 20 из 82

Перевести1

Всем превед!

Я тут решил организовать отдельный топик, причём у нас в ЕТП в надежде, что где-то мне наши ребята идеей помогут, а также я ссылку на топик дам главреду нашему А. К. Никифорову, дабы он видел, что работы ведутся.
Видите ли, сам-то сайт висит сейчас нетронутый, ибо я работаю в Денвере и блокноте AkelPad. Не видно моей работы, в опчем :)
Я, конечно же, могу и у себя на сайте бложик вести или в ЖЖ например - но предпочёл здесь, так как мне дома уютнее, скажем так :)
Надеюсь, никто не против, и буду рад дельным советам. Если помешает - снесу.

Наверное, стоит перенести посты про новостной сайт из темки про Элизиум сюда, но и лень и некогда, просто продолжу здесь.

0

Перевести2

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

0

Перевести3

КУ всем.
В опчем, я настолько задолбался перекукоживать движок под шаблоны - что за три дня настропалил phpBB2 в некое подобие CMS)))
И снова тот же вопрос: почему phpBB2?
Ответ, развёрнуто:
1) Мне будет легче пересобрать под него БД - фактически, я сам себе парсер буду, опыт есть.
2) Шаблоны в наличии, готовые; мало того - вследствие простоты конструкции легко будет запилить шаблон на базе оригинального хтмл сайта.
3) Опять же, простота  движка; скорость прогрузки - бешеная.
4) Лёгкость администрирования и постинга новостей; новости кидаем в специально отведённые темы, они вылетают на новостной странице. Сам форум предполагается скрыть от посетителя - это легко решается административно. Также, как вариант, можно в теме по умолчанию для форума (которую видят посетители), тупо вырезать весь лишний контент, оставив лишь новостную часть, а для постеров или админов оставить дефолтную темку subSilver или proSilver, например, со всеми кишками; так даже лучше, я полагаю.
5) Поддержка языков - я полагаю, это очень пригодится, так как в планах сделать хакасскоязычную версию. При этом - лопатить придётся немного, лишь несколько языковых файлов.
6) И ещё много чего.

Как-то так.
Я перепахал движок, собрав его на базе моей, показанной тут структуры; форумный движок phpBB2 сейчас не опознаётся вовсе.

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

Работаем.

0

Перевести4

Сейчас у меня стоят такие задачи:
1) Вписать несколько ББ-кодов для постинга, ну там, алайны, шрифты, Ютуб и прочая.
2) Пересобрать портал, дабы управлялся из БД - у меня есть уже готовые варианты, надо их только вкукожить.
3) В портал вкукожить отображение новостей - тоже не сверхпроблема, я полагаю.
4) Когда отщекотаю механизм - буду пилить шаблон под новости:)

ЗЫ Кстати, удалось легко и ненапряжно адаптировать шаблонизатор от расширенной версии, со всеми функциями из phpBB3 - что не может не радовать :)
Теперь надо будет в админке сделать модуль управления вкорячиванием кусков кода во фронт-энд: примерно так было сделано на оригинальном сайтодвижке, там таким мухтаром вставлены баннеры и модули некоторые.
Сейчас это сделать будет гораздо проще :)

0

Перевести5

Ну, в опчем, новостЯ постятся, на странице портала показываются. Там были сложности, но они побеждены.
Надо настроить теперь:
1) Чтоб была передовица отдельно, в которой будет стоять слайдер на несколько постов - как на ориг. сайте.
2) Таки доделать ББкоды - они теперь постятся, но новые  не работают.
Ещё много чего - но надо решить сначала это.

Немного начал делать новый шаблон; планирую его программно приколотить к порталу, то есть, новостной странице.

0

Перевести6

Сделал финт ушами - добавил возможность править новости непосредственно с портала.

https://i.imgur.com/cYEz3SA.jpg

Загводка была в поиске шаблона отдельной новости - нашёл, выяснил, где и что стряпает новость (отдельный класс в news.php), остальное дело техники: так как все проверки по допускам на постинг и прочая делают снаружи отдельно - без лишних проверок замутил код на кнопку прямо в классе стряпания новости.
В итоге - всё работает.

Пока на оформление не смотрю - а смотрю на код и его работу.

ЗЫ "АААА" в заголовке новости - проверка и контроль работоспособности, уже убрано.

0

Перевести7

Вот поддержку хэштегов бы вкукожить - но я пока не знаю, как именно это сделать...
Добавлено спустя 10 минут 48 секунд:
Сходил к "Выживальщикам на phpBB2 (англ.)", спросил - они тоже не особо в курсях. Говорили про некие попытки ещё во времена проектирования phpBB2, но туманно и неясно, ссылок нет :(

0

Перевести8

ТакЪ.
ББкоды заработали - теперь имеем, из вкукоженного, алайны лево-центр-право,

Код:
[left]CONTENT[/left] - аналог CSS align:left;
[middle]CONTENT[/middle] - аналог CSS align:center;
[right]CONTENT[/right] - аналог CSS align:right;

бр (брейклайн),
Ютуб-видео

Код:
[video]LINK[/video]

и спойлер с зачёркиванием

Код:
[spoiler=TEXT]CONTENT[/spoiler]

ББкод брейклайна

Код:
[br]

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

0

Перевести9

ТакЪ.
Вот тут что подумалось: а ведь у меня каментить могут не только лишь все - мало кто может это делать, ведь для этого придётся регаться...
Обычно же на атких сайтах каментить можно всем - с указанием почты и тд и тп.
Придётся это как-то решать...

И, к тому же, надо капчу приcpать, а также возможность каментить прямо из новости...

Хм...
Думаю пока...

0

Перевести10

Прочистил кэш сайта (он с кэшированием), и заработала даже либа HighSlide.
Отныне все картинки можно смотреть через Хайслайд, что, несомненно, очень удобно.

0

Перевести11

Мысля пришла. Пост будет обновляться.
Делаем вот что:
1) Создаём каталог ./details/modules/
2) Делаем файл, ну допустим, ./portal_news.php  - это будет наша новостная страница, потом переименуем как надо.
3) Из админки выдираем часть кода, который читает каталог админки и подгружает модули админки. Добавляем код в ./portal_news.php  - теперь наш портал умеет в модули.
4) В БД добавляем таблицу phpbb_portal_modules с полями module_name и module_state  - сюда будем через админку портала подключать модули, точно так же, как подключаются шаблоны стилей форума - часть этого кода можно взять оттуда же. Таким мухтаром, будет возможно модули как угодно подключать к порталу, добавлять или удалять.
5) Все модули, буде таковые я добавлю со старого движка - придётся переписать под phpBB2.
6) Шаблоны модулей, однако, придётся хранить там же, где и сами модули, а также стили к ним, если нужны таковые. Впрочем, тут главное назвать шаблон также, как модуль, остальное нетрудно. Либо таки присобачить (если брать код не от админки, а сразу из стилей) шаблонам отдельные папки, тогда вообще легкотня.
7) Из ныне работающего портала вынуть код отдельных модулей и перекукожить его в виде модулей.
8) Тут ещё подумалось, что придётся к каждому модулю, если уж совсем заморачиваться (а придётся!) класть в папку и языковый файл, по умолчанию у меня это русский, и требуемые картинки.

Такая вот загогулина. Написать и то было сложно...
ЗЫ Попробую продумать общую конструкцию.

./details/ - тут у меня сидит движок сайта.
./details/modules/ - сюда буду кидать каталоги модулей.
./details/modules/%module_name%/ - каталог некоего модуля.
./details/modules/%module_name%/%module_name%.cfg - конфигуратор модуля.
./details/modules/%module_name%/css/ - каталог модулевых стилей.
./details/modules/%module_name%/css/%module_name%.css - модулев стиль.
./details/modules/%module_name%/images/ - картинки модуля.
./details/modules/%module_name%/template/ - модулев шаблон.
./details/modules/%module_name%/scripts/ - модулевы скрипты, если таковые будут нужны.

В %module_name%.cfg надо будет прописать что-то типа

Код:
<?
$mod_config = array(
	'name'	=> 'fetcher',// Имя модуля, а также и путь; задаваться будет через конструкт типа $mod_path = $php_root_path . 'details/modules/' . $mod_config['name'] . '/';
	'css'=> 'my_amazing_style',	// Имя каталога CSS; задаваться будет через конструкт типа $mod_lang = $mod_path . 'css/' . $mod_config['css'] . '.css';
	'images'	=> 'pics',	// Имя каталога картинкок; задаваться будет через конструкт типа $mod_pics = $mod_path  . $mod_config['images'] . '/';
	'scripts'	=> 'js',	// Имя каталога скриптов; задаваться будет через конструкт типа $mod_scripts = $mod_path . $mod_config['scripts'] . '/';
	'lang'=> 'texts' 	// Имя каталога текстового файла; задаваться будет через конструкт типа $mod_lang = $php_root_path . 'details/modules/' . $mod_config['name'] . '/lang_{LANG}/' . $mod_config['lang'] . $phpEx;
);
// Конструкты показаны отдельно
$mod_path = $php_root_path . 'details/modules/' . $mod_config['name'] . '/';
$mod_lang = $mod_path . 'css/' . $mod_config['css'] . '.css';
$mod_pics = $mod_path  . $mod_config['images'] . '/';
$mod_scripts = $mod_path . $mod_config['scripts'] . '/';
$mod_lang = $php_root_path . 'details/modules/' . $mod_config['name'] . '/lang_{LANG}/' . $mod_config['lang'] . $phpEx;


// Также, из БД будут прилетать значения положения в портале
# $mod_db_config['state'] - вкл/выкл
# $mod_db_config['col'] - колонка
# $mod_db_config['row'] - ряд

?>

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

+1

Перевести12

Отдохнул и выспался, полез ковыряться дальше. Сплошные расстройства, блин.
Оказывается, я нифига не гений.
Именно так устроен и работает портал phpBB3.
Так как я в прежние годы под такой уже делал модули, но забыл - то, вспомнив, устыдился, что думал, что я типа сам такое придумал  :blush:
Тем не менее, полезняшки оттуда надёргаю, дистрик я уже нашёл и распаковал.
Например, изучаю сейчас, как именно работает БД портала.

0

Перевести13

Из полезностей - например, отдельный каталог у портала, ./portal/includes/, где сидят отдельные constants.php, functions.php и functions_upload.php.
Впрочем, до этого пока не дойдёт, наверное.

0

Перевести14

Накропал на пробу два модуля - фетчер и новостник. Фетчер просто дёргает выделенные темки из указанных в конфиге форумов.
Пока проблема есть - не хочет грузить от них шаблоны сцуко :(

https://i.imgur.com/UrL6qLX.jpg

Строки с путями - это я для контроля повесил.

0

Перевести15

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

Пёс с ним, так работает - и ладно)))

Пикча #1

https://i.imgur.com/KUCUY2w.jpg

А вот я отключил проверочный модуль - и никак и ничего нигде не изменял!
ЗЫ Отключил - в смысле, просто убрал файлы.

Пикча #2

https://i.imgur.com/5pV3Ghu.jpg

То есть, портал сам подхватывает модули, без какого-либо указания или каких бы то ни было телодвижений со стороны меня.
Эту цель я достиг - теперь надо пересобирать фичи портала под модули, а потом я буду писать управление в одминку и включение-выключение через БД, а также буду писать задание положения каждого модуля на странице; сначала через конфиг, потом придумаю, как это реализовать через БД.

+1

Перевести16

Я тут немного отвлекался по своим делам, потому что не срастается мысля.
Также, пока мысля не доварилась в голове, попутно занимаюсь механической работой - меняю ВСЕ переменные типа $HTTP_POST_VARS и $HTTP_GET_VARS на современные $_POST и $_GET, и всё такое прочее.

0

Перевести17

Пост будет обновляться.
Сделал БД, подсмотрел на БД портала phpBB3, упростил до требуемого мне уровня.
Сделал читалку БД для своего тестового портала, проверил на читающие свойства.

Иллюстрации

Дамп БД
https://i.imgur.com/cBoNejp.jpg

Результат чтения БД порталом
https://i.imgur.com/UYDIQq1.jpg

Теперь буду придумывать применение полученным данным.

Пока мысль такая: разделить страницу портала в области применения данных на условные квадраты (или прямоугольники, места - назовите как хотите). Каждый квадрат сгруппирован по три квадрата в высоту на полосы, и верхний широкий прямоугольник для передовицы.
1) Верхний во всю ширину - статья-передовица.
2) Боковые полосы - туда, например, менюшку, календарь и прочая.
3) Средняя широкая полоса - сверху пусть будет некое объявление; на оргинальном сайте таковое присутствует. Потом полоса новостей, нижний квадрат пусть будет модуль галереи - как и на оригинальном сайте. Также, возможно, там будет и голосовалка голая совалка.
Внизу, уже не порталом, подвал мощный, тоже с оригинального сайта по внешнему виду.

Реализация квадратиков-шмадратиков продумывается ниже.
Начну с админки.
Вариант 1: Делаем страничку, в ней описание, какая цифра что означает, потом расставляем цифры модулям. Ну там, например, модуль передовицы это колонка 4 ряд 1 (сверху), модуль новости это колонка 2 место 2.
Вариант 2: Делаем страницу, на ней условные изображения квадратов с именами модулей, "лампочка" сигнализатора вкл/выкл и стрелочки, типа "куда передвинуть". Выбираем куда, включаем-выключаем если надо, жмём подтверждение - данные отлетают в БД, портал при обновлении страницы перераспределяет модули по квадратам.

Второй вариант интуитивно понятнее - но сложнее; пока буду сделать первый вариант, а потом, если приспичит - сделаю второй.

ЗЫ Чот мне кажется, что поле module_classname лишнее. По идее, оно относится, наверное, к дизайну и нам не надо, у нас диз будет без этого.
Видимо, ликвидирую его.

0

Перевести18

Убрал поле module_classname за ненадобностью.
Думается вот что: так как, во-первых, скорее всего, не все модули будут использованы одновременно - можно задать уровень допуска модулям через поле module_group_ids - например, далее будут уровни допуска,
0 - админ
1 - модер
2 - юзер
3 - просто посетитель (гость)
4) - доступно мобильно
Также, думается мне, что при мобильном просмотре некоторые модули вообще не нужны - например, логине-пароле для администрации и тд и тп, с мобилы должно только читаться, а не правиться, бо неудобно, и боты задолбают.
Ставим цифры в БД, портал читает и делает выводы.

ЗЫ Поле переименую в module_access.

Добавлено спустя 15 минут 55 секунд:
Возникла мысль синхронизации БД и каталога с модулями.
Делаем так:
1) Админка читает кол.-во модулей, сверяя их названия из их конфига с БД.
2) Если модуль есть в калатоге и в БД - дуем дальше.
3) Если конфига модуля в каталоге нет, но есть в БД - сносим из БД.
4) Если конфиг есть, но в БД нет - вносим в БД.

И всё это до загрузки шаблона.

Таким мухтаром, мы так и будем иметь подхват модулей без лишних танцев с бубном, но модули будут взаимодействовать с БД.
Надо додумать и реализовать.
Добавлено спустя 20 минут 18 секунд:

Придётся снова курочить БД для этого.
Из конфига модуля будем в БД брать имя модуля, совпадающее с каталогом модуля, имя для портала - по нему портал будет его постить, это что-то типа M_MODULE_NAME, а ур. доступа и положение выставим из админки.
Добавлю в БД поле module_portal_name - именно там и будет сидеть M_MODULE_NAME, а в существующем поле будет что-то типа "fetcher" или "news", или как там каталог с модулем зовётся, сие не суть. Но каталог, по понятным причинам, должен назваться так, чтобы было ясно, что именно там.
Добавлено спустя 29 минут 26 секунд:
Всё, портал это читает:

Картинка

https://i.imgur.com/aeciUeK.jpg

Добавлено спустя 31 минуту 28 секунд:
Теперь в портале надо сделать сверку/сводку на предмет наличия модуля в БД и в каталоге, дабы не пытаться грузить то, чего нет - см. выше про одминку. В портале будет то же самое.

0

Перевести19

Я немного притормозил и подумал, и вот что надумал.
Как мне кажется, и подбор модулей из каталогов и одновременно работа с БД при каждом обращении будет сильно грузить сервак; оно лишь в теории типа модно и красиво.
Я помучал тестовый портал - у меня на Денвере оно и то тупит, притом что комп не самый кислый. Дофига обращений к БД получается - и это притом, что потом ещё будут скрипты на JS и сложный дизайн, а они тоже грузят камень неслабо.
Плюс например одни только модуль новостей делает несколько запросов к БД при обработке каждой новости, а их много...
Надо как-то облегчить нагрузку на сервер. Для этого придётся хотя бы работу с БД самого портала минимизировать.
В общем, надо снимать что-то одно - либо трусы, либо крестик.

Думаю, так надо сделать: подхват модулей из каталогов будет делать админка, делать валидацию и грузить их в БД, в двух вариантах (надо выбрать): либо сразу, либо по нажатию кнопки "Синхронизация модулей портала и БД". Сам портал, и так оно будет логично, будет юзать их уже по конфигу из БД - то есть, он будет брать данные БД, при этом отключенные модули он уже не цепляет, ему осталось лишь дописать "раскадровку", а прочие телодвижения будет делать админка.
Значит, оставляем загрузку конфига портала и "раскадровку" с включением модулей.

Пока так.

0

Перевести20

Надеюсь, Алекс и другие Большие Серьёзные Дядьки таки поглядывают на мои посты тут.
Собственно, пришло понимание, как можно устроить хэштеги на форуме - полагаю, и тут тоже. Но я привык мыслить в стиле phpBB, так и продолжу.
1) Для хэштегов заводим в БД, в таблице phpbb_posts_txt ещё одно текстовое поле varchar(255) для хэштегов. Прописываем его обработку везде, где обрабатывается текст поста, добавляем обработку тегов в bbcode.php, дабы привязывать к тегам идентификаторы и обрабатывать с #hashtag до [hashtag:%tag_id%] и обратно.
Также колхозим обработчик в поиск.
Но это обработчик для форума. Мне же нужен обработчик для новостей - это нечто другое.
2) Для хэштегов, вместе с указанной выше фичей, заводим в БД, таблицу phpbb_hashtags с полями tag_id, post_id, topic_id, user_id, tag_text - таким образом, мы получим возможность быстрее и проще искать по БД любые данные, это облегчит и ускорит поиск информации.
При постинге любой темки, в первом посте можно будет выбрать теги, а потом и отредактировать, при необходимости. При выводе такого поста во фронтэнд мы получим, считай, встроенный готовый, уже нашедшийся поиск, как в блогах типа ЖЖ :)

Только смогу ли я всё это сделать - не знаю...
*чешет бестолковку*

0


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