Giter VIP home page Giter VIP logo

kodicms-laravel's Introduction

KodiCMS | English Version

Официальный сайт | Канал на Youtube | Форум

KodiCMS основана на базе Kohana framework.

Kohana - фреймворк для создания web приложений. Вы можете создавать собственные модули, плагины в полном объеме используя инструменты фреймворка.

Ключевые особенности

  • Ядро на базе Kohana framework
  • Backend UI на базе Twitter Bootstrap 3.2.0 и темы PixelAdmin
  • Расширение при помощи плагинов
  • Модульность
  • Использование Observer для расширения базового функционала
  • Неограниченный уровень страниц
  • Высокая скорость работы
  • Обработка ошибочных URL. (Если посетитель допустил ошибку URL, скорее всего он не получит в ответ: Страница не найдена)
  • Виджеты
  • Файловый менеджер elFinder
  • Визуальный редактор Ace
  • Разграничение прав для пользователей (ACL)
  • Интеграция с соц. сетями
  • Почтовые шаблоны и события для почовых уведомлений
  • Запуск задач по расписанию
  • Удобный инсталлятор
  • API
  • Простота разработки
  • Возможность выбрать место хранения кеша (file, sqlite, apc, memcache, mongodb)
  • Возможность выбора места хранения сессии (native, cookie, database)

Демо сайт

http://demo.kodicms.ru/

Admin: http://demo.kodicms.ru/backend

Login: demo / Password: demodemo

Форум

http://www.kodicms.ru/forum.html

Требования

  • Apache server with .htaccess либо NGINX
  • PHP 5.3.3 (или более новая)
  • MySQL (и доступ к управлению данными)

Установка

  1. Скачайте файлы KodiCMS:

  2. Разместите файлы на вашем web-сервере.

    При установке сайта не в корневую директорию, необходимо в двух местах внести изменения. В файлах:

    • .htaccess => RewriteBase /subfolder/
    • cms\app\bootstrap.php => Kohana::init( array( 'base_url' => '/subfolder/', ... ) );
  3. Перед установкой необходимо удалить, либо очистить содержимое файла config.php, если он имеется в корне сайта. Также необходимо установить права на запись и чтение для следующих папок:

    • cms/storage/
    • layouts
    • snippets
    • public

    Через консоль можно сделать с помощью команды chmod -R a+rwx ..., например chmod -R a+rwx cms/storage

  4. Откройте главную страницу через браузер. Запустится процесс интсалляции системы.

    Если возникла ошибка ErrorException [ 2 ]: date() [function.date]: It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. ....
    В cms/app/bootstrap.php есть строка date_default_timezone_set( 'UTC' ), необходимо ее разкомментировать. Доступные временные зоны

    Если возникла ошибка Call to a member function load() on a non-object in cms/application/classes/config.php on line 16
    Необходимо выполнить пункт 3.

    Если возникла ошибка Fatal error: Undefined class constant Log::EMERGENCY in /cms/system/classes/kohana/kohana/exception.php on line 140
    Версия PHP ниже 5.3

  5. Заполните все необходимые поля и нажмите кнопку "Установить".

  6. После установки системы вы окажетесь на странице авторизации, где будет указан ваш логин и пароль для входа в систему.

Установка через Cli (Консоль)

KodiCMS можно установить через консоль. Для установки используется модуль Minion

  1. Перед установкой необходимо удалить файл config.php, если он имеется в корне сайта

  2. Перейти в корень папки kodicms

  3. выполнить команду php minion --task=install.

Полный набор параметров можно посмотреть через help php minion --task=install --help

Пример конфигурации для Nginx

server{
	listen 127.0.0.1:80;
	server_name   example.com www.example.com;
	
	# PublicRoot нашего сайта
	root          /srv/http/example.com/public_html;
	index         index.php;
	
	# Устанавливаем пути к логам
	# Для access_log делаем буферизацию
	access_log    /srv/http/example.com/logs/access.log main buffer=50k;
	error_log     /srv/http/example.com/logs/error.log;
	
	charset       utf8;
	autoindex     off;

	location / {
		if (!-f $request_filename) {
			rewrite ^/(.*)$ /index.php;
		}
	}

	# Подключаем обработчик php-fpm
	location ~ \.php$ {
	
		# Этой строкой мы указываем,
		# что текущий location можно использовать
		# только для внутренних запросов
		# Тем самым запрещаем обработку всех php файлов,
		# для которых не создан location
		internal;
		
		# php-fpm. Подключение через сокет.
		fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
		# или fastcgi_pass   127.0.0.1:9000;
		fastcgi_param   KOHANA_ENV development;
		# или fastcgi_param   KOHANA_ENV production;
		fastcgi_index  index.php;
		fastcgi_param  DOCUMENT_ROOT  /srv/http/oskmedia/public_html;
		fastcgi_param  SCRIPT_FILENAME  /srv/http/oskmedia/public_html$fastcgi_script_name;
		include fastcgi_params;
	}

	# Блокируем доступ извне, к файлам и папкам:
		# таким как .htaccess
		location ~ /\.ht {
			deny all;
			return 404;
		}

		# а также каталогов .git, .svn
		location ~.(git|svn) {
        	deny  all;
            return 404;
        }


}

