Некрасивый portal php mod. Модульное программирование на PHP или как написать маленький портал



Я попытаюсь тут разъяснить то, как я подхожу к написанию сайтов, где могут применять подключаемые модули. Пример тому известный скрипт PHPNuke. Как бы не ругали его, подход, примененный в нем, к модульному программированию очень удобен. Но из-за корявости общего кода применять такой скрипт на серьезных сайтах, точнее скажем порталах, с большим количеством посетителей, не рекомендуется. Почему? Скрипт работает медленно, очень большая нагрузка на базу данных. Можно еще очень много чего описать, но это уже материал для другой статьи. Если кому интересно, то в интернете полно описаний этого движка. В «неудобоваримости» PHPNuke я убедился сам. Мой основной проект NVIDIA BIOS Collection в начала базировался на PHPNuke, но постоянные проблемы с хостингом заставили меня начать разработку своей система портала с нуля. Из PHPNuke я взять только суть модулей, все остальное же делал сам. И так для начала. Прежде всего, надо продумать систему каталогов, что и где будет лежать. Вот примерный вариант.

/
/mods/ - каталог для хранения модулей
/img/ - картинки
/include/ - каталог вспомогательных файлов
это что нам сейчас пока надо. Применять блоки и скины мы пока не будем. В моем портале также были другие каталоги
/blocks/ - Тоже своего рода модули, но не выводящие сами информацию, а возвращающие заполненную переменную.
/js/ - каталог для Java скриптов
/theme/ - каталог выбора тем или, грубо говоря, набор скинов для сайта.
/files/ - файлы для скачивания
ну и другие каталоги.

В корневом каталоге храниться всего один файл index.php и вся работа идет через него. Теперь надо решить как будет выглядеть сам сайт. Для нашего примера подойдет наипростейший вариант дизайна, верх сайта, низ сайта, а в середине наша информация из модулей. Для этого в каталоге include создадим два файла top.php и bottom.php, что соответственно будет верхней частью дизайна и нижней частью дизайна.

top.php $PAGE_TITLE width="100%" id="AutoNumber1">

здесь выводится шапка

Меню сайта

- Модуль1
- Модуль2

"; ?>

Предвижу комментарии, где скажут, почему я не вывожу HTML код отдельно, а php отдельно. Я приучил себя к написанию 100% PHP кода, с одной стороны не очень и красиво может выглядеть, но мне так удобнее. Если кто-то хочет писать по-другому, то тут я не советчик. Заметьте переменную $PAGE_TITLE в top.php. В моей реализации вся информация о модулях храниться в базе данных, где помимо имени файла модуля храниться также и его название, которое потом и кладется в $PAGE_TITLE, для вывода его в головок браузера.

bottom.php
"; ?> Также создадим файл конфигурации config.php и положим его в каталог include. config.php Вот примерная схема работы index.php Теперь создадим два файла mod1.php и mod2.php и положим их в каталог mods. mod1.php "; echo "А здесь можно посмотреть на модуль номер 2"; ?> mod2.php "; echo "А здесь можно посмотреть на модуль номер 1"; ?>

Поясню немного вот эту строку

If (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); } В каждый модуль желательно включать такую проверку во избежании вызова файла модуля вне самого index.php. На примере моего портала до вызова модуля у меня идет подключение в базе данных, считывание некоторых глобальных переменных и без них, ни один модуль сам по себе работать не сможет. Так что лучше всего просто запретить вызов модуля напрямую. Вызов модулей в данном случае производится через строку в виде index.php?mod=имя модуля, но тут можно применить и систему ЧПУ. Тогда URL примет вид index.php/имя модуля/

