Plugin Directory

Changeset 1708473


Ignore:
Timestamp:
08/04/2017 03:43:18 PM (9 years ago)
Author:
institutpandore
Message:

carbon fields settings change

Location:
doctorfeature/trunk
Files:
443 added
8 edited

Legend:

Unmodified
Added
Removed
  • doctorfeature/trunk/DoctorFeaturePicture.php

    r1703204 r1708473  
    11<?php
    2 define('GFP_PLUGIN_PATH', plugin_dir_path(__FILE__));
    3 require_once GFP_PLUGIN_PATH . 'vendor/autoload.php';
     2
    43use GDText\Box;
    54use GDText\Color;
     5use TheSecondDre\PatternCreator;
    66
    77class DoctorFeaturePicture
     
    1515    private $text_displayed         =  true;
    1616
     17
     18    private $background_type        =  'gradient';
     19
    1720    private $is_category_gradient   =  false;
    1821    private $forced_gradient        =  array('#FF0000', '#00FF00', '#0000FF');
     
    3235    private function get_settings($post_ID)
    3336    {
    34         $options        = get_option('drf_option');
     37        $options        = array(
     38            'size'              => carbon_get_theme_option('drf_text_size'),
     39            'font'              => carbon_get_theme_option('drf_text_font'),
     40            'color'             => carbon_get_theme_option('drf_text_color'),
     41            'text_displayed'    => carbon_get_theme_option('drf_text_displayed'),
     42            'background_type'   => carbon_get_theme_option('drf_background_type'),
     43        );
    3544
    3645        // Is there a gradient for category?
     
    4655
    4756        // Global settings
    48         if (isset( $options['size'] ))
     57        if ($options['size'] != '') {
    4958            $this->font_size            = $options['size'];
    50 
    51         if (isset( $options['font'] ))
     59        }
     60
     61        if ($options['font'] != '') {
    5262            $this->font                 = $options['font'];
    53 
    54         if (isset( $options['color'] ) && $options['color'] != '')
     63        }
     64
     65        if ($options['color'] != '') {
    5566            $this->text_color           = $this->hex2rgb($options['color']);
    56 
    57         if (!isset( $options['text_displayed'] ))
     67        }
     68
     69        if ($options['text_displayed'] != 1) {
    5870            $this->text_displayed       = false;
     71        }
     72
     73        if ($options['background_type'] != '') {
     74            $this->background_type  = $options['background_type'];
     75        }
    5976    }
    6077
     
    7087        // Fetch all general settings
    7188        $this->get_settings($post_ID);
    72 
    73         if (has_post_thumbnail($post_ID)) {
    74             return;
    75         } else {
     89        // echo($this->use_patterns);
     90
     91        if (has_post_thumbnail($post_ID))
     92        {
     93            return;                 
     94        }
     95
     96        else if ($this->background_type == "pattern")
     97        {
     98            $pattern = new TheSecondDre\PatternCreator([
     99                'width'     =>  $this->width,
     100                'height'    =>  $this->height,
     101                'color'     =>  '#7700ff',
     102                'pattern'   =>  'square3',
     103            ]);
     104            $this->featured_php_img = $pattern->createPattern('phpgd');
     105
     106            if ($this->text_displayed == true) {
     107                $this->align_text($post->post_title);
     108            }
     109           
     110            $this->upload_image_wp($post_ID);
     111            set_post_thumbnail($post_ID, $this->attachment_id);
     112        }
     113       
     114        else
     115        {
    76116            $colors = $this->get_gradient_by_category($post);
    77117 
     
    140180    }
    141181
    142 
    143182    /**
    144183     * Converts a hexadecimal color (#XXXXXX) to an array of rgb color ( array($r,$g,$b) ) 
  • doctorfeature/trunk/DoctorFeaturePicture_settings.php

    r1703204 r1708473  
    11<?php
     2
     3use Carbon_Fields\Container;
     4use Carbon_Fields\Field;
     5
    26class DoctorFeaturePicture_settings
    37{
    4     /**
    5      * Holds the values to be used in the fields callbacks
    6      */
    7     private $options;
    8     private $cat_options;
    9 
    10     /**
    11      * Start up
    12      */
    13     public function __construct()
     8    function __construct()
    149    {
    15         add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
    16         add_action( 'admin_init', array( $this, 'page_init' ) );
     10        add_action( 'after_setup_theme', array($this,'load_after_setup_theme') );
    1711    }
    1812
    19 
    20 
    21     /**
    22      * Add options page
    23      */
    24     public function add_plugin_page()
     13    public function load_after_setup_theme()
    2514    {
    26         add_options_page(
    27             'DRF Settings',                     
    28             'DoctorFeature',       
    29             'manage_options',                   
    30             'drf-settings',                 
    31             array( $this, 'create_admin_page' )
    32         );
     15        \Carbon_Fields\Carbon_Fields::boot();
     16        $this->build_settings();
    3317    }
    3418
    35     /**
    36      * Options page callback - What is happening when you click on the tab?
    37      */
    38     public function create_admin_page()
     19    public function build_settings()
    3920    {
    40        
    41         $this->options      = get_option( 'drf_option' );
    42         // $this->$cat_options = get_option('drf_cat_option');
    43         ?>
    44         <div class="wrap">
    45             <h1><?php _e('DoctorFeature’s Settings', 'drf'); ?></h1>
    46             <form method="post" action="options.php">
    47             <?php
    48                 settings_fields( 'my_option_group' );
    49                 do_settings_sections( 'drf-settings' );
    50                 submit_button();
    51             ?>
    52             </form>
    53         </div>
    54         <?php
    55     }
     21        Container::make( 'theme_options', 'DoctorFeature' )
     22            ->set_page_parent( 'options-general.php' )
     23            ->add_tab( __('Text settings'), array
     24            (
     25                Field::make( 'html', 'drf_text_introduction' )
     26                    ->set_html( "<h2>What are <strong>Text Settings</strong>?</h2><p>DoctorFeature allows you to generate thumbnail automatically. It can write the post's title on each thumbnail. Here are some settings to customise thumbnails.</p>" ),
    5627
    57     /**
    58      * Register and add settings to the form
    59      */
    60     public function page_init()
    61     {     
    62         register_setting(
    63             'my_option_group',
    64             'drf_option',
    65             array( $this, 'sanitize' )
    66         );
     28                Field::make( 'checkbox', 'drf_text_displayed', "Write the post's title on the thumbnail?" )
     29                    ->set_option_value( '1' )
     30                    ->set_help_text("Ignore settings below if no."),
    6731
    68         add_settings_section(
    69             'text_settings_id',
    70             __("Settings of each article's generated picture", 'drf'),
    71             array( $this, 'print_section_info' ),
    72             'drf-settings'
    73         ); 
     32                Field::make( 'select', 'drf_text_font', 'Text font' )
     33                    ->add_options( array(
     34                            '/font/Roboto-Bold.ttf' => 'Roboto Bold',
     35                            '/font/Roboto-Regular.ttf' => 'Robot Regular',
     36                            '/font/IndieFlower.ttf' => 'Indie Flower',
     37                            '/font/Lobster-Regular.ttf' => 'Lobster Regular',) )
     38                    ->set_required( true )
     39                    ->set_help_text( __('Font used when generating a thumbnail.', 'drf')),
    7440
    75         add_settings_field(
    76             'select_font',
    77             __('Select Font', 'drf'),
    78             array( $this, 'font_callback' ),
    79             'drf-settings',
    80             'text_settings_id'
    81         );     
     41                Field::make( 'text', 'drf_text_size', 'Text size (px)' )
     42                    ->set_attribute('type', 'number')
     43                    ->set_attribute('step', '1')
     44                    ->set_default_value(72)
     45                    ->set_required( true )
     46                    ->set_help_text( __('Font size usef when generating a thumbnail. Recommended: 80.', 'drf')),
    8247
    83         add_settings_field(
    84             'select_size',
    85             __('Select Font Size', 'drf'),
    86             array( $this, 'size_callback' ),
    87             'drf-settings',
    88             'text_settings_id'
    89         );
     48                Field::make( 'color', 'drf_text_color', 'Text color' )
     49                    ->set_required( true )
     50                    ->set_help_text( __('Color of the title when generating a thumbnail.', 'drf')),
     51            ))
    9052
    91         add_settings_field(
    92             'select_color',
    93             __('Select Font Color', 'drf'),
    94             array( $this, 'color_callback' ),
    95             'drf-settings',
    96             'text_settings_id'
    97         );
    98 
    99         add_settings_field(
    100             'select_text',
    101             __('Allow Text', 'drf'),
    102             array( $this, 'text_displayed_callback' ),
    103             'drf-settings',
    104             'text_settings_id'
    105         );     
    106     }
    107 
    108     /**
    109      * Sanitize each setting field as needed
    110      *
    111      * @param array $input Contains all settings fields as array keys
    112      */
    113     public function sanitize( $input )
    114     {
    115         // print_r($input);
    116         // die();
    117         return $input;
    118     }
    119 
    120     /**
    121      * Print the Section text
    122      */
    123     public function print_section_info()
    124     {
    125         print __("As soon as you'll save an article that doesn't have any featured image, DoctorFeature will create a nice picture for you. You can modify a few parameters for these images below:", 'drf');
    126         // print_r($this->cat_options);
    127         // die();
    128     }
    129 
    130     /**
    131      * Get the settings option array and print one of its values
    132      */
    133     public function font_callback()
    134     {
    135         ?>
    136 
    137             <select name="drf_option[font]">
    138                 <option value="/font/Roboto-Bold.ttf" <?php if($this->options['font'] == '/font/Roboto-Bold.ttf') echo "selected"; ?>>Roboto Bold</option>
    139                 <option value="/font/Roboto-Italic.ttf" <?php if($this->options['font'] == '/font/Roboto-Italic.ttf') echo "selected"; ?>>Roboto Italic</option>
    140                 <option value="/font/Roboto-Regular.ttf" <?php if($this->options['font'] == '/font/Roboto-Regular.ttf') echo "selected"; ?>>Roboto Regular</option>
    141                 <option value="/font/IndieFlower.ttf" <?php if($this->options['font'] == '/font/IndieFlower.ttf') echo "selected"; ?>>Indie Flower</option>
    142                 <option value="/font/Lobster-Regular.ttf" <?php if($this->options['font'] == '/font/Lobster-Regular.ttf') echo "selected"; ?>>Lobster Regular</option>
    143             </select>
    144 
    145         <?php
    146         print __('Text written on the picture', 'drf');
    147     }
    148 
    149     /**
    150      * Get the settings option array and print one of its values
    151      */
    152     public function size_callback()
    153     {
    154         ?>
    155 
    156             <select name="drf_option[size]">
    157                 <option value="60" <?php if($this->options['size'] == '60') echo "selected"; ?>>60px</option>
    158                 <option value="70"  <?php if($this->options['size'] == '70') echo "selected"; ?>>70px</option>
    159                 <option value="80"  <?php if($this->options['size'] == '80') echo "selected"; ?>>80px</option>
    160                 <option value="90"  <?php if($this->options['size'] == '90') echo "selected"; ?>>90px</option>
    161                 <option value="100"  <?php if($this->options['size'] == '100') echo "selected"; ?>>100px</option>
    162                 <option value="110"  <?php if($this->options['size'] == '110') echo "selected"; ?>>110px</option>
    163             </select>
    164 
    165         <?php
    166         print __('Size of the text written on the picture', 'drf');
    167     }
    168 
    169     public function color_callback()
    170     {   
    171         printf(
    172             '<input type="text" id="select_color" name="drf_option[color]" value="%s" />',
    173             ( isset( $this->options['color'] ) && $this->options['color'] != '' ) ? esc_attr( $this->options['color']) : '#FFFFFF'
    174         );
    175         print __('Color of the text written on the picture', 'drf');
    176     }
    177 
    178     public function text_displayed_callback()
    179     {
    180         ?>
    181 <!--         <select name="drf_option[text]">
    182             <option value="Yes">Yes</option>
    183             <option value="No">No</option>
    184         </select> -->
    185 
    186         <label>
    187             <input type="checkbox" name="drf_option[text_displayed]" value="1" <?php if (isset($this->options['text_displayed'])) echo "checked"; ?>>
    188             Display post title on the image
    189         </label>
    190 
    191         <?php
     53            ->add_tab( __('Background settings'), array
     54            (
     55                Field::make( 'html', 'drf_background_introduction' )
     56                    ->set_html( "<h2>What are <strong>Background Settings</strong>?</h2><p>DoctorFeature allows you to generate thumbnail automatically. Using those settings, you can change the background of thumbnails.</p>
     57                        <ul>
     58                            <li><strong>Gradients :</strong> each category will use a specific gradient color. You can use your own gradient colors by going to a category edit page.</li>
     59                            <li><strong>Geo Pattern :</strong> each category will use a specific geometric colorized pattern.</li>
     60                        </ul>" ),
     61                Field::make( 'radio', 'drf_background_type', 'What kind of background when generating thumbnails?' )
     62                    ->add_options( array(
     63                        'pattern' => 'Geometric Patterns',
     64                        'gradient' => 'Color Gradients',))
     65            ));
    19266    }
    19367}
    194 ?>
  • doctorfeature/trunk/composer.json

    r1689476 r1708473  
    77
    88    "require": {
    9         "stil/gd-text": "dev-master"
     9        "stil/gd-text": "dev-master",
     10        "htmlburger/carbon-fields": "^2.0",
     11        "theseconddre/pattern-creator": "dev-master"
    1012    }
    1113}
  • doctorfeature/trunk/composer.lock

    r1689484 r1708473  
    55        "This file is @generated automatically"
    66    ],
    7     "content-hash": "cbf352f262ec1c5f3a659f2d04c4743c",
     7    "content-hash": "dccc729c0f594ac787357b7f5eb79f31",
    88    "packages": [
     9        {
     10            "name": "htmlburger/carbon-fields",
     11            "version": "2.0.4",
     12            "source": {
     13                "type": "git",
     14                "url": "https://github.com/htmlburger/carbon-fields.git",
     15                "reference": "63a01d19f5fbd88ca701ed94fded5ea497504753"
     16            },
     17            "dist": {
     18                "type": "zip",
     19                "url": "https://api.github.com/repos/htmlburger/carbon-fields/zipball/63a01d19f5fbd88ca701ed94fded5ea497504753",
     20                "reference": "63a01d19f5fbd88ca701ed94fded5ea497504753",
     21                "shasum": ""
     22            },
     23            "require": {
     24                "php": ">=5.3"
     25            },
     26            "require-dev": {
     27                "mockery/mockery": "^0.9.7",
     28                "phpunit/phpunit": "~4.8"
     29            },
     30            "type": "library",
     31            "autoload": {
     32                "psr-4": {
     33                    "Carbon_Fields\\": "core/"
     34                }
     35            },
     36            "notification-url": "https://packagist.org/downloads/",
     37            "license": [
     38                "GPL-2.0"
     39            ],
     40            "authors": [
     41                {
     42                    "name": "htmlBurger",
     43                    "email": "wordpress@htmlburger.com",
     44                    "homepage": "https://htmlburger.com/",
     45                    "role": "Developer"
     46                },
     47                {
     48                    "name": "Marin Atanasov",
     49                    "email": "contact@marinatanasov.com",
     50                    "homepage": "http://marinatanasov.com/",
     51                    "role": "Developer"
     52                },
     53                {
     54                    "name": "Siyan Panayotov",
     55                    "homepage": "http://siyanpanayotov.com/",
     56                    "role": "Developer"
     57                },
     58                {
     59                    "name": "Georgi Stoyanov",
     60                    "email": "stoyanov.gs@gmail.com",
     61                    "role": "Developer"
     62                },
     63                {
     64                    "name": "Stanimir Panchev",
     65                    "email": "Stan4omir@gmail.com",
     66                    "role": "Developer"
     67                },
     68                {
     69                    "name": "Peter Petrov",
     70                    "email": "peter.petrov89@gmail.com",
     71                    "role": "Developer"
     72                },
     73                {
     74                    "name": "Plamen Kostadinov",
     75                    "email": "pkostadinov.2create@gmail.com",
     76                    "homepage": "http://plasmen.info/",
     77                    "role": "Developer"
     78                },
     79                {
     80                    "name": "Stanimir Stoyanov",
     81                    "email": "stanimir.k.stoyanov@gmail.com",
     82                    "role": "Developer"
     83                },
     84                {
     85                    "name": "Georgi Popov",
     86                    "homepage": "http://magadanski.com/",
     87                    "role": "Developer"
     88                },
     89                {
     90                    "name": "German Velchev",
     91                    "email": "germozy@gmail.com",
     92                    "role": "Developer"
     93                },
     94                {
     95                    "name": "Rashko Petrov",
     96                    "email": "brutalenemy666@gmail.com",
     97                    "homepage": "http://errorfactory.com/",
     98                    "role": "Developer"
     99                },
     100                {
     101                    "name": "Miroslav Mitev",
     102                    "email": "mmitev.2create@gmail.com",
     103                    "role": "Developer"
     104                },
     105                {
     106                    "name": "Kaloyan Ivanov",
     107                    "email": "kaloyanxivanov@gmail.com",
     108                    "homepage": "http://vilepixels.com/",
     109                    "role": "Developer"
     110                },
     111                {
     112                    "name": "Atanas Angelov",
     113                    "email": "atanas.angelov.dev@gmail.com",
     114                    "role": "Developer"
     115                },
     116                {
     117                    "name": "Alexander Panayotov",
     118                    "email": "alexander.panayotov@gmail.com",
     119                    "homepage": "http://alexanderpanayotov.com/",
     120                    "role": "Developer"
     121                },
     122                {
     123                    "name": "Viktor Vasilev",
     124                    "email": "liberalcho@gmail.com",
     125                    "role": "Developer"
     126                }
     127            ],
     128            "description": "WordPress developer-friendly custom fields for post types, taxonomy terms, users, comments, widgets, options and more.",
     129            "homepage": "http://carbonfields.net/",
     130            "time": "2017-07-26T13:17:03+00:00"
     131        },
    9132        {
    10133            "name": "stil/gd-text",
     
    41164            "description": "A class drawing multiline and aligned text on pictures. Uses GD extension.",
    42165            "time": "2017-06-04 19:08:38"
     166        },
     167        {
     168            "name": "theseconddre/pattern-creator",
     169            "version": "dev-master",
     170            "source": {
     171                "type": "git",
     172                "url": "https://github.com/theseconddre/PatternCreator.git",
     173                "reference": "b230beb24fe3aac98c70e987f78beed8f6030f51"
     174            },
     175            "dist": {
     176                "type": "zip",
     177                "url": "https://api.github.com/repos/theseconddre/PatternCreator/zipball/b230beb24fe3aac98c70e987f78beed8f6030f51",
     178                "reference": "b230beb24fe3aac98c70e987f78beed8f6030f51",
     179                "shasum": ""
     180            },
     181            "type": "library",
     182            "autoload": {
     183                "psr-4": {
     184                    "TheSecondDre\\": "src"
     185                }
     186            },
     187            "notification-url": "https://packagist.org/downloads/",
     188            "license": [
     189                "Apache 2.0"
     190            ],
     191            "authors": [
     192                {
     193                    "name": "André",
     194                    "email": "adehillerin@live.fr"
     195                }
     196            ],
     197            "description": "Generates a specific customisable pattern with php GD",
     198            "time": "2017-08-04 13:50:29"
    43199        }
    44200    ],
     
    47203    "minimum-stability": "stable",
    48204    "stability-flags": {
    49         "stil/gd-text": 20
     205        "stil/gd-text": 20,
     206        "theseconddre/pattern-creator": 20
    50207    },
    51208    "prefer-stable": false,
  • doctorfeature/trunk/doctorfeature.php

    r1703204 r1708473  
    66    Description: Generates a featured picture for each post with a nice gradient.
    77    Author: André de Hillerin
    8     Version: 1.1.0
     8    Version: 1.2.0
    99    Author URI: https://cercle.institut-pandore.com/user/theseconddre/
    1010    License: GPL2
     
    2828
    2929define('GFP_PLUGIN_PATH', plugin_dir_path(__FILE__));
    30 require_once GFP_PLUGIN_PATH . "classes.php";
     30require_once GFP_PLUGIN_PATH . 'vendor/autoload.php';
     31require_once GFP_PLUGIN_PATH . "DoctorFeaturePicture_settings.php";
     32require_once GFP_PLUGIN_PATH . "DoctorFeaturePicture_category_settings.php";
     33require_once GFP_PLUGIN_PATH . "DoctorFeaturePicture.php";
    3134
    3235if( is_admin() )
    3336{
     37    // Settings
     38    $my_settings_page       =  new DoctorFeaturePicture_settings();
     39    $my_category_settings   =  new DoctorFeaturePicture_category_settings();
     40
    3441    // Generate picture
    3542    $generatedPicture = new DoctorFeaturePicture();
    3643    add_action('publish_post', array($generatedPicture, 'generate_picture'), 10, 2);
    37 
    38     // Settings
    39     $my_settings_page = new DoctorFeaturePicture_settings();
    40     $my_category_settings = new DoctorFeaturePicture_category_settings();
    4144}
    4245
  • doctorfeature/trunk/vendor/composer/autoload_psr4.php

    r1689484 r1708473  
    77
    88return array(
     9    'TheSecondDre\\' => array($vendorDir . '/theseconddre/pattern-creator/src'),
    910    'GDText\\Tests\\' => array($vendorDir . '/stil/gd-text/tests'),
    1011    'GDText\\' => array($vendorDir . '/stil/gd-text/src'),
     12    'Carbon_Fields\\' => array($vendorDir . '/htmlburger/carbon-fields/core'),
    1113);
  • doctorfeature/trunk/vendor/composer/autoload_static.php

    r1689484 r1708473  
    88{
    99    public static $prefixLengthsPsr4 = array (
     10        'T' =>
     11        array (
     12            'TheSecondDre\\' => 13,
     13        ),
    1014        'G' =>
    1115        array (
     
    1317            'GDText\\' => 7,
    1418        ),
     19        'C' =>
     20        array (
     21            'Carbon_Fields\\' => 14,
     22        ),
    1523    );
    1624
    1725    public static $prefixDirsPsr4 = array (
     26        'TheSecondDre\\' =>
     27        array (
     28            0 => __DIR__ . '/..' . '/theseconddre/pattern-creator/src',
     29        ),
    1830        'GDText\\Tests\\' =>
    1931        array (
     
    2335        array (
    2436            0 => __DIR__ . '/..' . '/stil/gd-text/src',
     37        ),
     38        'Carbon_Fields\\' =>
     39        array (
     40            0 => __DIR__ . '/..' . '/htmlburger/carbon-fields/core',
    2541        ),
    2642    );
  • doctorfeature/trunk/vendor/composer/installed.json

    r1689484 r1708473  
    3636        ],
    3737        "description": "A class drawing multiline and aligned text on pictures. Uses GD extension."
     38    },
     39    {
     40        "name": "htmlburger/carbon-fields",
     41        "version": "2.0.4",
     42        "version_normalized": "2.0.4.0",
     43        "source": {
     44            "type": "git",
     45            "url": "https://github.com/htmlburger/carbon-fields.git",
     46            "reference": "63a01d19f5fbd88ca701ed94fded5ea497504753"
     47        },
     48        "dist": {
     49            "type": "zip",
     50            "url": "https://api.github.com/repos/htmlburger/carbon-fields/zipball/63a01d19f5fbd88ca701ed94fded5ea497504753",
     51            "reference": "63a01d19f5fbd88ca701ed94fded5ea497504753",
     52            "shasum": ""
     53        },
     54        "require": {
     55            "php": ">=5.3"
     56        },
     57        "require-dev": {
     58            "mockery/mockery": "^0.9.7",
     59            "phpunit/phpunit": "~4.8"
     60        },
     61        "time": "2017-07-26T13:17:03+00:00",
     62        "type": "library",
     63        "installation-source": "dist",
     64        "autoload": {
     65            "psr-4": {
     66                "Carbon_Fields\\": "core/"
     67            }
     68        },
     69        "notification-url": "https://packagist.org/downloads/",
     70        "license": [
     71            "GPL-2.0"
     72        ],
     73        "authors": [
     74            {
     75                "name": "htmlBurger",
     76                "email": "wordpress@htmlburger.com",
     77                "homepage": "https://htmlburger.com/",
     78                "role": "Developer"
     79            },
     80            {
     81                "name": "Marin Atanasov",
     82                "email": "contact@marinatanasov.com",
     83                "homepage": "http://marinatanasov.com/",
     84                "role": "Developer"
     85            },
     86            {
     87                "name": "Siyan Panayotov",
     88                "homepage": "http://siyanpanayotov.com/",
     89                "role": "Developer"
     90            },
     91            {
     92                "name": "Georgi Stoyanov",
     93                "email": "stoyanov.gs@gmail.com",
     94                "role": "Developer"
     95            },
     96            {
     97                "name": "Stanimir Panchev",
     98                "email": "Stan4omir@gmail.com",
     99                "role": "Developer"
     100            },
     101            {
     102                "name": "Peter Petrov",
     103                "email": "peter.petrov89@gmail.com",
     104                "role": "Developer"
     105            },
     106            {
     107                "name": "Plamen Kostadinov",
     108                "email": "pkostadinov.2create@gmail.com",
     109                "homepage": "http://plasmen.info/",
     110                "role": "Developer"
     111            },
     112            {
     113                "name": "Stanimir Stoyanov",
     114                "email": "stanimir.k.stoyanov@gmail.com",
     115                "role": "Developer"
     116            },
     117            {
     118                "name": "Georgi Popov",
     119                "homepage": "http://magadanski.com/",
     120                "role": "Developer"
     121            },
     122            {
     123                "name": "German Velchev",
     124                "email": "germozy@gmail.com",
     125                "role": "Developer"
     126            },
     127            {
     128                "name": "Rashko Petrov",
     129                "email": "brutalenemy666@gmail.com",
     130                "homepage": "http://errorfactory.com/",
     131                "role": "Developer"
     132            },
     133            {
     134                "name": "Miroslav Mitev",
     135                "email": "mmitev.2create@gmail.com",
     136                "role": "Developer"
     137            },
     138            {
     139                "name": "Kaloyan Ivanov",
     140                "email": "kaloyanxivanov@gmail.com",
     141                "homepage": "http://vilepixels.com/",
     142                "role": "Developer"
     143            },
     144            {
     145                "name": "Atanas Angelov",
     146                "email": "atanas.angelov.dev@gmail.com",
     147                "role": "Developer"
     148            },
     149            {
     150                "name": "Alexander Panayotov",
     151                "email": "alexander.panayotov@gmail.com",
     152                "homepage": "http://alexanderpanayotov.com/",
     153                "role": "Developer"
     154            },
     155            {
     156                "name": "Viktor Vasilev",
     157                "email": "liberalcho@gmail.com",
     158                "role": "Developer"
     159            }
     160        ],
     161        "description": "WordPress developer-friendly custom fields for post types, taxonomy terms, users, comments, widgets, options and more.",
     162        "homepage": "http://carbonfields.net/"
     163    },
     164    {
     165        "name": "theseconddre/pattern-creator",
     166        "version": "dev-master",
     167        "version_normalized": "9999999-dev",
     168        "source": {
     169            "type": "git",
     170            "url": "https://github.com/theseconddre/PatternCreator.git",
     171            "reference": "b230beb24fe3aac98c70e987f78beed8f6030f51"
     172        },
     173        "dist": {
     174            "type": "zip",
     175            "url": "https://api.github.com/repos/theseconddre/PatternCreator/zipball/b230beb24fe3aac98c70e987f78beed8f6030f51",
     176            "reference": "b230beb24fe3aac98c70e987f78beed8f6030f51",
     177            "shasum": ""
     178        },
     179        "time": "2017-08-04T13:50:29+00:00",
     180        "type": "library",
     181        "installation-source": "source",
     182        "autoload": {
     183            "psr-4": {
     184                "TheSecondDre\\": "src"
     185            }
     186        },
     187        "notification-url": "https://packagist.org/downloads/",
     188        "license": [
     189            "Apache 2.0"
     190        ],
     191        "authors": [
     192            {
     193                "name": "André",
     194                "email": "adehillerin@live.fr"
     195            }
     196        ],
     197        "description": "Generates a specific customisable pattern with php GD"
    38198    }
    39199]
Note: See TracChangeset for help on using the changeset viewer.