За последние 24 часа нас посетили 18319 программистов и 1634 робота. Сейчас ищут 1668 программистов ...

Explay CMS - бесплатная система управления соц. сетями

Тема в разделе "Решения, алгоритмы", создана пользователем lauri, 28 авг 2009.

  1. lauri

    lauri Активный пользователь

    С нами с:
    28 авг 2009
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Доброе время суток! Позвольте я расскажу о своей бесплатной системе управления соц. сетями и блого-социальными сообществами - Explay CMS. CMS распространяется под лицензией GNU GPL 3 версии.

    Немного характеристик:
    - коллективные блоги
    - фотоальбомы
    - внутренняя почта
    - система комментариев
    - система рейтингов
    - возможность заводить друзей
    - лента друзей (как В Контакте)
    - панель администратора

    Т.к. это форум прогаммистов, то немного о технических характеристиках.
    Пару месяцев назад выпустил 3 версию, написанную с нуля, с использованием всех прелестей PHP 5 и не только (UTF-8, MySQL InnoDB, MVC, ORM, XML, AJAX, XSLT, правильное кеширование). Отличительная особенность моей CMS - это дружелюбность к разработчикам. Благодаря ORM (http://ru.wikipedia.org/wiki/ORM) (при учете, что архитектура CMS построена по принципу MVC) разработка нового функционала (модулей) максимально проста. Для решения 90% задач используется API ядра системы, поэтому разработчику даже не нужно знать SQL. XSLT-шаблоны дают верстальщику настоящую независимость от PHP-разработчика, поскольку результат работы модулей - это только данные в виде XML.

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

    Сейчас я пытаюсь сформировать сообщество разработчиков и пользователей Explay CMS (http://explay.su). Существует документация и FAQ, а все интересующие Вас вопросы Вы можете задать в блогах на сайте или лично мне.

    Все сборки выкладываются на Гугл Коде:
    http://code.google.com/p/explay-cms/downloads/list
    Там же находится и SVN проекта (только он не обновлялся где-то месяц, все руки никак не доходят).

    Спасибо за внимание :)
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    прикольно. Я как-то пару раз на гуглокоде видел эту CMS.

    Сразу доку по этой вашей реализации ORM можно?
    Не люблю XSLT. Сложно это ((.

    Для создания простых страничек она пригодна? Как там с ЧПУ дела обстоят? Какова степень их "произвольности"?
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    дее

    PHP:
    1.     public public function __call ($method, $params) {
    2.         if (!isset (self::$subMethods[$this->moduleName][$method])) {
    3.             throw new NotFound;
    4.         }
    5.        
    6.         $className = self::$subMethods[$this->moduleName][$method];
    7.        
    8.         $oRefMethod = new ReflectionMethod ($className, $method);
    9.         if (!$oRefMethod->isPublic() || $oRefMethod->isStatic()) {
    10.             throw new NotFound;
    11.         }
    12.        
    13.         $sParams = '';
    14.         $cntParams = count ($params);
    15.        
    16.         for ($i = 0; $i < $cntParams; ++$i) {
    17.             $sParams .= '$params[' . $i . ']';
    18.             if ($i != $cntParams - 1) {
    19.                 $sParams .= ', ';
    20.             }
    21.         }
    22.        
    23.         eval ('$response = self::$subObjects[$this->moduleName][\'' . $className . '\']->' . $method . ' (' . $sParams . ');');
    24.         return $response;
    25.     }
    пцц =)
    http://explay.su/
    это при посещаемости в 10 человек
     
  4. lauri

    lauri Активный пользователь

    С нами с:
    28 авг 2009
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Koc, XSLT не намного сложнее HTML, документация на explay.su есть, для создания простых страничек не пригодна, а производительность нормальная при включеном кешировании.

    Mr.M.I.T., такой __call для "множественного наследования" в модулях :)

    Насчет производительности: CMS расчитана на то, что данные будут очень часто меняться и изменения должны показываться сразу, поэтому она довольно требовательна к ресурсам. Встроенное кеширование сильно помогает, но на explay.su его не включить, т.к. на хостинге нет ни memcached, ни eaccelerator.
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    я имел ввиду eval, там ещё много где есть

    а 55 запросов к базе,
    это даже немного грустно
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    когда там будет тыщь 100 хостов, онаж загнётся
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Mr.M.I.T.
    есть страница, на которой 11 запросов. Может просто кеширование не включено?

    lauri
    ткни же меня в мордой в документацию по ORM. Ей богу, пролистал всю: ORM'овскую не нашел.
    Ваще это тоже самое, что и liveStreet?

    Ваще конечно http://explay.su/documentation/classes/ ... oller.html - просто ржач. Несерьезно как-то даже. Какая от него польза по сравнению с mysql_query, mysql_numrows и тд?
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Koc
    кеширование спасает до поры до времени
     
  9. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    По моему, там не ORM, а AR в простом виде, то есть обёртка над стандартными функциями + плюшки. Или я путаю чего?
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  11. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    оттуда:
    такие заявления ведут к дыркам в безопасности. mysql_real_escape_string - функция для безопасного экранирования строки в запросе именно для это базы, учитывает все ньюансы ее. Рекомендовать addslashes - идиотизм.
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я тоже не понял. Че меняет UTF-8 или cp1251?
     
  13. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    antonn
    ну она корректно работает при utf, поэтому заявление имеет право быть
     
  14. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    дело в том, что "она корректно работает на такой версии мускла с УТФ". Правильнее пользоваться документированными функциями самого объекта (будь то мускл, или другое расширение), т.к. они выполняют свою роль не зависимо от изменений в версиях продукта, и всегда корректно - они для этого созданы.
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  16. di

    di Активный пользователь

    С нами с:
    23 сен 2010
    Сообщения:
    1
    Симпатии:
    0
    Никак не могу найти, куда бы вставить код вида:
    <?php print file_get_contents('http://www.ya.ru'); ?>
    Нужно, чтоб выводился некий текст в заданных местах на сайте, текст нужно получить с удаленного сервера. Подскажите пожалуйста, если кто сталкивался.