Integrate MeioUpload behavior in Cakephp 2.1.1

2.1k views Asked by At

I'm using MeioUpload 4.0 Behavior Plugin from https://github.com/jrbasso/MeioUpload

I installed the plugin via git: git clone git://github.com/jrbasso/MeioUpload.git Plugin/MeioUpload Now, my dir structure looks like:

/app
 /Plugin
  /MeioUpload
   /Model
    /Behavior
     /MeioUploadBehavior.php
   /Locale
   /Test

My picture model looks like:

 <?php
 App::uses('AppModel', 'Model');
 class Picture extends AppModel {
$actsAs = array(
    'MeioUpload.MeioUpload' => array(
        'picture' => array(
            'dir' => 'img{DS}pictures',
            'create_directory' => true,
            'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
            'allowed_ext' => array('.jpg', '.jpeg', '.png'),
            'zoomCrop' => true,             
            'thumbsizes' => array(
                'small'  => array('width'=>165, 'height'=>115),
                'medium' => array('width'=>800, 'height'=>600)

            ),
            'default' => 'default.jpg'
        )
    )
);
 }
 ?>

When I'm trying to access /pictures/add I get the following error in debug.log:

 2012-04-12 21:42:38 Error: [MissingPluginException] Plugin MeioUpload could not be found.
#0 C:\wamp\www\starter211\lib\Cake\Core\App.php(364): CakePlugin::path('MeioUpload')
#1 C:\wamp\www\starter211\lib\Cake\Core\App.php(225): App::pluginPath('MeioUpload')
#2 C:\wamp\www\starter211\lib\Cake\Core\App.php(542): App::path('Model/Behavior', 'MeioUpload')
#3 [internal function]: App::load('MeioUploadBehav...')
#4 [internal function]: spl_autoload_call('MeioUploadBehav...')
#5 C:\wamp\www\starter211\lib\Cake\Model\BehaviorCollection.php(121): class_exists('MeioUploadBehav...')
#6 C:\wamp\www\starter211\lib\Cake\Model\BehaviorCollection.php(68): BehaviorCollection->load('MeioUpload.Meio...', Array)
#7 C:\wamp\www\starter211\lib\Cake\Model\Model.php(725): BehaviorCollection->init('Picture', Array)
#8 [internal function]: Model->__construct(Array)
#9 C:\wamp\www\starter211\lib\Cake\Utility\ClassRegistry.php(156): ReflectionClass->newInstance(Array)
#10 C:\wamp\www\starter211\lib\Cake\View\Helper\FormHelper.php(145): ClassRegistry::init(Array)
#11 C:\wamp\www\starter211\lib\Cake\View\Helper\FormHelper.php(331): FormHelper->_getModel('Picture')
#12 C:\wamp\www\starter211\app\View\Pictures\add.ctp(2): FormHelper->create('Picture', Array)
#13 C:\wamp\www\starter211\lib\Cake\View\View.php(908): include('C:\wamp\www\sta...')
#14 C:\wamp\www\starter211\lib\Cake\View\View.php(872): View->_evaluate('C:\wamp\www\sta...', Array)
#15 C:\wamp\www\starter211\lib\Cake\View\View.php(463): View->_render('C:\wamp\www\sta...')
#16 C:\wamp\www\starter211\lib\Cake\Controller\Controller.php(959): View->render(NULL, NULL)
#17 C:\wamp\www\starter211\lib\Cake\Routing\Dispatcher.php(110): Controller->render()
#18 C:\wamp\www\starter211\lib\Cake\Routing\Dispatcher.php(85): Dispatcher->_invoke(Object(PicturesController), Object(CakeRequest), Object(CakeResponse))
#19 C:\wamp\www\starter211\app\webroot\index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#20 {main}
3

There are 3 answers

0
jekennedy On

Did you put this line in your bootstrap?

CakePlugin::loadAll();
0
Ella Ryan On

I had this same problem. To resolve I did this:

  • Move MeioUploadBehavior.php to /app/Model/Behavior folder (ie take it out of its subfolder)
  • Load the behavior without dot notation.

    $actsAs = array(
      'MeioUpload' => array(...options here...)
    );
    

Not sure why having it in a subfolder throws the missing plugin exception for this version of CakePHP but if you want a temp fix, this is it!

0
Obelich On

Firs you need to rename the folder to MeioUpload when you clone it it have ckaephp-MeioUpload clear and onli put

MeioUpload

in

yourapp/app/config/boostrap.php

Add this

CakePlugin::load('MeioUpload');

and all working good :)