Skip to content
Snippets Groups Projects
Select Git revision
  • defined-order
  • 2.0.x default
  • 3458840-consider-adding-apply
  • 1.0.x
  • 7.x-1.x
  • previous/defined-order/2025-03-01
  • 2.0.0-alpha10
  • previous/3502666-replace-installselect-button/2025-02-27-1
  • previous/3502666-replace-installselect-button/2025-02-27
  • previous/3293907-category-pop-up/2025-02-26
  • previous/3506454-project-normalizer/2025-02-24
  • previous/3502986-remove-project-browser-from/2025-02-18
  • previous/3322601-pp-1-add-instructions/2025-02-11
  • previous/3505249-core-source-plugin/2025-02-11
  • 2.0.0-alpha9
  • 2.0.0-alpha8
  • previous/3499411-after-composer-error/2025-01-27
  • 2.0.0-alpha7
  • previous/3498040-update-the-security/2025-01-08
  • previous/3492153-project-usage-icon/2025-01-08
  • previous/3494819-display-warningserrors-from/2025-01-08
  • previous/3494819-display-warningserrors-from/2025-01-07-1
  • previous/3492153-project-usage-icon/2025-01-06
  • previous/3469860-allow-clearing-of/2025-01-06
  • previous/3483412-remove-hard-coded/2025-01-06
25 results

rollup.config.js

Blame
  • Forked from project / project_browser
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    HookInitCssSniff.php 3.44 KiB
    <?php
    /**
     * \DrupalPractice\Sniffs\FunctionDefinitions\HookInitCssSniff.
     *
     * @category PHP
     * @package  PHP_CodeSniffer
     * @link     http://pear.php.net/package/PHP_CodeSniffer
     */
    
    namespace DrupalPractice\Sniffs\FunctionDefinitions;
    
    use PHP_CodeSniffer\Files\File;
    use Drupal\Sniffs\Semantics\FunctionDefinition;
    use DrupalPractice\Project;
    use PHP_CodeSniffer\Util\Tokens;
    
    /**
     * Checks that drupal_add_css() is not used in hook_init().
     *
     * @category PHP
     * @package  PHP_CodeSniffer
     * @link     http://pear.php.net/package/PHP_CodeSniffer
     */
    class HookInitCssSniff extends FunctionDefinition
    {
    
    
        /**
         * Process this function definition.
         *
         * @param \PHP_CodeSniffer\Files\File $phpcsFile   The file being scanned.
         * @param int                         $stackPtr    The position of the function name
         *                                                 in the stack.
         * @param int                         $functionPtr The position of the function keyword
         *                                                 in the stack.
         *
         * @return void|int
         */
        public function processFunction(File $phpcsFile, $stackPtr, $functionPtr)
        {
            $fileExtension = strtolower(substr($phpcsFile->getFilename(), -6));
            // Only check in *.module files.
            if ($fileExtension !== 'module') {
                return ($phpcsFile->numTokens + 1);
            }
    
            // This check only applies to Drupal 7, not Drupal 6.
            if (Project::getCoreVersion($phpcsFile) !== 7) {
                return ($phpcsFile->numTokens + 1);
            }
    
            $fileName = substr(basename($phpcsFile->getFilename()), 0, -7);
            $tokens   = $phpcsFile->getTokens();
            if ($tokens[$stackPtr]['content'] !== ($fileName.'_init') && $tokens[$stackPtr]['content'] !== ($fileName.'_page_build')) {
                return;
            }
    
            // Search in the function body for drupal_add_css() calls.
            $string = $phpcsFile->findNext(
                T_STRING,
                $tokens[$functionPtr]['scope_opener'],
                $tokens[$functionPtr]['scope_closer']
            );
            while ($string !== false) {
                if ($tokens[$string]['content'] === 'drupal_add_css' || $tokens[$string]['content'] === 'drupal_add_js') {
                    $opener = $phpcsFile->findNext(
                        Tokens::$emptyTokens,
                        ($string + 1),
                        null,
                        true
                    );
                    if ($opener !== false
                        && $tokens[$opener]['code'] === T_OPEN_PARENTHESIS
                    ) {
                        if ($tokens[$stackPtr]['content'] === ($fileName.'_init')) {
                            $warning = 'Do not use %s() in hook_init(), use #attached for CSS and JS in your page/form callback or in hook_page_build() instead';
                            $phpcsFile->addWarning($warning, $string, 'AddFunctionFound', [$tokens[$string]['content']]);
                        } else {
                            $warning = 'Do not use %s() in hook_page_build(), use #attached for CSS and JS on the $page render array instead';
                            $phpcsFile->addWarning($warning, $string, 'AddFunctionFoundPageBuild', [$tokens[$string]['content']]);
                        }
                    }
                }
    
                $string = $phpcsFile->findNext(
                    T_STRING,
                    ($string + 1),
                    $tokens[$functionPtr]['scope_closer']
                );
            }//end while
    
        }//end processFunction()
    
    
    }//end class