Pages

Thursday, December 19, 2013

Code for Create or Update Resource in Modx Revo

Code for create new resource in Modx Revo :

                    $class = 'modResource';
                    $resource= $modx->newObject($class);
                    $resource->set('context_key', 'web');
                    $resource->set('content_type', 1);
                    $resource->set('pagetitle', PAGE_TITLE); //  here you enter your new resource pagetitle
                    $resource->set('parent', PARENT_ID); // here you enter parent id in which you want to see you new resource
                    $resource->set('isfolder', false);
                    $resource->set('published', true);
                    $resource->set('template', TEMPLATE_ID); // set template id
                    $resource->set('pub_date', strftime('%Y-%m-%d %H:%M:%S',strtotime(PUBLISH_DATE))); // set publish date
                    $resource->set('searchable', $this->modx->getOption('search_default'));
                    $resource->set('cacheable', $this->modx->getOption('cache_default'));
                   
                    $resource->_fields['content']= $res_content; // set resource content in $res_content
                    $resource->save();

now it will create new reource in your modx. Now,

   
Code for create new resource in Modx Revo :

            $newResourceUpdate = $modx->getObject('modResource',RESOURCE_ID); // set resource id
            $newResourceUpdate->set('template',TEMPLATE_ID);
            $newResourceUpdate->set('parent',PARENT_ID);
            $newResourceUpdate->set('pub_date', strftime('%Y-%m-%d %H:%M:%S',strtotime(PUBLISH_DATE)));
            $newResourceUpdate->save();

After this it will update your resource values.

Comment it and ?Share it if it helps you.

Code for Duplicate resource in modx revo

 Here is the code for Duplicate resource in modx revolution :

            $oldResource = $modx->getObject('modResource',RESOURCE_ID); // set resource id from which you want to Duplicate resource
             if (empty($oldResource)) return $modx->error->failure($modx->lexicon('resource_err_nfs',array('id' => $props['resourceID'])));
           
            if (!$oldResource->checkPolicy('copy')) {
                return $modx->error->failure($modx->lexicon('permission_denied'));
            }
           
            /* get parent */
            $parent = $cat;
           
            $newResource = $oldResource->duplicate(array(
                'newName' => NEW_TITLE,  // New Title which you want to see in new resource
            ));
            if (!($newResource instanceof modResource)) {
                return $newResource;
            }
           
            $modx->invokeEvent('OnResourceDuplicate',array(
                'newResource' => &$newResource,
                'oldResource' => &$oldResource,
            ));

Comment it and Share it if it helps you.

Get Migx TV values from resource in Modx Revo

Here is the code :

                    $docid = RESOURCE_ID; // id of current resource
                    $tvname = 'MultiColumn'; // Name of your TV
                    $tv = $modx->getObject('modTemplateVar', array('name' => $tvname));
                    $outputvalue = $tv->renderOutput($docid);
                    $items = $modx->fromJSON($outputvalue);
                    $idx = 0; // initialize idx
                    $output = array();
                    foreach ($items as $key => $item) {
                        $idx++; // increase idx
                        $output[] = print_r($item,1);
                    }
                    $outputSeparator = "\n";
                    $o = implode($outputSeparator, $output); // implode output

Here you will get all the value from Migx from any resource in arrays.

Comment it and Share it if it helps you.