Git Product home page Git Product logo

drupal's Introduction

Drupal FFLCH

Plataforma Drupal usada nos sites da FFLCH. Os módulos e bibliotecas estão em composer.json. Principais diretórios:

  • web/profiles/contrib/fflchprofile: profile com módulos e configurações customizações

deploy em um ambiente dev:

Biblioteca do php:

apt-get install php php-common php-cli php-gd php-curl php-xml php-mbstring php-zip php-sybase

Bancos de dados:

apt-get install mariadb-server php-mysql sqlite3 php-sqlite3

Instalação do composer:

curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Download e instalação das dependências:

git clone [email protected]:SEU-USERNAME/drupal.git
cd drupal
composer install

Instalação usando o profile fflch com sqlite:

./vendor/bin/drush site-install fflchprofile \
    --db-url=sqlite://sites/default/files/.ht.sqlite \
    --site-name="fflch" \
    --site-mail="fflch@localhost" \
    --account-name="fflch" \
    --account-pass="fflch" \
    --account-mail="fflch@localhost" --yes

Servidor http básico:

cd drupal
./vendor/bin/drupal serve -vvv

Caso queira escolher ip e porta:

./vendor/bin/drupal serve 0.0.0.0:8000 -vvv

Criando nodes aleatórios:

./vendor/bin/drupal create:nodes

Deletando todos nodes:

./vendor/bin/drupal entity:delete node --all

Se quiser apagar o banco para fazer uma instalação zerada:

# mysql
./vendor/bin/drupal database:drop

# sqlite
rm web/sites/default/files/.ht.sqlite*

Adicionando temas, módulos e bibliotecas

Exemplos de instalação de novos módulos:

cd drupal
composer require drupal/webform:5.1
composer require drupal/smtp:1.0-beta4

Libraries são instaladas usando assest-packgist, assim, consulte o nome da biblioteca em https://asset-packagist.org e depois instale desta forma:

composer require npm-asset/datetimepicker:0.1.38

Verificando se há atualizações para os módulos/temas/biliotecas:

composer outdated -D

Lembre-se que ao alterar a versão de um módulo deve-se verificar se há patches aplicados no mesmo na seção extra.patches do composer.json.

Módulos que estão em composer.json para avaliar:

composer show -D | tr -s ' ' | cut -d' ' -f1| grep ^drupal | cut -d'/' -f2

Removendo módulo:

  • Remover do /web/profiles/contrib/fflchprofile/modules/fflch_configs/src/installed.txt caso lá ele esteja
  • Remover do composer.json
  • "A quente" remover da plataforma que está no ar em web/profiles/contrib/fflchprofile/modules/fflch_configs/src/installed.txt para ele não ser instalado novamente na rodada do cron
  • com drush pm-uninstall desabilitar o módulos de todos sites que estão no ar
  • subir nova plataforma já sem o módulo e migrar os sites

Configurações

As vezes, novas configurações são incorporadas ao site modelo, para aplicar essa nova configuração pode-se fazer:

drush @cjc.fflch.usp.br config-set aegan.settings slideshow_display '0' --yes

O mesmo comando para todos sites na pasta sites:

for i in $(ls|grep fflch); do drush @$i config-set aegan.settings slideshow_display '0' --yes ;done

Situação contrária: configurações que precisaram ser removidas, algumas recorrentes:

drush @cea.fflch.usp.br config-delete languageicons.settings
drush @cea.fflch.usp.br config-delete captcha.captcha_point.user_pass
drush @cea.fflch.usp.br config-delete captcha.settings
drush @cea.fflch.usp.br config-delete captcha.captcha_point.user_login_form

Adicionando novas configurações no fflchprofile

Há dois tipos de configurações:

  • instalação: aplicada somente na criação do site
  • sincronização: aplicadas a cada rodada do cron

As configurações de instalação estão definidas em arquivos .yml no diretório fflchprofile/config/install.

