PHP code example of getolympus / olympus-zeus-core

1. Go to this page and download the library: Download getolympus/olympus-zeus-core library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

getolympus / olympus-zeus-core example snippets


// file: functions.php
namespace MyThemeName;

/**
 * Everything starts here.
 *
 * @package MyThemeName
 * @author  Your Name <[email protected]>
 * @since   x.y.z
 *
 */

// Directory separator and Vendor path.
defined('S')          or define('S', DIRECTORY_SEPARATOR); // Provided by Olympus container
defined('VENDORPATH') or define('VENDORPATH', realpath(dirname(__DIR__)).S.'vendor'.S); // Provided by Olympus container

/**
 * MyThemeName class definition
 */

if (!class_exists('MyThemeName')) {
    /**
     * Use of Zeus abstract PHP class to initialize everything.
     */
    class MyThemeName extends \GetOlympus\Zeus\Zeus
    {
        /**
         * Define all useful folders
         */
        // Load option admin pages
        protected $adminpages = __DIR__.S.'controllers'.S.'adminpages';
        // Load scheduled actions
        protected $crons      = __DIR__.S.'controllers'.S.'crons';
        // Load custom post types
        protected $posttypes  = __DIR__.S.'controllers'.S.'posttypes';
        // Load custom terms
        protected $terms      = __DIR__.S.'controllers'.S.'terms';
        // Load options for users
        protected $users      = __DIR__.S.'controllers'.S.'users';
        // Load custom widgets
        protected $widgets    = __DIR__.S.'controllers'.S.'widgets';

        /**
         * Define WordPress optimizations and configurations in a single var.
         */
        protected $configurations = [
            'AccessManagement' => [/*...*/],
            'Assets'           => [/*...*/],
            'Clean'            => [/*...*/],
            'Menus'            => [/*...*/],
            'Settings'         => [/*...*/],
            'Shortcodes'       => [/*...*/],
            'Sidebars'         => [/*...*/],
            'Sizes'            => [/*...*/],
            'Supports'         => [/*...*/],
        ];

        /**
         * Main function which defines vendors path
         * and some useful actions needed by your application
         */
        protected function setVars()
        {
            // Load Zeus framework vendors.
            if (file_exists($autoload = VENDORPATH.'autoload.php')) {
                

// file: controllers/posttypes/MoviePosttype.php
namespace MyThemeName\Controllers\Posttypes;

/**
 * Extends main \GetOlympus\Zeus\Posttype\Posttype class to use all functionalities
 */
class MoviePosttype extends \GetOlympus\Zeus\Posttype\Posttype
{
    /**
     * @var array
     */
    protected $args = [
        'menu_icon'     => 'dashicons-video-alt3',
        'supports'      => ['title', 'excerpt', 'thumbnail'],
        'taxonomies'    => ['post_tag'],
        'rewrite'       => [
            'slug'          => 'movie',
            'with_front'    => true,
        ],
    ];

    /**
     * @var string
     */
    protected $slug = 'movie';

    /**
     * Prepare variables.
     */
    public function setVars()
    {
        // Update labels
        $this->setLabels([
            'name'          => __('Movies', 'mythemename'),
            'singular_name' => __('Movie', 'mythemename'),
        ]);

        // Add metabox
        $this->addMetabox(__('Details', 'mythemename'), [
            \GetOlympus\Dionysos\Field\Text::build('link', [
                'title' => __('Movie source URL', 'mythemename'),
            ]),
            \GetOlympus\Dionysos\Field\Text::build('length', [
                'title' => __('Length in seconds', 'mythemename'),
            ]),
            \GetOlympus\Dionysos\Field\Text::build('author', [
                'title' => __('Author name', 'mythemename'),
            ]),
            // (...)
        ]);
    }
}