Вот в принципе очень грубая схема реализации модулей. Можно добавить любой модуль, просто положив его в каталог mods/ и придерживаясь общей концепции работы, построить очень сложный сайт. В чем удобства работы? По сути вы отодвигаете от себя основную заботу по натягиванию кода на дизайн. Это делает один раз в index.php. Сам же модуль должен только работать и приносить пользу. Централизация сбора основной информации из базы или конфигурационного файла, глобальные переменные сайта, информация о пользователе и т.д. С другой стороны есть недостатки (хотя при определенном взгляде они не кажутся недостатками), скажем надо четко следить за тем какие имена переменных используются до модуля, чтобы не перезаписать, случайно, их внутри модуля. Один раз у меня такое случилось. После такого случая, я взял для себя за правило называть системные переменные в таком виде $sys_имя переменной. Другой очевидный недостаток это трудность реализации разных вариантов дизайна для разных модулей. Но! Тут есть выход тоже.

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

К примеру, наши простые модули можно модифицировать в таком варианте.

"; echo "А здесь можно посмотреть на модуль номер 2"; include("inc/bottom.php"); ?>

Как делать в данном и конкретном случае решать Вам. Я же просто попытался направить тех, кто начинает писать на php, а может и тех, кто уже пишет, на определенный вариант или стиль программирования.
//www.x-bios.3dgames.ru - Сайт моего портала, но к сожалению он закрыт
//fallenangels.combats.ru - Сайт игрового клана, также полностью построен на модульной системе.

Я попытаюсь тут разъяснить то, как я подхожу к написанию сайтов, где могут применять подключаемые модули. Пример тому известный скрипт PHPNuke. Как бы не ругали его, подход, примененный в нем, к модульному программированию очень удобен. Но из-за корявости общего кода применять такой скрипт на серьезных сайтах, точнее скажем порталах, с большим количеством посетителей, не рекомендуется. Почему? Скрипт работает медленно, очень большая нагрузка на базу данных. Можно еще очень много чего описать, но это уже материал для другой статьи. Если кому интересно, то в интернете полно описаний этого движка. В PHPNuke я убедился сам. Мой основной проект NVIDIA BIOS Collection в начала базировался на PHPNuke, но постоянные проблемы с хостингом заставили меня начать разработку своей система портала с нуля. Из PHPNuke я взять только суть модулей, все остальное же делал сам. И так для начала. Прежде всего, надо продумать систему каталогов, что и где будет лежать. Вот примерный вариант.

/mods/ - каталог для хранения модулей
/img/ - картинки
/include/ - каталог вспомогательных файлов
Это что нам сейчас пока надо. Применять блоки и скины мы пока не будем. В моем портале также были другие каталоги

/blocks/ - Тоже своего рода модули, но не выводящие сами информацию, а возвращающие заполненную переменную.
/js/ - каталог для Java скриптов
/theme/ - каталог выбора тем или, грубо говоря, набор скинов для сайта.
/files/ - файлы для скачивания
ну и другие каталоги.

В корневом каталоге храниться всего один файл index.php и вся работа идет через него. Теперь надо решить как будет выглядеть сам сайт. Для нашего примера подойдет наипростейший вариант дизайна, верх сайта, низ сайта, а в середине наша информация из модулей. Для этого в каталоге include создадим два файла top.php и bottom.php, что соответственно будет верхней частью дизайна и нижней частью дизайна.

Echo "< html> < head> < meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> < title>$PAGE_TITLE< /title> < /head> < body> < table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> < tr> < td width="100%" colspan="2" bgcolor="#DDFFFF"> < p align="center">здесь выводится шапка< /td> < /tr> < tr> < td width="17%" align="left" valign="top" bgcolor="#FFDFFF"> < b>Меню сайта< /b>< p> < b>- < /b>< a href="index.php?mod=mod1">Модуль1< /a> < br> - < a href="index.php?mod=mod2">Модуль2< /a>< /td> < td width="83%" align="left" valign="top">";

Предвижу комментарии, где скажут, почему я не вывожу HTML код отдельно, а php отдельно. Я приучил себя к написанию 100% PHP кода, с одной стороны не очень и красиво может выглядеть, но мне так удобнее. Если кто-то хочет писать по-другому, то тут я не советчик. Заметьте переменную $PAGE_TITLE в top.php. В моей реализации вся информация о модулях храниться в базе данных, где помимо имени файла модуля храниться также и его название, которое потом и кладется в $PAGE_TITLE, для вывода его в головок браузера.