As configurações de sincronização estão em fflchprofile/modules/fflch_configs/config/mandatory.

Passos para fazer modificações:

  • Identificar os arquivos .yml que executam a modificação
  • Salvar e commitar esses arquivos na pasta modules/fflch_configs/config/mandatory ou *fflchprofile/config/install

Dica para capturar os arquivos yml que estão relacionados as configurações:

./vendor/bin/drush config-export --destination="~/antes"

Fazer mudanças na interface do site e exportar nova configuração:

./vendor/bin/drush config-export --destination="~/depois"

Vejam os arquivos alterados:

diff -qr ~/antes/ ~/depois

Suponha que teve alteração em editor.editor.full_html.yml:

vimdiff ~/antes/editor.editor.full_html.yml ~/depois/editor.editor.full_html.yml

Usando o meld para fazer as comparações:

sudo apt install meld
meld ~/antes ~/depois

Modelo de como acrescentar patches no composer.json:

"extra": {
  "patches": {
        "drupal/editor_file": {
            "3057895 - Uploaded files are not permanent":
                "https://www.drupal.org/files/issues/2019-05-29/file-upload-marked-permanent-3057895-2.patch"
        }
    }
}

Problemas conhecidos e workarounds

quando o sitename e slogan ficam inalteráveis

Essa correção dever ser feita no ambiente dev e depois transposta para produção. Aplicar o patch disponínel https://www.drupal.org/project/drupal/issues/3011276#comment-13228934 e depois rodar:

./vendor/bin/drush config-get language.pt-br:system.site
./vendor/bin/drush config-delete language.pt-br:system.site slogan
./vendor/bin/drush config-delete language.pt-br:system.site name
./vendor/bin/drush config-delete language.pt-br:system.site page.front home-pt-br

Para subir um dump na máquina local, algumas configurações devem ser deletadas:

./vendor/bin/drush config-delete system.file path

campos que não podem ser traduzidos

sites migrados do d7 contém um problema de campos não poderem ser traduzidos pois o langcode está com und (undefinided). Para corrigir:

drush @filosofia.fflch.usp.br config-set  field.storage.node.field_banca langcode pt-br --yes

problema downloads nas traduções

Muitos sites migrados do drupal 6 ou 7 estavam com o valor de path em locale.settings.yml como sites/default/files/translations. Para verificar todos:

for i in $(ls | grep fflch.usp.br);do drush @$i config-get locale.settings translation.path; done

Para corrigir todos:

for i in $(ls | grep fflch.usp.br);do drush @$i config-set locale.settings translation.path sites/$i/files/translations --yes; done

drupal's People

Contributors

acesarfs avatar euak avatar isabelakashima avatar mariatameirao avatar ricardfo avatar suthiery avatar thiagogomesverissimo avatar v1t4o avatar vmirwald avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

drupal's Issues

Versionar configuração de formatação de Texto

  • Habilitar módulo book.
  • Em tipo de conteúdo, apagar “book page”.
  • Habilitar página básica para ser transformada em livro: admin/structure/book/settings
  • Deixar “Full Html” como primeiro na lista: admin/config/content/formats
  • Dar permissão para o role ldap em full html: admin/config/content/formats/manage/full_html
  • Remover Authenticated user de admin/config/content/formats/manage/basic_html
  • Instalar e habilitar módulo atributos de link no ckeditor: editor_advanced_link (Advanced Link)
  • Instalar e habilitar módulo de upload de arquivo no ckeditor: editor_file (D8 Editor file upload)
    admin/config/content/formats/manage/full_html: habilitar o botão do editor_file
  • Habilitar extensões: txt, doc, docx, xls, xlsx, odt, ods, odp, ppt, pptx, pdf
  • Maximum file size: 5 MB
  • Instalar e habilitar módulo para tamanho de fonte: ckeditor_font
    admin/config/content/formats/manage/full_html:
  • habilitar os 4 botões de alinhamento, underline, maximizar tela, identação, símbolos e tamanho da fonte

