📜 ⬆️ ⬇️

Drupal module for working with Yandex.Mail

Introduction

Recently, Yandex has pleased with such a service as mail for a domain . Pretty useful service. And the presence of Yandex.API for that joy allows you to have beautiful email addresses for your users. In my article I want to tell about my first successes in this matter for a Drupal site. In this case, it will be logical to write a module.

API


Communication between the site engine and Yandex will occur via http (s) requests. The parameters of these requests are described in the help, but before starting work, you need to get a token - a certain sequence of characters that will be present in the request for authorizing actions. It's easy to get it - you need to log in on the Yandex website and then paste it into the address bar pddimp.yandex.ru/get_token.xml?domain_name=... pddimp.yandex.ru/get_token.xml?domain_name=... where, instead of the ellipsis, insert the domain name. In response, the server will issue an xml document with a token.
I identified for myself several tasks for the first stage. We need some operations, namely:

For each of the actions there are simple queries. In addition, there are sets of ready-made classes on the help page, but I decided to write everything from scratch using the code as a basis.

Writing a module


The module we get pretty simple. Literally two hook functions and four auxiliary functions. The module will also have an administration page.
I created the file yandex_mail_pdd.info and yandex_mail_pdd.module. In the first indicated data for the module. The file might look like this:

name = Yandex.Mail API

description = .
core = 6.x


But the content of the second file is the code of our module.
We define to start the engine response to addresses. Define the admin page and callback function for it.
')
Copy Source | Copy HTML
  1. function yandex_mail_pdd_menu () {
  2. $ items = array ();
  3. $ items [ 'admin / settings / yandex_mail_pdd' ] = array (
  4. 'title' => t ( 'Yandex.Mail Settings' ),
  5. 'description' => 'Settings for Yandex.Mail module' ,
  6. 'page callback' => 'drupal_get_form' ,
  7. 'page arguments' => array ( 'yandex_mail_pdd_admin' ),
  8. 'access arguments' => array ( 'access administration pages' ),
  9. 'type' => MENU_NORMAL_ITEM,
  10. );
  11. return $ items ;
  12. }


Now you need to create a page for administration. This will be the function of generating a form with two text fields (token and domain) and one checkbox (output of debug information)

Copy Source | Copy HTML
  1. function yandex_mail_pdd_admin ()
  2. {
  3. $ form [ 'ypdd_domain' ] = array (
  4. '#type' => 'textfield' ,
  5. '#title' => t ( 'Domain' ),
  6. '#description' => t ( 'Your domain.' ),
  7. '#default_value' => variable_get ( 'ypdd_domain' , '' ),
  8. );
  9. $ form [ 'ypdd_token' ] = array (
  10. '#type' => 'textfield' ,
  11. '#title' => t ( 'Token' ),
  12. '#description' => t ( 'Put here token for your domain' ),
  13. '#default_value' => variable_get ( 'ypdd_token' , '' ),
  14. );
  15. $ form [ 'ypdd_debug' ] = array (
  16. '#type' => 'checkbox' ,
  17. '#title' => t ( 'Debug' ),
  18. '#description' => t ( 'Output debug information' ),
  19. '#default_value' => variable_get ( 'ypdd_debug' , true ),
  20. );
  21. return system_settings_form ($ form);
  22. }


Now let's get down to writing functions for communicating with Yandex. There are two ways to send http (s) requests - cURL and the Drupal API. For some reason, I did not accept requests from the second version of Yandex, so I chose the first one. The function of checking the employment of a login looks like this:

Copy Source | Copy HTML
  1. function _pdd_chek_user ( $ login )
  2. {
  3. $ url = 'https://pddimp.yandex.ru/check_user.xml?login=test&token=' .variable_get ( 'ypdd_token' , '' );
  4. $ ch = curl_init ();
  5. curl_setopt ( $ ch , CURLOPT_HTTPGET, true );
  6. curl_setopt_array ( $ ch , array (
  7. CURLOPT_URL => $ url ,
  8. CURLOPT_RETURNTRANSFER => true ,
  9. CURLOPT_FOLLOWLOCATION => true ,
  10. ))
  11. $ sxml = new SimpleXMLElement (curl_exec ( $ ch ));
  12. $ xml = curl_exec ( $ ch );
  13. if (variable_get ( 'ypdd_debug' , true )) dsm ( $ xml );
  14. curl_close ( $ ch );
  15. return $ sxml -> result;
  16. }


The remaining functions differ only in requests and other small details. The logic of work is the same. In order to work with the data of the user account, the changes will be applied and we will use the hook_user from the Drupal API hook to the box. Like that:

Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  1. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  2. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  3. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  4. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  5. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  6. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  7. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  8. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  9. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  10. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  11. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  12. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  13. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  14. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  15. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  16. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  17. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  18. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  19. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  20. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  21. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  22. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  23. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  24. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  25. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }
  26. Copy Source | Copy HTML function yandex_mail_pdd_user( $op , & $edit , & $account , $category = NULL) { switch ( $op ) { case 'validate' : { if ( $edit [ 'op' ]==t( 'Save' )) { $res =_pdd_update_user( $account ->name, array ( 'password' => $edit [ 'pass' ])); } else $res =_pdd_create_user( $edit [ 'name' ], $edit [ 'pass' ]); if ( isset ( $res [ 'error' ])) { if ( $res [ 'error' ]== 'passwd-tooshort' ) form_set_error( 'pass' , ' .' ); if ( $res [ 'error' ]== 'occupied' ) form_set_error( 'name' , ' .' ); } }; break ; case 'delete' : { _pdd_delete_user( $account ->name); }; break ; } }

To display debug information, the Devel module is required. This is where the dsm () function comes from.
Actually that's all the work. Of course, it doesn’t pull on release, but as a skeleton, it is fine. For improvements lots of space. I plan to add receipt of a list of letters at the entrance to the site and some other functionality. Happy New Year everyone!

Source: https://habr.com/ru/post/111205/


All Articles