Echo "< /td> < /tr> < tr> < td width="100%" align="left" valign="top" colspan="2" bgcolor="#DDFFFF"> < /td> < /tr> < /table> < /body> < /html>";

Также создадим файл конфигурации config.php и положим его в каталог include.

#Модуль по умолчанию $sys_def_mod="mod1";

Вот примерная схема работы index.php

Include("inc/config.php"); if (!isset($mod) || ($mod=="") || (!file_exists ("mods/$mod.php"))) { $mod=$sys_def_mod; #Проверка на существование переменной $mod, и существования такого модуля # если неверное условие то присваиваем ему значением модуля по умолчанию } $PAGE_TITLE="Модуль $mod"; include("inc/top.php"); include("inc/$mod.php"); include("inc/bottom.php");

Теперь создадим два файла mod1.php и mod2.php и положим их в каталог mods.

If (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); } echo "Это модуль номер 1!< br>"; echo "А < a href="index.php?mod=mod2">здесь< /a> можно посмотреть на модуль номер 2";

If (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); } echo "Это модуль номер 2!< br>"; echo "А < a href="index.php?mod=mod1">здесь< /a> можно посмотреть на модуль номер 1";

Поясню немного вот эту строку

If (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }

В каждый модуль желательно включать такую проверку во избежании вызова файла модуля вне самого index.php. На примере моего портала до вызова модуля у меня идет подключение в базе данных, считывание некоторых глобальных переменных и без них, ни один модуль сам по себе работать не сможет. Так что лучше всего просто запретить вызов модуля напрямую. Вызов модулей в данном случае производится через строку в виде index.php?mod=имя модуля, но тут можно применить и систему ЧПУ. Тогда URL примет вид index.php/имя модуля/

Вот в принципе очень грубая схема реализации модулей. Можно добавить любой модуль, просто положив его в каталог mods/ и придерживаясь общей концепции работы, построить очень сложный сайт. В чем удобства работы? По сути вы отодвигаете от себя основную заботу по натягиванию кода на дизайн. Это делает один раз в index.php. Сам же модуль должен только работать и приносить пользу. Централизация сбора основной информации из базы или конфигурационного файла, глобальные переменные сайта, информация о пользователе и т.д. С другой стороны есть недостатки (хотя при определенном взгляде они не кажутся недостатками), скажем надо четко следить за тем какие имена переменных используются до модуля, чтобы не перезаписать, случайно, их внутри модуля. Один раз у меня такое случилось. После такого случая, я взял для себя за правило называть системные переменные в таком виде $sys_имя переменной. Другой очевидный недостаток это трудность реализации разных вариантов дизайна для разных модулей. Но! Тут есть выход тоже.

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

К примеру, наши простые модули можно модифицировать в таком варианте.

If (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); } $PAGE_TITLE="Это Я, модуль номер 1!!!"; include("inc/top.php"); echo "Это модуль номер 1!< br>"; echo "А < a href="index.php?mod=mod2">здесь< /a> можно посмотреть на модуль номер 2"; include("inc/bottom.php");

3.6K

Я попытаюсь тут разъяснить то, как я подхожу к написанию сайтов, где могут применять подключаемые модули. Пример тому известный скрипт PHPNuke. Как бы не ругали его, подход, примененный в нем, к модульному программированию очень удобен. Но из-за корявости общего кода применять такой скрипт на серьезных сайтах, точнее скажем порталах, с большим количеством посетителей, не рекомендуется. Почему? Скрипт работает медленно, очень большая нагрузка на базу данных. Можно еще очень много чего описать, но это уже материал для другой статьи. Если кому интересно, то в интернете полно описаний этого движка. В <неудобоваримости> PHPNuke я убедился сам. Мой основной проект NVIDIA BIOS Collection в начала базировался на PHPNuke, но постоянные проблемы с хостингом заставили меня начать разработку своей система портала с нуля. Из PHPNuke я взять только суть модулей, все остальное же делал сам. И так для начала. Прежде всего, надо продумать систему каталогов, что и где будет лежать. Вот примерный вариант.