Баг трекер

Если у вас возникли проблемы во время использования CMS, сообщайте их на баг трекер. https://github.com/butschster/kodicms/issues

Copyright and license

KodiCMS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

KodiCMS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with KodiCMS. If not, see http://www.gnu.org/licenses/.

KodiCMS has made an exception to the GNU General Public License for plugins. See exception.txt for details and the full text.

Copyright 2014 Buchnev Pavel [email protected].

kodicms-laravel's People

Contributors

butochnikov avatar butschster avatar dn23rus avatar freepad avatar gitter-badger avatar greabock avatar mungurs avatar nelind avatar nhtua avatar sleeping-owl avatar symbios-zi avatar teodorsandu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kodicms-laravel's Issues

Замена Service на Repository

Сейчас для создания и обновления записей используется Service, Необходимо переделать на Repository

Widgets zone as template, page parts based on template?

hi, I think the your widgets approach is great, very powerful and flexible. However not EVERY page need that flexibility. People expect to enter data immediatelly into a page, based on a template. Imagine an entry blog -an article- all articles would have a title, slug,breadcrumb title, content(body), summary and some widgets activated. But the widgets would be the same for all of them. I'd suggest to move the widgets zone
widgets zone to template
to a new Design category named like Templates. Each template will have to implement some Layout (currently only normal.blade) (with/without left/right sidebar, 3 columns etc).
Then each type of page (Blog type, or News type) will have the page parts known and ready to be filled in, based on template which implements. Look at how other CMS does that:
2015-08-09_215954
(instead of "Add page part" button add page part)

The "Settings" tab is:
2015-08-14_120704
which shows the template used to implement this page.
Of course, the template must be declared at the creation of the page:
new article
to know beforehand which fields must be available for fill in when editing(creating) the page.

So the central point would be creating content for the pages.
A page would:

  • implements a template -> who implements a layout
  • uses widgets + page parts (fields) declared in template (currently the page parts are added after widgets). The widgets uses snippets (and/or Sections?).

Upload user avatar

Необходимо реализовать загрузку аватара для пользователя

Система уведомлений (Notification system)

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

How do I change locale?

screenshot from 2015-06-24 22 52 54
After install follow steps of README.md, the cms can run but Interface display translation key instead of text in RU or EN. I had run command:
$ php artisan cms:modules:locale:publish
$ php artisan cms:modules:locale:publish --locale=ru
$ php artisan cms:modules:locale:publish --locale=en

and change local in config/app.php but the problem not solved.

Problems installing kodicms

Hi,

On a fresh install of kodicms I used:

git clone https://github.com/KodiCMS/kodicms-laravel.git
cd kodicms-laravel
composer install
php artisan cms:install

The database prefix required by module Installer breaks the application:
2015-07-26_011821

Empty string not accepted, I had to enter something('zzz').

Of course table not found because all tables are prefixed by 'zzz'
2015-07-26_012419

It is really necessary prefixing database tables? And shouldn't be optional, because it seems to be required.

To make database prefix optional I modified (a hack) the file kodicms-laravel\modules\Installer\Console\Commands\InstallCommand.php:

//['DB_PREFIX', 'pr', InputOption::VALUE_OPTIONAL, 'Database prefix', array_get($defaults, 'DB_PREFIX')],
['DB_PREFIX', 'pr', InputOption::VALUE_NONE, 'Database prefix', null],

In the end, I get this error:

2015-07-26_013455

After commenting out 'type' => 'default', in kodicms-laravel\modules\Datasource\database\seeds\DatasourceTableSeeder.php :

app()->make(SectionRepository::class)->create([
            //'type' => 'default',
            'name' => 'Test section',
            'description' => 'Test description',
            'is_indexable' => false,
            'created_by_id' => 1,
            'settings' => []
        ]);

no error:

2015-07-26_013922

then php artisan serve to run server at http://localhost:8000/

Then I logged in successfully with the email and pass provided. But all links are relative to /localhost/ and not /localhost:8000/. I modified in .env file APP_URL=http://localhost:8000 and in config/app/php too(just in case):

'url' => env('APP_URL', 'http://localhost:8000'),

...And after clearing the cache the links are good.

Next step I wanted to switch language to English. In config/app.php modified 'locale' => 'en', and indeed http://localhost:8000/backend/auth/login was in English, but no so after the login (at http://localhost:8000/backend).

After that run in console:php artisan cms:modules:publish and get:

C:\wamp\www\laravel\kodiii\kodicms-laravel>php artisan cms:modules:publish

  [InvalidArgumentException]
  Command "cms:modules:publish" is not defined.
  Did you mean one of these?
      cms:modules:list
      cms:modules:locale:diff
      cms:modules:locale:publish
      cms:modules:migrate
      cms:modules:seed
      ide-helper:models

Then running php artisan cms:modules:locale:publish:

