Monday, May 27, 2013

Solution for failed to run yiic

This is a common error we usually get if we did not redirect correctly to YiiRoot path.

PHP Warning:  require_once(/home/projectname/protected/../YiiR                                                                oot/framework/yiic.php): failed to open stream: No such file or directory in /ho                                                                me/projectname/protected/yiic.php on line 7

PHP Fatal error:  require_once(): Failed opening required '/home/projectname/protected/../YiiRoot/framework/yiic.php' (include_path='.:/usr/sh                                                                are/pear:/usr/share/php') in /home/projectname/protected/yiic.php on line 7

Step 1:
Check the following file:
- index.php 
Change the following path according to your YiiRoot path
$yii=dirname(__FILE__).'/../../YiiRoot/framework/yii.php';

Step 2:
- projectname/protected/yiic.php
Change the following path according to your YiiRoot path
$yiic=dirname(__FILE__).'/../../YiiRoot/framework/yiic.php';



Sunday, May 12, 2013

How to use xmlrpc in Drupal 7


I'm new to Drupal but after grance thru many article, this is the most easier for me to understand.

Here is the references link: http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_xmlrpc/7

But you may read my finding too. :)

Step 1:
Add the piece of code in sites\yourproject\modules\custom\yourmodule

function yourmodule_xmlrpc() {
  return array(
    'yourmethodName' => 'yourfunctionName',
    array(
      'yourmethodName',      'yourfunctionName',      array(  // The element might be diff and it base on application call back and answer
        'boolean',  //The first element of this array is the type of return value 
        'string',   //You can do just answer or more elements
        'string',
        'string',
        'string',
        'string',
      ),
      t('Handling ping request'),
    ),
  );
}

Step 2:
Add the piece of code in sites\yourproject\modules\custom\yourmodule
// Assume you need to save parameter4 which is array into node table
function yourfunctionName($parameter1, $parameter2, $parameter3, $parameter4) {        
      foreach($parameter4 as $arr){
            $node = new stdClass();
            $node->type ='contenttypename';
            $node->uid = 1;
            $node->title = $arr['title'];
            $node->status;
            $node->body[$node->language][0]['format'] = 'full_html';
            $node->body[$node->language][0]['summary'] = text_summary($arr['body']);
            $node->body[$node->language][0]['value']   = $arr['body'];
            if($node = node_submit($node)){
                 node_save($node);
           }
       }
      $answer = array('code', 'record saved');
      return $answer;   // 
}