* /mods/ — каталог для хранения модулей
* /img/ — картинки
* /include/ — каталог вспомогательных файлов

Это что нам сейчас пока надо. Применять блоки и скины мы пока не будем. В моем портале также были другие каталоги

* /blocks/ — Тоже своего рода модули, но не выводящие сами информацию, а возвращающие заполненную переменную.
* /js/ — каталог для Java скриптов
* /theme/ — каталог выбора тем или, грубо говоря, набор скинов для сайта.
* /files/ — файлы для скачивания

ну и другие каталоги.

В корневом каталоге храниться всего один файл index.php и вся работа идет через него. Теперь надо решить как будет выглядеть сам сайт. Для нашего примера подойдет наипростейший вариант дизайна, верх сайта, низ сайта, а в середине наша информация из модулей. Для этого в каталоге include создадим два файла top.php и bottom.php, что соответственно будет верхней частью дизайна и нижней частью дизайна.

$PAGE_TITLE

здесь выводится шапка

Меню сайта

- Модуль1
- Модуль2

"; ?>

Предвижу комментарии, где скажут, почему я не вывожу HTML код отдельно, а php отдельно. Я приучил себя к написанию 100% PHP кода, с одной стороны не очень и красиво может выглядеть, но мне так удобнее. Если кто-то хочет писать по-другому, то тут я не советчик. Заметьте переменную $PAGE_TITLE в top.php. В моей реализации вся информация о модулях храниться в базе данных, где помимо имени файла модуля храниться также и его название, которое потом и кладется в $PAGE_TITLE, для вывода его в головок браузера.

"; ?>

Также создадим файл конфигурации config.php и положим его в каталог include.

Вот примерная схема работы index.php

Теперь создадим два файла mod1.php и mod2.php и положим их в каталог mods.

"; echo "А здесь можно посмотреть на модуль номер 2"; ?> mod2.php "; echo "А здесь можно посмотреть на модуль номер 1"; ?>

Поясню немного вот эту строку

if (!eregi("index.php", $PHP_SELF)) { die ("Access denied"); }

В каждый модуль желательно включать такую проверку во избежании вызова файла модуля вне самого index.php. На примере моего портала до вызова модуля у меня идет подключение в базе данных, считывание некоторых глобальных переменных и без них, ни один модуль сам по себе работать не сможет. Так что лучше всего просто запретить вызов модуля напрямую. Вызов модулей в данном случае производится через строку в виде index.php?mod=имя модуля, но тут можно применить и систему ЧПУ. Тогда URL примет вид index.php/имя модуля/

Вот в принципе очень грубая схема реализации модулей. Можно добавить любой модуль, просто положив его в каталог mods/ и придерживаясь общей концепции работы, построить очень сложный сайт. В чем удобства работы? По сути вы отодвигаете от себя основную заботу по натягиванию кода на дизайн. Это делает один раз в index.php. Сам же модуль должен только работать и приносить пользу. Централизация сбора основной информации из базы или конфигурационного файла, глобальные переменные сайта, информация о пользователе и т.д. С другой стороны есть недостатки (хотя при определенном взгляде они не кажутся недостатками), скажем надо четко следить за тем какие имена переменных используются до модуля, чтобы не перезаписать, случайно, их внутри модуля. Один раз у меня такое случилось. После такого случая, я взял для себя за правило называть системные переменные в таком виде $sys_имя переменной. Другой очевидный недостаток это трудность реализации разных вариантов дизайна для разных модулей. Но! Тут есть выход тоже.

Фишки мода:
- "Свободная Игра/Фриплей"
После первого завершения игры вы появляетесь у ЧАЭС и можете попробовать любую другую концовку игры. Если вы дойдете до О-Сознания и откажетесь присоединяться, то вас упакуют в грузовик мертвых и отправят на ранние локации. После этого появится возможность вступить во все фракции, вступить в них можно поговорив с Сидоровичем на Кородоне.