C:\wamp\www\laravel\kodiii\kodicms-laravel>php artisan cms:modules:locale:publish
Copied api:core [C:\wamp\www\laravel\kodiii\kodicms-laravel\modules\API\resources\lang\ru\core.php] To [C:\wamp\www\laravel\kodiii\kodicms-laravel\/resources/lang/vendor\api\en\core.php]
Copied cms:core [C:\wamp\www\laravel\kodiii\kodicms-laravel\modules\CMS\resources\lang\ru\core.php] To [C:\wamp\www\laravel\kodiii\kodicms-laravel\/resources/lang/vendor\cms\en\core.php]
...etc etc

meaning it overwrites kodicms-laravel\/resources/lang/vendor\api\en\core.php with a russian translation kodicms-laravel\modules\API\resources\lang\ru\core.php! Now the only route in English http://localhost:8000/backend/auth/login is in Russian!

After that, running php artisan cms:modules:locale:diff --locale=en doesn't produce anything in console, or in browser.

Having made a backup copy beforehand of kodicms-laravel\/resources/lang/vendor\ restored at least the login page in English.

So far the only way I figured out to have the backend in English was to manually copy the files from

kodicms-laravel\/resources/lang/vendor\[module]/en/

to
kodicms-laravel\modules[module]\resources\lang\en (didnt work)

kodicms-laravel\modules\[module]\resources\lang\ru

Yes, overwriting the Russian files.
I noticed into the source page the locale is still set to ru:
2015-07-26_035926

I also tried to modify and save http://localhost:8000/backend/layouts/edit/normal.blade, green notification appears on the top-right zone, but get a console error:
2015-07-26_040529
and of course the file normal.blade.php was not modified.

Well, a lot I dont understand or I dont do it well... I think it's important for non-russian people in order to contribute to this project to be able to install kodicms-laravel without problems.
Your project is very promising among all laravel-cms I've seen on github, well done!

Thank you

TokenMismatchException

При установке системы может возникнуть ошибка TokenMismatchException из за смены APP_KEY

Страница backend/auth/login

Если пользователь авторизован и заходит по данной ссылке, то видит ошибку и его никуда не редиректит

Удаление записей

Сейчас для удаления записей в контроллерах делается методом get, необходимо переделать на delete

Смена языка на странице авторизации (Login page language switch)

При переходе на страницу авторизации для новых пользователей проверять текущий язык на основе user agent и дать пользователю выбраться самому язык после чего запоминать выбранный в куки например и показывать выбранный в последствии

В шаблонах админ панели заменить @event события

События конечно хорошо, но они не всегда удобны, поэтому лучше всего расставить
@yeld блоки внутри шаблонов и событие вешать в самом начале шаблона, после чего в подключенном шаблоне через @event можно сразу делать вставку в разные блоки

Страница - черновик

Если страница черновик, то в ней нет возможности настроить положение виджетов

HTML виджет

Для HTML виджета возможно стоит сделать автоматическое создание шаблона и настройках виджета выводить поле редактирования сниппета, чтобы не приходилось открывать его в новом окне

Вынос методов работы с файлами из ModuleLoader

Сейчас класс ModuleLoder отвечает за поиска файлов внутри модулей и плагинов, что наверно не очень верно. Возможно стоит добавить класс ModulesFileSystem, который будет заниматься всем этим?!

Pages not loading

Hi!

Great CMS, although complicated for me who wants to learn Laravel and the same time build a website with it !

After a fresh installation of kodicms (the latest) the pages are not loaded (/backend/page) instead I get the spinner:

spinner

It seems demo data is populated into database, so I cannot understand what could be the reason:

pages-exists-in-database

Appreciate any help!

Thank you

bower-installer

Возможно стоит воспользоваться этим модулем для загрузки только необходимых файлов из библиотек

API tokens

Добавление в модуль API генерации токенов

Page slug

В настройках страницы необходимо добавить возможность указывать mime тип страницы. Сейчас сменить mime тип можно указав в slug news.xml. Возможно стоит это вынести в отдельный список

Контроллер для Frontend

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

Рендер страницы

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

Связывание виджетов

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

Layout ajax block

Можно придумать новый тип блока, который бы загржал данные на страницу через ajax

Saving from ace

Hi Pavel,

Saving layouts or snippets (e.g.http://localhost/backend/layouts/edit/normal.blade or http://localhost/backend/snippets/edit/header.blade) does not work for me. When I click on "Update" button a green notification appears saying the Layout/Snippet [the name] updated, but no changes on disk. I even set up this app to work nativelly on root (content of public dir moved on my document root: c:/wamp/www/ and the paths from index.php pointing to c:/wamp/kodi/), but no luck. No errors in console.
In your demo at http://laravel.kodicms.ru/backend/snippets/edit/content.blade which is editable, saving is working( see <!-- teodor testing save -->).
What could be?
Thank you

CLI инсталлятор

Если не переданы обязательные параметры, запрашивать их

Email Events

Для почтовых событий необходимо добавить поля для ввода сообщения

  • об успешной отправке
  • ошибке отправки

Настройки сессий и кеша

Убрать из настроек админ панели настройки, которые могут повлиять на работоспособность системы

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.