Очередной неклон хабра

    Почему неклон? Да потому что остальные неклоны тоже неклоны. Даже livestreet в последней версии стал неклоном. А чем мой движок хуже? Ну конечно в нем много общего с хабром, но есть же и свое. Хотя, с тех пор как появилась система расширений, все свое выделено в отдельные расширения, ну да ладно. Спешу вам представить свой движок блогоподобных социальных сетей (с) Envos.Blogs

    image

    Но в отличии от других неклонов, я не собирался делать что-то подобное хабру, и не хабр меня вдохновил. Вдохновил меня мой друг, за бутылочкой пивка после футбольный тренировки. Он предложил написать сайт для нашей футбольной команды, что бы люди заходили и читали объявления о новых матчах и тренировках, и могли регистрироваться. Я написал, но ничего из этой затеи не вышло. Люди не хотели жать на кнопку «приду». Тогда я написал фотогалерею, что бы выкладывать фотографии с тренировок. Потом написал блоги, что бы можно было выкладывать еще и отчеты. Гостевую книгу добавил для общения. И так меня это увлекло, что сам не заметил как получился движок аля хабр.

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

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

    Итак, движок основан на собственном MVC Framevork называемом Envos. Пишу его я уже 5-й год как, с большими и малыми перерывами. Только не надо меня ругать за изобретение очередного велосипеда. Когда я начинал, никаких других нормальных продуктов небыло, да и сейчас заслуживает внимания разве что Yii. Но он то совсем недавно появился (тем не менее некоторые идеи я оттуда уже успел стянуть), ладно, речь не об Envos. Так вот, движок полностью MVC, имеется даже ActiveRecord, валидация, кеширование и прочие вещи. Есть scaffolding, и немножко тестов, основанных на SimpleTest. Как всегда нет главного — документации. Говорю же, времени мало.

    Вообще, в последнее время движок развивается очень быстро. В последнее время разработана система расширений, причем, как мне кажется, достаточно удобная и простая. Есть даже зависимости, это когда одно расширение использует возможности другого, и этого другого нет, или оно не той версии, или просто выключено, все отработает корректно (точнее корректно не отработает). Или вот система тем оформления, с наследованием. Можно создать новый дизайн, с кучей шаблонов, и множество тем расширений, с минимумом оберток и css, где будут перегружены только некоторые шаблоны, а остальные будут браться у родителя.

    Есть еще и инсталлятор, который позволяет поставить движок даже полному ламеру. Есть вход по OpenID, есть фотогалерея, гостевая книга. И есть то, чего нет ни у кого! Это, внимание, модуль футбольных прогнозов! То есть это модуль, который позволяет вести конкурсы прогнозистов, например на игры чемпионата России по футболу. Вы заводите туры, в них добавляете матчи, а пользователи пытаются угадать с каким счетом матч закончится.

    Еще есть модуль «Дискуссии». Суть в том, что можно создать некую тему, которую хочется обсудить, и пригласить туда людей. Тему можно сделать открытую, закрытую и ридонли. Соответственно, в первом случае читать и писать могут все, в втором и читать и писать могут только приглашенные, а в третьем читать могут все, а писать только приглашенные. Но можно попросить приглашения, у автора дискуссии, используя специальную кнопочку.

    Есть в движке и ЧПУ, реализованное по типу того что есть в ZendFramework. Правда не знаю почему, но кода получилось меньше. Хотя работает вроде неплохо.

    Движок умеет сам проверять наличие новой версии, и обновляться (это уже не сам, надо на кнопочку нажать). Вообще, система обновлений хитрая. У неё двойное назначение. Ну во первых это проверка новых версий и непосредственно обновление. Но это еще не все. Этот же скрипт нужен мне для того, что бы вести статистику инсталляций движка. Заодно я раз в сутки забираю RSS ленту. На всякий случай, вдруг у вас там чего интересного пишуть ;) Но не беспокойтесь, вы можете отключить проверку и тогда никаких данных о вас никуда передаваться не будет.

    И еще одна вкусность. Движок можно установить 1 раз в одну директорию, а потом направлять на неё разные домены. И для разных доменов будет свой собственный сайт, со своими настройками, и даже темой оформления. Только пользователи будут общие. Часто на хостинге есть ограничение на количество сайтов. Нельзя иметь доменов, направленных в разные директории больше положенного. С Envos.Blogs проблема решается легко.

    Чего нет? Много чего нет. Что-то просто не нужно, что-то находится в виде работоспособном, но не в том, как было изначально задумано. Например «Дискуссии» не древовидные. Так же нет возможности выделять ветки в отдельные дискуссии (веток то нет), или устраивать голосования по приему новых участников, или изгнанию приглашенных. А ведь все это задумывалось изначально, а не навеяно Google Wave, как вы могли подумать. Но с другой стороны, большой простор для творчества тех, кто вдруг решит мне помогать, ведь практически каждый модуль можно улучшить. Да еще и не поглядывая на хабр. Envos.Blogs же неклон. Не так ли? :)

    Теперь о планах. Ну ближайшие планы можно посмотреть в Google.Code проекта. Насколько быстро эти планы осуществятся, не могу сказать, но, как я уже говорил, проект живет, живет уже полтора года, и энтузиазм пока есть. А если на хабре мой проект примут радушно, то это только добавит стимула. Это типа намек ;)

    Ну и надеюсь, это не последняя моя публикация об Envos.Blogs. В ближайшее время я расскажу как лучше всего установить движок, как его обновлять, как писать к нему модули. Даже если вам не нужен Envos.Blogs, вполне вероятно вас заинтересует то как он сделан, может что-то полезное будет для вас, и наверное что-то для меня.

    Ну и с Новым Годом вас!

    P. S. И вот еще что. Движок должен работать на Windows, но за полную работоспособность я не отвечаю. Например, точно не будет работать инсталятор, и обновление движка. Для фотогалереи нужен будет ImageMagik. У Envos есть механизм абстракции от ОС, но не везде он используется. Со временем платформозависимые штуки будут переписываться, но все равно за Винду я не отвечаю, некогда мне на ней еще тестировать. Да и для чего, только лишь для того что бы дать возможность поиграть движком локально? Юзайте Linux, вообщем :)
    Share post

    Comments 130

    • UFO just landed and posted this here
        0
        в FF 3.5 такие же
          0
          Хм, в хроме еще круче :) А вот в фаерфоксе все нормально выглядит. Поправим, спасибо :)
            +1
            fixed
              0
              На demo.envos.org тоже было бы неплохо поправить.
              +4
              Радикал — зло, картинка уже недоступна.
              • UFO just landed and posted this here
              +10
              Готов ли движок к высоким нагрузкам?
              Как кешируем?
              Сколько запросов к MySQL при открытии главной?
                0
                а вот посоветуйте, чем лучше кешировать?
                  +2
                  По кешированию — в тестах с лайвстритом мемкеш давал примерно 20-30% прироста скорости.
                  Не сочтите зарекламу, но советую взять нормальный ВПС как минимум, у меня щас проекты на фаствпс, всё летает. Там хоть можно настроить систему под себя, LAMP там, все дела :) Сами видите, что сейчас у Вас 503 без намека на восстановление. Если бы хотя бы nginx стоял…
                  Хочу добавить, что просто необходимо провести клиентскую оптимизацию: 10 файлов css, еще больше js — такое допустимо только в дефолтном шаблоне для простоты редактирования, на боевом проекте так нельзя.
                    +1
                    >Хочу добавить, что просто необходимо провести клиентскую оптимизацию: 10 файлов css, еще больше js — такое допустимо только в дефолтном шаблоне для простоты редактирования, на боевом проекте так нельзя.
                      +1
                      Ох уж этот Ctrl+Enter…

                      По поводу клиентской оптимизации — посмотрите сколько js используется на хабре. И ничего — летает ;)
                        +4
                        Я конечно рад за хабру (хотя инногда мы и наблюдаем фразу «Мы скоренько»), но я не считаю его идеалом. Сейчас я в глубинке, и интернет у меня ооочень хиленький — загрузка страничек хабры оставляет желать лучшего в сравнении с некоторыми другими сайтами.
                          –13
                          ну, прикрутят к очередному блогу Web Optimizer и забудут о клиентской оптимизации. Зачем каждый раз все руками делать?
                        0
                        Безусловно.
                    0
                    случайно ентер нажался…
                    чем лучше кешировать? мемкеш на хостинге не досупен пользуюсь файловым, может есть чего получше?
                      –6
                      Переходите ко мне на VDS, за месяц сделаем нормальное кеширование и оптимизацию
                      Будет хоть одна CMS заточенная под хайлоад :)
                        –3
                        Кстати да, хороший вариант если нет интереса самому возится с сервером :)
                        А репутация сама за себя говорит…
                        +1
                        Мне кажется что при создании движка такого типа это один из главных вопросов, который должен возникнуть.
                        +1
                        да что-тако, кто на энтер отправку поставил!!??!?!?
                          0
                          Используется файловое кеширование. Но есть возможность кеширования в мемкеше. SQL запросов на главной 5 при включенном кеше, как сейчас.
                          Вообще движок оптимизировался, но понятно что обычный хостинг хаброэфект мог выдержать только по счастилвой случайности :) В принципе на данный момент проект работает, хоть и со скрипом.
                            0
                            По-настоящему оптимизированый движок на заход в главную анонимного пользователя должен делать 0 запросов, залогиненного — 1.

                            Вобщем мое предложение в силе — VDS бесплатно для движка на месяц.
                              0
                              Эм… а потом? :)
                              VDS это хорошо, там можно еще nginx-ом кешировать и статику раздавать :)
                            0
                            вот вас послушаешь — и кажется что у каждого из посетителей хабра или гугл или фейсбук по нагрузкам.
                            огласите, пожалуйста, статистику по своему самому нагруженному проекту?
                            +1
                            «Service Temporarily Unavailable» вот и всё =)
                              +10
                              Хабр опять победил!
                                –1
                                не успел посмотреть)
                                0
                                Картинки перезалейте :(
                                  +2
                                  хабраэффект :)
                                    0
                                    Красиво излагаете — захотелось потрогать сей продукт :)
                                    По окончании хабраэффекта будем-с изучать.
                                      –9
                                      Движок говно.
                                        +9
                                        Отличный движок.
                                          +3
                                          Я вас не понял =) У вас раздвоение личности? о_О
                                          +7
                                          Вы решили устроить таким образом голосование?
                                          –4
                                          Что я увидел? — «Service Temporarily Unavailable».
                                          А полезного? — Ничего.
                                            0
                                            Вы бы написали, что движок на php — а то не понятно сразу=\
                                              0
                                              Про Zend Engine таки упоминается, да.
                                                0
                                                Ага, в середине статьи.
                                              –1
                                              Service Temporarily Unavailable

                                              The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

                                              ето типа убиваем конкурентов в зародке?
                                                +3
                                                Это типа Хабраэффект, да.
                                                0
                                                Я смог зайти
                                                  0
                                                  Он снова лежит.
                                                    0
                                                    да я когда зашел то дальше главной страницы не ушел, это 3.14…
                                                  0
                                                  сколько ж можно плодить многострадальный хабр? неужели сила мысли не летит дальше этой блог-системы?
                                                  нарекая своё детище «клон хабры» вы обрекаете её на неминуемую смерть, ибо клонов никто не любит.
                                                    0
                                                    и да, «не» ничего не решает :)
                                                      +3
                                                      Автор, по-моему, не раз упомянул, что не пытался делать клон хабра. Что движок является самостоятельным продуктом. Или слова автора уже ничего не значат?

                                                      Автор движка — молодец. Делает все под себя, гибко. Еще бы немсубурно излагал мысли, но если продолжит писать про движок, то, думаю, и это у него получится.
                                                        0
                                                        не нужно делать аналогий или отрицаний принадлежности к хабру. Название топика я прочитал (как думаю и многие) «очередной _клон_ хабра» а не «очередной _неклон_ хабра». К тому же не понятно: что пиарят — движок или готовый продукт?
                                                          +1
                                                          Зачем же быть таким серьезным :)
                                                      0
                                                      «Зарядка: Ох. медленно»
                                                      ржал))
                                                        +3
                                                        ой не туда. простите!
                                                        0
                                                        >Итак, движок основан на собственном MVC Framevork называемом Envos.
                                                        Framework

                                                        было бы неплохо описать требования к данному движку. Судя по всему, это LAMP, но требования по модулям, например, не помешали бы.

                                                        вводить кеширование необходимо, иначе любой хостер тут же отключит сайт при первом же нашествии поисковых ботов. лучше всего вводить кеширование на основе файлов, т.к. мемкеш вряд ли будет установлен на шаред-хостинге. ввести хотя бы данный метод (2 ссылка в гугле по фразе «php кеширование»):
                                                        php.russofile.ru/ru/translate/unsort/caching_5_steps/
                                                          +2
                                                          Могу подсказать шаред хостинг с memcache :)
                                                            0
                                                            Как раз и используется файловое кеширование. Но есть вомзожность и memchache
                                                              0
                                                              В отличии от приведенного выше пример, кешируется у меня не HTML код а данные. Так как вся работа с БД происходит через отдельный слой модели, на этом уровне и происходит кеширование, а в файлах кеша хранятся сериализованные массивы. Во вторых у меня нет времени жизни кеша (не работает пока :)). Кеш живет столько cколько нужно, до тех пор пока данные в БД не изменятся. При этом, сам кеш хрвнится в виде дерева, и при устаревании одного узла, из кеша удаляются и те что ниже. Это похоже на файловую систему. Я об этом писал вот тут, правда там для memcache, но я реализовал то же самое и для файлов. Вообще кеширование выполнено на основе паттерна «Стратегия», и модели пофигу где кешировать, главное подсунуть ей нужную стратегию. А там хоть в параллельном пространстве кешируй :)
                                                              +2
                                                              а вот это уже интересно, автор пишет код хорошо, я некогда в его фреймворке копался. кустомизация обещает быть легкой и быстрой.
                                                                +3
                                                                Сайт лёг :)
                                                                От хабра-эффекта никто не застрахован (С)
                                                                  0
                                                                  Как это никто? Сколько уже статей по защите от подобных эффектов было :)
                                                                    +3
                                                                    Подсказываю идею для стартапа — страхование от хабраэффекта
                                                                      +1
                                                                      govnokod.ru, тот же, хабраэффект вполне выдержал. вообще безо всяких подготовок к нему и кеширования
                                                                        0
                                                                        Хе-хе :) tracert govnokod.ru
                                                                        в итоге попадаем на keyweb.de
                                                                        Выясняем что они занимаются минимум VDS.
                                                                        Признаемся, какие ресурсы у говнокода? ;)

                                                                        envos.org упал только потому что уперся в лимиты хостинга. Обычного хостинга а не VDS и тем более не выделенного сервера :)
                                                                          0
                                                                          шансы уравниваются тем, что никаких оптимизаций не проводилось. код написан так как удобнее, а не как быстрее. безо всяких 100 слоёв кеширования и прочих свистулек.
                                                                            0
                                                                            Я тоже пишу код как удобнее. Преждевременная оптимизация — зло ©
                                                                            Но шансы так не уравниваются, так как между тем VDS что предлагают поминимуму на keyweb и обычным хостингом просто пропасть.
                                                                            И нет никаких 100 слоев кеширования, есть только файловый кеш данных. Причем похоже он не помог а наоборот усложнил дело, видимо израсходовал лимит файловых дескрипторов, так как это обычный хостинг и там лимиты маленькие.
                                                                              0
                                                                              а есть какая-то статистика нагрузки? на ГК, насколько я помню (проект не мой), в пике было около 1200http запросов/сек
                                                                                0
                                                                                Нет, подробной статистики нет. Только аналитикс, который так подробно статистику не показывает. Знаю только что в пике было 1200 хитов в час. Но в это время большую часть времени сервер лежал, и аналитикс понятно дело учел далеко не все хиты. Но повторяю, нельзя сравнивать VDS с 10-ю сайтами на сервере и полгигом оперативы и хостинг с тучей лимитов и кучей сайтов на одном серваке. Это просто несравнимо.
                                                                                  0
                                                                                  Да и вообще, как можно сравнивать два проекта. У ГК на главной 2 простейших SQL запроса. На остальных еще меньше. По сложности проекты просто несравнимы. Как несравнимы ресурсы серверов.
                                                                                    0
                                                                                    откуда дровишки про 2 запроса?
                                                                                      0
                                                                                      1 запрос выбирает категории (С++, PHP… ) 2-й запрос выбирает говнокод текущей категории. Для чего там больше?
                                                                                        0
                                                                                        ахаха, ну да ну да…
                                                                                        это в случае, если бы там была написана лапша from scratch
                                                                                        а тем не менее оно работает на довольно сложном и гибком каркасе, у которого ещё и свои потребности в запросах есть.
                                                                                          0
                                                                                          у меня тоже гибкий и сложный каркас. тут мы квиты)))
                                                                                          0
                                                                                          ну и навскидку: число страниц, конечно же, возьмётся из воздуха. текущий юзер — оттуда же. а ещё из воздуха возьмётся число комментариев которые ты ещё не прочитал в каждом из кодов.
                                                                                          вот так вот навскидку ещё 3 запроса.
                                                                                            0
                                                                                            число страниц это count(). Он считается мгновенно по индексу, при количестве записей меньше миллиона, этот запрос можно не учитывать. Текущий пользователь берется из сессии. Никаких запросов там не нужно. Тем более что большинство пользователей вообще неавторизованы. Количество комментариев считается тем же запросом что и выбирается говнокод. Если руки прямые. конечно.
                                                                                              0
                                                                                              нельзя не учитывать — ты первым начал считать запросы. это запрос? запрос. так что +1

                                                                                              текущий юзер — это такой же объект. в сессии хранится uid, по нему выгребается юзер.
                                                                                              про количество комментариев — перечитай мой коммент. там показываются комментарии в общем и которые не прочитал конкретно ты.

                                                                                              так что +3 запроса.
                                                                                                0
                                                                                                все данные по пользователю у меня хранятся в сессии. Никаких запросов не выполняется. Прочитанные и общие комментарии вычисляются одним запросом. Посторяю, каунт не считаются на сайте меньше тысячи записей. Это что слону дробина. На остальных страницах запросов еще меньше. При этом самих страниц меньше. Короче ты бы еще html страничкой на выделенном сервере померялся)))
                                                                                                  0
                                                                                                  напиши-ка запрос на выборку прочитанных и общих комментов в одном запросе, покажи EXPLAIN и расскажи о плане выполнения? :-)
                                                                                                    0
                                                                                                    причем тут план выполнения? У меня тоже есть сложные запросы. Блин я не понимаю чем мы меряемся. Сайт с 5-ю страницами и проект мультиблогов, да еще и с гостевой, фотогалерей и другим. Да у меня только одна страница собирается из десятка шаблонов. А это файловые операции. Блин это все равно что достоинство комара сравнивать с достоинством слона. :)) Несерьезно, ей богу.
                                                                                                      0
                                                                                                      я не сравниваю. я о том — что ты не в состоянии оценить сложность запроса.
                                                                                                      собственно — твою позицию я понял, спасибо :-)
                                                                                        0
                                                                                        тебе ли не знать, что в любом «универсальном фреймворке» будет ещё тонна всяких служебных и нужных запросов.
                                                                                          0
                                                                                          Не знаю зачем во фреймворке нужны ненужные запросы :) И что там делают служебные. И что вообще такое служебный запрос. У меня таких нет.
                                                                                            0
                                                                                            естественно, в узкоспециализированном продукте будет запросов меньше и они будут только нужные.
                                                                                              0
                                                                                              у кого узкоспециализированный? Envos это полноценный полнофункциональный фреймворк.
                                                                                            0
                                                                                            пардон… нужных запросов… вобщем там нужно 2 запроса. Причем простых.
                                                                                              0
                                                                                              смотрим выше и посыпаем голову пеплом.
                                                                                      0
                                                                                      Кстати, спасибо за наводку на keyweb
                                                                                      Порадовали их тарифы, может быть воспользуюсь
                                                                              • UFO just landed and posted this here
                                                                                  –2
                                                                                  Может не очень весомое замечание, но всё же мне кажется особый стиль для :hover у ссылок не помешает.
                                                                                    0
                                                                                    Вот бы ещё кто на rails сделал бы толковое двигло…
                                                                                      0
                                                                                      radiant наше все :)
                                                                                        0
                                                                                        Вот как раз сейчас этим занимаюсь. github.com/igor-alexandrov/rblog. Но нормальный, рабочий вариант я думаю, будет месяца через 2.
                                                                                        –2
                                                                                        >>Есть в движке и ЧПУ, реализованное по типу того что есть в…
                                                                                        10 раз перечитал пока не полез на Википедию…
                                                                                          +1
                                                                                          Интересно, прикрутят потом кросспостинг в ЖЖ?
                                                                                          Право, очень не помешала бы функция. Указываешь в профиле юзера данные ЖЖшечки, и при отправке записи в блог указываешь галочкой — кросспостинг
                                                                                          Не берусь говорить, что это всеобщеполезная функция, но вот мне, к примеру, такая штукенция не помешала бы.
                                                                                            0
                                                                                            если автор движка реализует работу через xml-rpc, то технически сложностей нет сделать такой функционал.
                                                                                              0
                                                                                              Если бы я был заядлым ЖЖистом то наверное уже сделал бы :) И еще в твитер. Вообщем спасибо за идею. Кстати, если проект будет развиваться, у меня есть мысли по еще более глобальной интеграции его в блогосферу. Но всему свое время ;)
                                                                                                +1
                                                                                                Обращайтесь, если понадобятся какие-то идеи
                                                                                                У меня приятель сделал сайт, а в нем блог. И тоже реализовал позднее идею кросспостинга на основе соответствующего плагина для вордпресса
                                                                                                mywordpress.ru/plugins/ljxp/
                                                                                                После этого прибавилось и юзеров, и, собственно, сообщений на душу населения.
                                                                                                  0
                                                                                                  Если еще идеи появятся, можно их прясо сюда постить. Написанное на хабре может и позабыться :)
                                                                                              0
                                                                                              Пока не буду трогать движок, а вот сам фреймворк поковыряю, спасибо.

                                                                                              ЗЫ. Метод self() в статическом классе Envos порадовал :) Так и представил себе где-нить в его внутренностях вызов типа self::self()…
                                                                                                0
                                                                                                Ну движок является неплохой документацией к фрейморку ;)
                                                                                                  +2
                                                                                                  А почему не ucfirst()?.
                                                                                                  И, насколько я понял, интернационализацию (i18n) Вы не предусматривали?
                                                                                                    0
                                                                                                    Не знал про такую функию. Спасибо :)
                                                                                                    Интернационализация предусмотрена, в том смысле что используется Utf-8, но я не рассчитывал что имена классов будут на русском, а эти методы и используются в дебрях движка для преобразования именно имен классов. Но спасибо за подсказку, исправим :)
                                                                                                      0
                                                                                                      Я имел в виду возможность автоматического перевода «служебных» текстов на указанный в настройках язык. Собственно вопрос возник при прочтении того же класса Utils — там Вы используете строки 'Мб', 'Кб' и т.д., т.е. иностранцы никакого перевода не получат.

                                                                                                      Кстати, а в чем смысл переводить в нижний регистр только первую букву? Почему не strtolower()?
                                                                                                        0
                                                                                                        В будующем все эти тексты вынесутся в языковые файлы. Не стал делать это в первой же версии.

                                                                                                        >Кстати, а в чем смысл переводить в нижний регистр только первую букву?

                                                                                                        Смысл в том что имя класса экшена состоит из двух частей — имя модуля и имя экшена. Если для страницы явно не задано правило роутинга, то используется правило по умолчанию, то есть адрес страницы выглядит как /модуль/экнш/
                                                                                                        Для красоты если имя класа экшена например UserProfile то адрес страницы будет /user/profile/ то есть первые буквы приведутся к нижнему регистру. Но потом по ним надо снова получить имя класса. В данном случае легко. Но что если имя класса UserCommentDel? Тогда сделав strtolower я не смогу получить исходное имя класса обратно, потому что не знаю какая буква была в середине слова в верхнем регистре.

                                                                                                        Как то так :)
                                                                                                          0
                                                                                                          Используйте для разделения подчеркивание и будет Вам щасье :)
                                                                                                            0
                                                                                                            Ненавижу такой стиль именования классов :)
                                                                                                      0
                                                                                                      кстати usfirst есть а lcfirst появилась только в 5.3 :)
                                                                                                  0
                                                                                                  Я что единственный кто попытался этот движок поставить на сервер? o_O Устанавливал через файл-инсталлятор, всё условия подошли, всё чётко встало, БД коннект и вроде всё нормально. Пытаюсь зайти на сам сайт, а мне — Сайт временно недоступен. Попробуйте зайти через 5 минут.

                                                                                                  Так и не понял к чему это вообще? Уже часов 12 вот так и недоступен:)) Автор, так как же увидеть твоё творение?
                                                                                                    0
                                                                                                    Идешь в app/protected/config/production/config.cnf.php и меняешь константу DEBUG_MODE с false на true
                                                                                                    После этого увидишь сообщение об ошибке PHP, вероятно связанный с БД.
                                                                                                    0
                                                                                                    Этот пример создаст файл /app/actions/AccountLoginAction.class.php и запишет туда «балванку» кода. Параметр tpl указывает имя шаблона, на основании которого необходимо cгенерировать новый класс. Шаблоны находятся в поддиректории tpl директории script. Вы можете создавать свои шаблоны в этой директории и указывать их имя с помощью опции tpl. По умолчанию выбирается шаблон с именем default.tpl.


                                                                                                    А где эта директория script?
                                                                                                      0
                                                                                                      Эта документация сильно устарела. Структура директорий с тех пор сильно поменялась. Сейчас директория script называется scaffolding и находится в директории envos
                                                                                                        0
                                                                                                          0
                                                                                                          Спасибо. А свежая документация где-то есть? )
                                                                                                            0
                                                                                                            Нет, к сожалению. Постараюсь восполнить этот пробел статьями на хабр о движке. Ну и, как я уже сказал, сам движок является неплохой документацией, и главное актуальной :)
                                                                                                              0
                                                                                                              Было бы неплохо всё же иметь небольшой набор документации, ну и на худой конец, действительно, статьи с примерами. :)

                                                                                                              Если говорить в общем, то на данный момент у движка есть недостаток — это пока что, надеюсь, не сформированное комьюнити и малое количество модулей. А так-то перспективы вроде есть.

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

                                                                                                              Пока что взгляд обращён на Livestreet как наиболее популярный на мой взгляд, но если к тому времени будут подвижки и у Envos.Blogs, то может быть и его выберу :)
                                                                                                                0
                                                                                                                Дело в том что сама система расширений сделана недавно, а раньше все модули были монолитной частью движка. Именно поэтому расширения всего три, но по сути туда легко можно вынести гостевую, дискуссии и даже админку. Потихоньку буду это делать.
                                                                                                                Насчет документаии, думаю следующее что я напишу, это подробно с примера ми статью о том как написать свой модуль. Кстати это очень просто, ибо есть скаффолдинг, и достаточно в командной строке набрать ./generate --extension=Somename и будет сгенерирован каркас нового экстеншена :)

                                                                                                                Вообще, ИМХО, сильной стороной моего движка является именно Envos. По мне так фреймворк лайвстрита не такой мощный.
                                                                                                                  0
                                                                                                                  Текущий проект мне пишут на Yii, вот потому и мне интересен Envos (какие-то ассоциации всё-таки вызывает :) ). Но тут многое упирается в набор функционала — всё писать или заказывать тоже не хочется. Думаю подобные мысли будет не одного меня посещать. Так что сейчас главное всё же развивать комьюнити, которое и будет писать модули, как это сделано у того же Livestreet'а.

                                                                                                                  Мне вот сейчас показалось, что больше заостряется внимание на Google Code — имхо, лучше на сайт проекта народ перегонять, так больше вероятность люди там останутся и будут что-то общественно-полезное делать. :)

                                                                                                                    0
                                                                                                                    Yii отличный выбор. Сам на нем на работе пишу :) Видимо оттого и ассоциации :)
                                                                                                                      0
                                                                                                                      А как вы смотрите на создание CMS на основе YII? просто пописываю тут иногда в свободное время, и все думаю будет ли толк от этого не только для меня)
                                                                                                                        0
                                                                                                                        Мне кажется толк будет! Очень хорошая и гибкая структура Yii, хорошая документация должны сделать CMS популярной у разработчиков как минимум
                                                                                                                          0
                                                                                                                          Значит буду работать над ней дальше) Спасибо, и удачи вас с вашим проектом)
                                                                                                        –1
                                                                                                        Топик-оправдание прямо: в первых параграфах автор рассказывает не о том, что это за программный продукт, а о том, что этот продукт не похож на Хабрахабр (в некоторых местах встречаются явные противоречия в силу такой манеры изложения).
                                                                                                          0
                                                                                                          привязались вы, движек прекрасно расширяем и можно сделать настоящий «нехабр».
                                                                                                            +1
                                                                                                            Наверное надо было больше смайликов использовать :)
                                                                                                            +1
                                                                                                            Из замеченных минусов:
                                                                                                            1. Нет 404 на постах и не только (юзер получает «редактировать удалить guest» О_о)
                                                                                                            2. На демке Лого не ссылка (не хватает быстрой навигации по темам — те же хлебные крошки)

                                                                                                            Скорость — есть куда оптимизировать (Grade E по YSlow), тот же кеш на стороне клиента картинок, джаваскриптов, хотя б на день ;)
                                                                                                            Так же МЕТА, например, "ENVOS.Blogs — движок мультиблогов — ДискусииДискуссии ", по блогам одинаковые (гугля не любит такого), да и есть какие то проблемы в структуре: по Я 333 страницы в индексе, многих уже нет на сайте (да там нет 404), по Г 186 :)

                                                                                                            Удачи в развитии ;)

                                                                                                              0
                                                                                                              Интересный «неклон». Мне, например, понравился логотип.

                                                                                                              i038.radikal.ru/1001/63/51c9a415a021.jpg
                                                                                                                0
                                                                                                                Честно слово цветовую гамму спер где-то в другом месте :) Наверное там же где и майкрософт :)
                                                                                                                +1
                                                                                                                INSERT INTO messages SET from_id = «1841», to_id =, message = "", sender_ip = «92.126.59.160», senddate = NOW()
                                                                                                                You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' message = "", sender_ip = «my_ip :)», senddate = NOW()' at line 1
                                                                                                                  0
                                                                                                                  вот забавно. Я в одном месте IP изменил, а в другом — нет :)
                                                                                                                    +1
                                                                                                                    fixsed. а как такое удалось получить?
                                                                                                                      +1
                                                                                                                      Отправил пустое сообщение.
                                                                                                                    0
                                                                                                                    В AdminDoUpdateAction есть использование функции shell_exec — думаю неплохо было бы заменить здесь и в других местах, если есть, функционал на более «рискованный». Не думаю, что на всех хостингах она разрешена.
                                                                                                                      0
                                                                                                                      Да, я знаю. Для первой версии делал как проще. Но у Envos есть механизм абстракции от OS, но он еще не сильно развит. Со временем я буду избавляться от таких некросплатформенных мест.

                                                                                                                    Only users with full accounts can post comments. Log in, please.