Заметка: Когда вы попадете на ЧАЭС после прохождения выброса не будет, поэтому можно спокойно исследовать территорию ЧАЭС, но там не будет людей, только монстры. (Нужно начать новую игру или загрузить сохраненную игру перед Припятью)

ПС: Каждый раз как вы будете просыпаться, вы будете видеть новый сон, случайно выбранный.

Заметка: Если хотите увидеть Стадион, идите к главному входу и поверните на лево или направо, где сможете перелезть через ограждение.
- "Выбросы".

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

ПС: Я добавил просмотр, когда вы начинаете новую игру и через 5 минут начинается выброс, которым вы можете насладиться в полной мере
- "Вступить в любую группировку" (Монолит, Военные, Свобода, Долг, Бандиты, Экологи, Наемники и Свобода)

Да вы можете вступить в любую фракцию, но нет нужды вступить в Долг или Свободу таким способом, так как для них существуют специальные квесты для вступления.

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

К примеру, если вы вступите в Монолит, то получите кромешный ад в большинстве уровней, но на радаре и ЧАЭС получите помощь от Монолита, тоже касается и Военных, но на последнем уровне Военных не будет, только монолитовцы.

Чтобы вступить в фракцию нужно иметь достаточно количество денег (10-50к)
- "Восстановление отношения с фракцией" и Выход их фракции
Если у вас возникают подобные проблемы идите к Сидоровичу.

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

Некоторые из настраиваемых функций: вступление в другие фракции, время ужаса, выбросы и т.д.

Это не просто спаун новых мутантов, это и особый специальный эффект, зависящий от уровня. Некоторые монстры могу появиться совсем рядом с вами, об этом вы узнаете, усшылав леденящие душу их вопли.
- Активация артифактов, с уникальными текстурами и звуками.
- Артифакт починки (Зарядки)

Соответствует своему названию, чинит оружие (87%) и броню (90%), спасибо "Frag Maniac (AKA >Omen< " за идею. Я не стал делать 100% починку, так как это сделало бы бессмысленным починку у торговцев.

Телевидение Зоны - ящик теперь показывает забавные картинки, смотрите на скриншотах.

ПС: Там есть и множество других клевых картинок, но пусть это будет для вас сюрпризом)

Брать деньги у НПС, так вы можете покупать больше оружия, если начнете новую игру. Я думаю это честно, так как увелично количество монстров и а-лайф более жесткий!

Заметка: В зависомости от ранга и случайности сталкеры могут иметь при себе больше денег.

Более жестокий а-лайф (может быть не совместим с другими модами, меняющими алайф, так как это и есть модификатор а-лайфа), первая версия а-лайфа уже была довольно жестока и вы можете выполнять ВСЕ квесты.

Больое исправление: исправлен спаун мутантов, НПС могут атаковать их.

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

- "Новые НПС" (смотрите скрины) и лучшее вооружение с начала, теперь они могут сражаться с мутантами, а не только быть мясом (нужно начинать новую игру).

Пси-пес в Припяти и других уровнях.

- "Чорный бОлт" - Болт-Артефакт, смертельное оружие на короткой дистанции, но вам понадобиться хорошая защита от его радиации.

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

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

Мод Сна, теперь вам не надо бояться умереть во время сна от голода.

Все брони подправлены и Экзо-брони позволяют нести дополнительный вес и позволяют бегать. Существует порядка 40 Экзо-броней переделанных для приборов ночного видения и поднятия дополнительного веса.

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

Переделана система погоды, теперь она более ясная в Припяти и ЧАЭС, также увеличена случайность погоды, молнии во время грозы бывают очень часто.

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

Добавлен торговец в Припяти.

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

Больше физических объктов.

3 вида ножа - вы появляетесь со старым ножом, у торговцев можно купить два новые.

Заметка: Чтобы поменять нож продайте свой старый и купите новый либо бросьте активный нож на замлю и подберите другой, который хотите взять в руку. Если вы бросите активный нож и попробуете переместить другой нож в инвентаре, это приведет к вылету из игры.