Colocar dependências php no readme

paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
symfony/http-kernel suggests installing symfony/browser-kit
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
zendframework/zend-feed suggests installing zendframework/zend-cache (Zend\Cache component, for optionally caching feeds between requests)
zendframework/zend-feed suggests installing zendframework/zend-db (Zend\Db component, for use with PubSubHubbub)
zendframework/zend-feed suggests installing zendframework/zend-http (Zend\Http for PubSubHubbub, and optionally for use with Zend\Feed
Reader)
zendframework/zend-feed suggests installing zendframework/zend-servicemanager (Zend\ServiceManager component, for easily extending Exte
nsionManager implementations)
zendframework/zend-feed suggests installing zendframework/zend-validator (Zend\Validator component, for validating email addresses used
in Atom feeds and entries when using the Writer subcomponent)
symfony/validator suggests installing psr/cache-implementation (For using the metadata cache.)
symfony/validator suggests installing symfony/expression-language (For using the Expression validator)
symfony/validator suggests installing symfony/intl
symfony/validator suggests installing symfony/property-access (For accessing properties within comparison constraints)
symfony/serializer suggests installing psr/cache-implementation (For using the metadata cache.)
symfony/serializer suggests installing symfony/property-access (For using the ObjectNormalizer.)
symfony/serializer suggests installing symfony/property-info (To deserialize relations.)
symfony/routing suggests installing symfony/expression-language (For using expression matching)

symfony/dependency-injection suggests installing symfony/expression-language (For using expressions in service container configuration)symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them)
symfony/console suggests installing symfony/lock
symfony/class-loader suggests installing symfony/polyfill-apcu (For using ApcClassLoader on HHVM)
pear/archive_tar suggests installing ext-bz2 (Bz2 compression support.)
pear/archive_tar suggests installing ext-xz (Lzma2 compression support.)
egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation)
easyrdf/easyrdf suggests installing ml/json-ld (~1.0)
symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump)
symfony/var-dumper suggests installing ext-symfony_debug
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
alchemy/zippy suggests installing ext-zip (To use the ZipExtensionAdapter)
alchemy/zippy suggests installing guzzle/guzzle (To use the GuzzleTeleporter with Guzzle 3)
drupal/console suggests installing symfony/thanks (Thank your favorite PHP projects on Github using the CLI!)
drupal/migrate_plus suggests installing ext-soap (*)
drupal/migrate_plus suggests installing sainsburys/guzzle-oauth2-plugin (3.0 required for the OAuth2 authentication plugin)
drupal/search_api suggests installing drupal/search_api_autocomplete (Allows adding autocomplete suggestions to search fields.)
drupal/search_api suggests installing drupal/search_api_solr (Adds support for using Apache Solr as a backend.)
pear/console_table suggests installing pear/Console_Color2 (>=0.1.2)
drush/drush suggests installing drush/config-extra (Provides configuration workflow commands, such as config-merge.)

diretório de tradução errado

No aegir, ao migrar ou clonar um site, o diretório de tradução no campo “Interface translations directory” em admin/config/media/file-system não é atualizado.

configurações para site multilingua

Configuração de idiomas

  • Habilitar módulos de traduções: language e interface translation
  • Adicionar língua pt-br: admin/config/regional/language/add
  • Colocar português Brasil como língua default
  • Remover o pt-br da língua default: admin/config/regional/language/detection/url
  • Configurar parâmetros de tradução admin/config/regional/translate/settings:
    • Verificar semanalmente
    • Drupal translation server and local files
    • Only overwrite imported translations, customized translations are kept

Deixa usuário FFLCH com o idioma pt-br

// Configura língua default do sistema
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$user->set("langcode", $language);
$user->set("preferred_langcode", $language);
$user->set("preferred_admin_langcode", $language);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.