Blog

  •  

    Drupal Code Based Development

    APCu and OpCache optimization for a large Drupal site PUBLIC:

    Put this in your /etc/php.d/opcache.ini or similar file:

    php

    # enhance opcache beyond defaults

    opcache.enable=1

    opcache.memory_consumption=256

    opcache.max_accelerated_files=100000

    opcache.max_wasted_percentage=10

    opcache.revalidate_freq=240

    opcache.validate_timestamps=0

    opcache.fast_shutdown=1

    opcache.interned_strings_buffer=8

    opcache.enable_cli=1

    If you use an APCu user bin to cache various drupal cache bins in memory you will want to further optimize / tune things with it in /etc/php.d/apcu.ini or similar file. This also has support for you in drupal for upload progress without needing pecl.

    php

    apc.rfc1867=1

    apc.rfc1867_prefix=upload_

    apc.rfc1867_name=APC_UPLOAD_PROGRESS

    apc.rfc1867_freq=0

    apc.rfc1867_ttl=3600

    Get HTTP_REFERER as Drupal normal path without language prefix PUBLIC

    php

    /**

     * Get HTTP_REFERER as Drupal normal path without language prefix.

     */

    function referer_path() {

      if (!empty($_SERVER['HTTP_REFERER'])) {

        $url = parse_url($_SERVER['HTTP_REFERER']);

        if ($url['path'][0] == '/') {

          $url['path'] = substr($url['path'], 1);

        }

        list(, $path) = language_url_split_prefix($url['path'], language_list());

        return $path;

      }

    }

    Drupal Coding Processes

    Get field data from user object in Drupal 8 PUBLIC:

    Get the proper field data from a user object using Drupal development as a programming hub you want to involve? Make the body and website data be presented to you and consider making moves that provide you data which you require.

    php

    // Load the current user.

    $user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());

    // get field data from that user

    $website = $user->get('field_website')->value;

    $body = $user->get('body')->value;

    // some default getters include

    $email = $user->get('mail')->value;

    $name = $user->get('name')->value;

    $uid= $user->get('uid')->value;

    POST example with Guzzle and session cookies PUBLIC:

    php

    <?php

    require_once($_SERVER['DOCUMENT_ROOT'] . '/core/vendor/autoload.php');

    use GuzzleHttp\Client;

    use GuzzleHttp\Exception\RequestException;

    $base_url = 'http://example.com';

    try {

      $client = new Client([

        'base_url' => $base_url,

        'cookies' => true,

        'allow_redirects' => true,

        'debug' => true

        ]);

      $response = $client->post("/user/login", [

        'cookies' => true,

        "body" => [

          "name"=> "username",

          "pass"=> "password",

          'form_id' => 'user_login_form'

        ]

      ]);

      $token = $client->get('rest/session/token', [

        'cookies' => true

      ])->getBody(TRUE);

      $token = (string)$token;

      $node = array(

        '_links' => array(

          'type' => array(

            'href' => $base_url . '/rest/type/node/page'

          )

        ),

        'title' => array(0 => array('value' => 'New node title')),

      );

      $response = $client->post('entity/node', [

        'cookies' => true,

        'headers' => [

          'Accept' => 'application/json',

          'Content-type' => 'application/hal+json',

          'X-CSRF-Token' => $token,

        ],

        'json' => $node

      ]);

      if ($response->getStatusCode() == 201) {

        print 'Node creation successful!';

      } else {

        print "unsuccessful... keep trying";

        print_r(get_defined_vars());

      }

    } catch(RequestException $e) {

      echo $e->getRequest();

      echo "\n\n";

         if ($e->hasResponse()) {

             echo $e->getResponse();

         }

    }

    ?>

    Codes in Drupal Development

    Page redirect after submit form with AJAX PUBLIC:

    If you use ajax that is provision of form submission, the use of drupal_goto() is not implemented properly. The only thing happening is the error 200. Forcefully moving on page redirect can be used as a useful helper provided to you by CTools (this approach especially looks useful when your form comes as a display in your lightbox).

    php

    /**

     * Implements hook_boot()

     */

    function mymodule_boot() {

      //Save current path

      $_SESSION['current_path'] = current_path();

    }

    function mymodule_custom_ajax_form_submit($form, &$form_state) {

      //Close lightbox and redirect to the current page

      $path = $_SESSION['current_path'];

      ctools_include('ajax');

      ctools_add_js('ajax-responder');

      $commands[] = ctools_ajax_command_redirect($path);

      print ajax_render($commands);

      exit;

    }

Comments

  • (no comments)

This free website is created and hosted by Website.com's Site Builder.

500s of Templates. No coding needed.Get started now This site was created with the website.com website builder. Create your own website