Вы можете купить улучшенные детекторы у торговца.
- Вы начинаете новую игру с улучшенным оружием, пистолет Вальтер, множеством патронов, научной аптечкой, антирадом, 2 гранатами и ножом.
- Добавлено больше нового оружия, 2 автоматических пистолета: Вальтер и Беретта. Более уникальные модификации старых оружий: Супер Гаусс, Пистолет Гаусса, Zone ТР301 (модификация ЛР300 - другие текстуры и особенности), два автомата MP5 (Золотой и MP5 модифицированный)
- Кровопускание подправлено
- Добавлена гармошка всем Сталкерам, я бы добавил еще, но не могу найти музыку для них.
- Отношения группировок подправлены
- остальные незначительные правки багов и баланса
- Все остальные фичи из первой части моего мода.
Перевод by belkien
Осуждение мода

Manual Install Instructions for SMF 1.0 RC1 1.0 RC2 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.1 Beta 3 Public 1.1 RC1 1.1 RC2 1.1 RC3 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.20 1.1.21 2.0 Beta 3 Public 2.0 Beta 3.1 Public 2.0 Beta 4 2.0 RC1 2.0 RC1-1 2.0 RC1.2 2.0 RC2 2.0 RC3 2.0 RC4 2.0 RC4 Security Patch 2.0 RC5 2.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.1 Beta 1 2.1 Beta 2 2.1 Beta 3 2.1 RC1 2.1 RC2

Description:

PortaMx v1.54 with a full featured Category / Article management
and Search Engine Friendly url"s (SEF) option and ECL option for SMF 2

PortaMx have many features like a Category and Articles Management and a option for Search Engine Friendly url"s. We use the SMF Integrations hooks extensive, so we need over 50% less changes on the SMF files. All basic files like the function for the Integration, caching and the SEF module (if enabled) are loaded automatically on SMF startup. All the additional Menus and functions also created with SMF hooks.

Because we continue the PortaMx philosophy to make the portal better and faster, we use extensive caching for all the new features. So it"s recommended, to enable the caching in SMF. Of course works all without caching, but not so fast.

The new Category / Article system is high configurable in all options like access inherit and visualization. Follow setup options we have:

  • The first Article is shown and all other Articles in the Category are linked in a sidebar.
  • All Articles shown in one page with paginating.
  • Inherit the access right from a Category to the Articles in it, so it"s easy to handle the rights (simple give the articles no rights). This suppressed also, that the Article itself can be requested.
  • Categories and Articles can be used as static elements on the Front page (Category / Article blocks).
  • Both can requested in the same way as a Single page request (cat=category-name, art=article-name).
We have expanded the overview screen (Blocks, Articles and Categories Manager) with new settings elements, they works in a Pop up window. With this it"s easy and fast to change the most important settings, like title, position, access and more. You can update a single Block or all Blocks in the Panel.
Also we expand and redesign the dynamic visibility option, specially the customer actions. These have now logical AND and OR functionality, can handle any request type and also sub actions like action=pm;sa=send. For this we will create a separate documentation.

Many users asked us, to add Search Engine Friendly url"s to the Portal and so we do that in this release. The SEF module that we created is based on SimpleSEF, but completely rewritten. We create easy and "speeking" url"s (without comma) in the format, which is proposed by Google.
Of course we have implemented all the Url"s they used for the Portal like Single pages, Categories and Articles. The SEF module have various settings, but normaly you can use the default settings without any change. Furthermore we also can convert url"s, they created by SimpleSEF, like board_## and topic_##.

Finally we give the Portal his own Right Management.
With this you can give any SMF group the rights to create, edit and delete own Articles, a group to moderate Articles and a group to moderate the Blocks in enabled Panels. At least you can give a SMF group Portal Administrator rights. This group have full access to ALL Portal functions (except update), but NO access to any SMF Administrator functions. All these function are linked in the users Profile menu.

PortaMx Administration Center

PortaMx Language Manager

BIB technology sample - free positioned blocks

BIB technology sample - YUI blocks with caching