[[TranslatedPages]] == Who we are? == http://gripuqam.org We are french speaking so this page will be translated unsing the advise in [wiki:/faq/translate/pages] == Wiki page we read or collaborate to write @ mayfirst == * [wiki:/faq/translate/pages] * WikiFormatting * http://trac.edgewall.org/wiki/TracSyntaxColoring * Trac Syntax Coloring Example {{{ {{{#!sh }}} {{{#!application/x-shellscript }}} }}} {{{#!sh path$ echo "World" ; ls ; cd ; help # comment }}} {{{#!comment {{{#!application/x-shellscript path$ echo "World" ; ls ; cd ; help # comment }}} }}} {{{ {{{#!json }}} {{{#!application/json }}} }}} {{{#!json { "name": "drupal7", # comment forbidden in json "private": true // no coma here! } }}} {{{#!comment {{{#!application/json { "name": "drupal7", # comment forbidden in json "private": true # no coma here! } }}} }}} * #!diff * #!yml * #!text/x-yaml * #!application/x-yaml * #!xml * #!application/xml-dtd ... * #!html //Insert custom HTML in a wiki page.// * #!text/html //The result will be syntax highlighted HTML code// * #!text/html+twig * #!application/x-twig * #!application/x-httpd-php5 * #!python * #!php * #!text/x-php * #!text/css * #!js * #!text/javascript ... * **#!sql** * #!text/x-sql * #!text/x-sqlite3-console * #!text/x-postgresql-psql ... * #!text/x-mysql * #!text/x-diff * #!text/x-trac-wiki * #!application/x-sh-session **No macro or processor named 'application/x-sh-session' found** * [wiki:TracQuery#UsingtheTicketQueryMacro TicketQuery Macro] (tagging tickets) examples: * [wiki:tzk:choices] * [wiki:support-team/dkg] * https://support.mayfirst.org/tags * http://trac.edgewall.org/wiki/TicketQuery * http://trac.edgewall.org/wiki/TracQuery * There is somewhere a useful cloud of tags. [wiki:/faq/wordpress/WordPressInstall] * Tag for Debian packages `[DebianPackage:python-whoosh]`[DebianPackage:python-whoosh] == Tickets we follow == === Taged with GRIP-UQAM === [[TicketQuery(max=10,keywords~=GRIP-UQAM,order=changetime,desc=1,format=table,col=changetime|resolution|owner|summary)]] === Taged with python, tendenci, django, pyramid, php, drupal7, drupal, golang, fastcgi, chelsea, ossie === [[TicketQuery(max=10,keywords~=python|tendenci|django|pyramid|php|drupal7|drupal|golang|fastcgi|chelsea.mayfirst.org|ossie.mayfirst.org,order=changetime,desc=1,format=table,col=changetime|resolution|owner|summary)]] === Reported by us === [[TicketQuery(reporter=https://id.mayfirst.org/gripuqam|https://id.mayfirst.org/gripuqamweb|https://id.mayfirst.org/essais)]] === Taged with GRIP-UQAM with description === [[TicketQuery(max=1,keywords~=GRIP-UQAM,format=table,col=changetime|resolution|owner|summary,rows=description)]] == Development Tool == * [wiki:/faq/setup-development-workstation] * [wiki:/setup_virtual_machine] == Pages we may need one day == * [wiki:apachesolr] * [wiki:faq/drupal/update-module] * [wiki:create_mysql_database] * [wiki:phpmyadmin_link] * [wiki:support-team] == Communication softwares == * https://tryit.jssip.net/ * https://live.mayfirst.org/ == Cron == * Consider output to an (even empty) file a good practice allowing to check last time the command has been executed. This is because some subtle errors may prevent execution of cron commands, eg. see #11534 {{{#!sh ... &> cron/results/ }}} * Consider nice and ionice to give priority to interactive tasks {{{#!sh nice -n 127 ionice --class=idle ... }}} == Some PostgreSQL commands == * List of DB with parameters {{{#!sh $ psql postgres --command="\l" }}} * Create user {{{#!sh postgres:~$ createuser -D -R -S }}} * Create DB {{{#!sh postgres:~$ createdb -O }}} * Backup {{{#!sh $ pg_dump -Fc --verbose --file= }}} * Restore the data base as a different user eg. to clone a Drupal website (bad idea to clone a drupal website) {{{#!sh $ pg_restore --verbose --no-owner --no-privileges --dbname= }}} * {{{-E}}} or {{{--echo-hidden}}} See SQL requests send by {{{psql}}} for commands like {{{\l}}} ({{{\list}}}) {{{#!sh $ psql --echo-hidden --dbname postgres }}} * http://www.postgresql.org/docs/9.4/static/app-psql.html * http://www.postgresql.org/message-id/18380.994171549@sss.pgh.pa.us * How do I get a list of databases in a Postgresql database ? * [http://www.thegeekstuff.com/2009/04/15-practical-postgresql-database-adminstration-commands 15 Practical PostgreSQL Database Administration Commands] * Root Password {{{#!sh $ sudo -u postgres psql postgres ALTER USER postgres WITH PASSWORD ''; \q }}} * https://www.leaseweb.com/labs/2014/04/10-developer-tools-install-ubuntu-14-04/ * Drop all tables in a database * keywords: drop all tables from postgres database * This can be copyed into psql {{{#!sql DROP FUNCTION IF EXISTS remove_all(); CREATE FUNCTION remove_all() RETURNS void AS $$ DECLARE rec RECORD; cmd text; BEGIN cmd := ''; FOR rec IN SELECT 'DROP SEQUENCE ' || quote_ident(n.nspname) || '.' || quote_ident(c.relname) || ' CASCADE;' AS name FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind = 'S' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid) LOOP cmd := cmd || rec.name; END LOOP; FOR rec IN SELECT 'DROP TABLE ' || quote_ident(n.nspname) || '.' || quote_ident(c.relname) || ' CASCADE;' AS name FROM pg_catalog.pg_class AS c LEFT JOIN pg_catalog.pg_namespace AS n ON n.oid = c.relnamespace WHERE relkind = 'r' AND n.nspname NOT IN ('pg_catalog', 'pg_toast') AND pg_catalog.pg_table_is_visible(c.oid) LOOP cmd := cmd || rec.name; END LOOP; FOR rec IN SELECT 'DROP FUNCTION ' || quote_ident(ns.nspname) || '.' || quote_ident(proname) || '(' || oidvectortypes(proargtypes) || ');' AS name FROM pg_proc INNER JOIN pg_namespace ns ON (pg_proc.pronamespace = ns.oid) WHERE ns.nspname = 'public' ORDER BY proname LOOP cmd := cmd || rec.name; END LOOP; EXECUTE cmd; RETURN; END; $$ LANGUAGE plpgsql; SELECT remove_all(); }}} http://stackoverflow.com/questions/3327312/drop-all-tables-in-postgresql * http://stackoverflow.com/questions/20017552/delete-all-table-without-droping-database-in-postgres-in-django-dbshell-in-one-c == Database Clients == * https://en.wikipedia.org/wiki/Comparison_of_database_tools * [DebianPackage:pgadmin3] * [DebianPackage:phpmyadmin] * http://www.sitepoint.com/phpmyadmin-alternatives/ * [DebianPackage:adminer] * https://packagist.org/packages/vrana/adminer * https://www.adminer.org/ * https://github.com/vrana/adminer/blob/master/plugins/login-table.php * http://php.vrana.cz/architecture-of-adminer.php * http://www.sitepoint.com/nette-framework-first-impressions/ * https://www.drupal.org/project/adminer (Check if bug with version 4 has been resolved!) * [https://www.leaseweb.com/labs/2014/04/10-developer-tools-install-ubuntu-14-04/ Install Adminer 4 in Apache] * squirrel+sql+site:debian.org * 3.3.3 does not work on debian 8 * https://en.wikipedia.org/wiki/SQuirreL_SQL_Client * http://squirrel-sql.sourceforge.net * DBEdit+site:debian.org * phpLiteAdmin+site:debian.org * https://en.wikipedia.org/wiki/PhpLiteAdmin == Git == * Branches and tags * keyword: how to find the tag of a git * https://git-scm.com/book/en/v2/Git-Basics-Tagging * http://stackoverflow.com/questions/978052/how-can-i-make-my-local-repository-available-for-git-pull * http://www.git-tower.com/blog/git-cheat-sheet == Json == === .json validator === * keyword: linux json validator * keyword: json validator site:debian.org * jsonlint * [DebianPackage:jsonlint] * {{{composer require seld/jsonlint}}} * https://packagist.org/packages/seld/jsonlint * [DebianPackage:python-json-schema-validator] == Javascript packages: Bower == === From npm to bower === * $ nice -n 127 ionice --class=idle npm install bower --save * $ nice -n 127 ionice --class=idle npm update #update! * or (like there is something to check here) * $ nice -n 127 ionice --class=idle npm update bower #update! * .bowerrc * $ nice -n 127 ionice --class=idle nodejs node_modules/bower/bin/bower init # to start a new empty bower.json * Install some libraries... * $ nice -n 127 ionice --class=idle nodejs node_modules/bower/bin/bower update --production #update! === Example .bowerrc for Drupal 7 === {{{#!json { "directory" : "../../web/sites/all/libraries" } }}} === Install Javascript libraries with Bower package manager=== {{{#!sh #$ nodejs node_modules/bower/bin/bower install --save "jquery#1.4.4" # Drupal 7 version # or (good idea (checked)) nodejs node_modules/bower/bin/bower install --save jquery#~1.4.4 # Drupal 7 version nodejs node_modules/bower/bin/bower install --save jquery-colorbox # depends on jquery nodejs node_modules/bower/bin/bower install --save ckeditor#full/stable }}} * https://github.com/npm/node-semver#ranges (valid for Bower) * $ ls bower_components/ * or * $ ls ../../web/sites/all/libraries * https://packagist.org/packages/ckeditor/ckeditor * Supported Editors Matrix https://www.drupal.org/node/596966 * jquery version for Drupal 7 https://www.drupal.org/node/171213 * same with jQuery Update module https://www.drupal.org/project/jquery_update * https://packagist.org/packages/kraksoft/colorbox * https://github.com/Spea/SpBowerBundle === Example bower.json for Drupal 7 === {{{#!json { "name": "drupal7", "private": true, "ignore": [ "**/.*", "node_modules", "bower_components", "../../web/sites/all/libraries", "test", "tests" ], "dependencies": { "jquery": "~1.4.4", "jquery-colorbox": "^1.6.3", "ckeditor": "#full/stable" } } }}} == Composer == === Some Composer documentation === * http://composer.json.jolicode.com/ * https://getcomposer.org/doc/04-schema.md#repositories * https://getcomposer.org/doc/05-repositories.md#packages * https://getcomposer.org/doc/05-repositories.md#disabling-packagist === Some Composer commands === * {{{#!sh $ ./composer.phar self-update --stable }}} * {{{#!sh $ ./composer.phar update }}} === Composer extensions === ==== Includes ==== * keywords: includes from composer.json * https://github.com/composer/composer/issues/183#issuecomment-151317582 * https://github.com/wikimedia/composer-merge-plugin * https://getcomposer.org/doc/06-config.md#use-include-path * https://getcomposer.org/doc/05-repositories.md#includes === Example composer.json for Drupal 7 === {{{#!sh composer require drush/drush composer require seld/jsonlint }}} {{{#!json { "require": { "drush/drush": "^8.0", "seld/jsonlint": "^1.4", "ezyang/htmlpurifier": "^4.7", "kraksoft/colorbox": "^1.5", "pelago/emogrifier": "^1.0", "tinymce/tinymce": "^3.5", # remove this line, this version is not available through composer! "ckeditor/ckeditor": "^full/4.5.1" } } }}} * http://docs.drush.org/en/master/install/ * https://packagist.org/packages/ezyang/htmlpurifier * http://htmlpurifier.org/download * https://packagist.org/packages/pelago/emogrifier * https://www.drupal.org/project/emogrifier * php composer target directory == Local Repositories == {{{#!json { "require": { "drush/drush": "8.0.5" }, "repositories": [ { "type": "git", "url": "../share/url/github.com/drush-ops/drush/8.0.5" }, { "type": "path", "url": "../share/url/github.com/*/*/*" } ] } }}} The next one does not work! {{{#!json { "require": { "drush/drush": "8.0.5" }, "repositories": [ { "type": "composer", "url": "file://tmp/gripuqam/share/url" } ] } }}} https://getcomposer.org/doc/05-repositories.md#package-2 {{{#!json { "packages": { "drupal/core": { "8.0.5": { { "name": "drupal/core", "version": "8.0.5", "dist": { "url": "github.com/drupal-composer/drupal-core/8.0.5", "type": "path" } } } } "drush/drush": { "8.0.5": { { "name": "drush/drush", "version": "8.0.5", "dist": { "url": "github.com/drush-ops/drush/8.0.5", "type": "path" } } } } "psr/log": { "1.0.0": { { "name": "psr/log", "version": "1.0.0", "dist": { "url": "github.com/php-fig/log/1.0.0", "type": "path" } } } } } } { "require": { "drupal/core": "8.0.5" }, "repositories": [ { "type": "package", "package": { "name": "drupal/core", "version": "8.0.5", "dist": { "url": "../share/url/github.com/drupal-composer/drupal-core/8.0.5", "type": "path" }, "description": "Drupal is an open source content management platform powering millions of websites and applications.", "type": "drupal-core", "license": "GPL-2.0+", "require": { "php": ">=5.5.9", "symfony/class-loader": "2.7.*", "symfony/console": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", "symfony/http-foundation": "~2.7.2", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", "symfony/serializer": "2.7.*", "symfony/translation": "2.7.*", "symfony/validator": "2.7.*", "symfony/process": "2.7.*", "symfony/yaml": "2.7.*", "twig/twig": "^1.23.1", "doctrine/common": "2.5.*", "doctrine/annotations": "1.2.*", "guzzlehttp/guzzle": "~6.1", "symfony-cmf/routing": "1.3.*", "easyrdf/easyrdf": "0.9.*", "zendframework/zend-feed": "~2.4", "stack/builder": "1.0.*", "egulias/email-validator": "1.2.*", "masterminds/html5": "~2.1", "symfony/psr-http-message-bridge": "v0.2", "zendframework/zend-diactoros": "~1.1", "composer/semver": "~1.0" }, "require-dev": { "behat/mink": "~1.6", "behat/mink-goutte-driver": "~1.2", "jcalderonzumba/gastonjs": "~1.0.2", "jcalderonzumba/mink-phantomjs-driver": "~0.3.1", "mikey179/vfsStream": "~1.2", "phpunit/phpunit": "~4.8", "symfony/css-selector": "2.7.*" }, "replace": { "drupal/action": "self.version", "drupal/aggregator": "self.version", "drupal/automated_cron": "self.version", "drupal/bartik": "self.version", "drupal/ban": "self.version", "drupal/basic_auth": "self.version", "drupal/block": "self.version", "drupal/block_content": "self.version", "drupal/book": "self.version", "drupal/breakpoint": "self.version", "drupal/ckeditor": "self.version", "drupal/classy": "self.version", "drupal/color": "self.version", "drupal/comment": "self.version", "drupal/config": "self.version", "drupal/config_translation": "self.version", "drupal/contact": "self.version", "drupal/content_translation": "self.version", "drupal/contextual": "self.version", "drupal/core-annotation": "self.version", "drupal/core-bridge": "self.version", "drupal/core-datetime": "self.version", "drupal/core-diff": "self.version", "drupal/core-discovery": "self.version", "drupal/core-event-dispatcher": "self.version", "drupal/core-file-cache": "self.version", "drupal/core-gettext": "self.version", "drupal/core-graph": "self.version", "drupal/core-php-storage": "self.version", "drupal/core-plugin": "self.version", "drupal/core-proxy-builder": "self.version", "drupal/core-serialization": "self.version", "drupal/core-transliteration": "self.version", "drupal/core-utility": "self.version", "drupal/core-uuid": "self.version", "drupal/datetime": "self.version", "drupal/dblog": "self.version", "drupal/dynamic_page_cache": "self.version", "drupal/editor": "self.version", "drupal/entity_reference": "self.version", "drupal/field": "self.version", "drupal/field_ui": "self.version", "drupal/file": "self.version", "drupal/filter": "self.version", "drupal/forum": "self.version", "drupal/hal": "self.version", "drupal/help": "self.version", "drupal/history": "self.version", "drupal/image": "self.version", "drupal/inline_form_errors": "self.version", "drupal/language": "self.version", "drupal/link": "self.version", "drupal/locale": "self.version", "drupal/minimal": "self.version", "drupal/menu_link_content": "self.version", "drupal/menu_ui": "self.version", "drupal/migrate": "self.version", "drupal/migrate_drupal": "self.version", "drupal/node": "self.version", "drupal/options": "self.version", "drupal/page_cache": "self.version", "drupal/path": "self.version", "drupal/quickedit": "self.version", "drupal/rdf": "self.version", "drupal/responsive_image": "self.version", "drupal/rest": "self.version", "drupal/search": "self.version", "drupal/serialization": "self.version", "drupal/seven": "self.version", "drupal/shortcut": "self.version", "drupal/simpletest": "self.version", "drupal/standard": "self.version", "drupal/stark": "self.version", "drupal/statistics": "self.version", "drupal/syslog": "self.version", "drupal/system": "self.version", "drupal/taxonomy": "self.version", "drupal/telephone": "self.version", "drupal/text": "self.version", "drupal/toolbar": "self.version", "drupal/tour": "self.version", "drupal/tracker": "self.version", "drupal/update": "self.version", "drupal/user": "self.version", "drupal/views": "self.version", "drupal/views_ui": "self.version" }, "minimum-stability": "dev", "prefer-stable": true, "autoload": { "psr-4": { "Drupal\\Core\\": "lib/Drupal/Core", "Drupal\\Component\\": "lib/Drupal/Component", "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver" }, "files": [ "lib/Drupal.php" ], "classmap": [ "lib/Drupal/Component/Utility/Timer.php", "lib/Drupal/Component/Utility/Unicode.php", "lib/Drupal/Core/Database/Database.php", "lib/Drupal/Core/DrupalKernel.php", "lib/Drupal/Core/DrupalKernelInterface.php", "lib/Drupal/Core/Site/Settings.php" ] }, "config": { "preferred-install": "dist", "autoloader-suffix": "Drupal8" }, "scripts": { "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump", "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess" } } } ] } }}} == Web Applications == * https://www.neos.io/ == Some Drush commands == * drush -v help * drush -v status * drush -v core-status * drush -v status-report * drush -v elysia-cron * drush -v core-cron * drush -v pm-refresh * drush -v rf * drush -v pm-download * drush -v dl * drush -v pm-updatecode * drush -v upc * drush -v pm-update * drush -v up * drush -v pm-list * drush -v pml * drush --status=enabled pm-list * drush pm-info * drush pm-enable * drush pm-disable * drush -v updatedb * drush -v updb * drush libraries-list * drush -v l10n-update-status * drush -v cache-clear * drush -v bam-sources * use --uri="http://example.org" then sending mail for simplenews https://www.drupal.org/node/1776536 * nice... == Drupal installation profile (minimal or standard) == * [https://www.drupal.org/node/1127786 Built-in Installation Profiles (Drupal 7)] * https://github.com/drupal-composer/drupal-core/tree/8.0.x/profiles * http://cgit.drupalcode.org/drupal/tree/profiles/minimal?h=7.x (does not allow to see files) == Installing Drupal 7 or 8 with [https://en.wikipedia.org/wiki/Composer_(software) Composer] (on a development server outside MayFirst) == {{{#!sh $ composer create-project "drupal-composer/drupal-project" }}} * [https://www.drupal.org/node/2471553 Composer in relation to Drush Make] * https://github.com/drupal-composer/drupal-project/tree/8.x * https://packagist.org/packages/drupal-composer/drupal-project * https://packagist.org/packages/drupal/core * [https://github.com/derhasi/composer-preserve-paths Composer preserve paths] * https://packagist.org/packages/theodo/drupal8-bundle === Using symlinks to avoid duplication of code and save server memory === * locally clone repositories using git (see below: {{{git}}} for Drupal) * composer version inference from git repositories is not reliable today with Composer version 1.0.0-beta2 2016-03-27 * https://getcomposer.org/doc/05-repositories.md#path * https://discuss.flarum.org/d/1608-extension-development-using-composer-repositories-path It looks like {{{*}}} is accepted... {{{#!json { #... "repositories": [ { "type": "path", "url": "workbench/*/" } ], #... } }}} * spot larger libraries (and the one used more often) {{{#!sh .../vendor$ du */* -sch | sort -h }}} {{{#!sh .../vendor$ du */* -sc | sort -n }}} * https://getcomposer.org/doc/articles/troubleshooting.md * http://fr.slideshare.net/fabrice.bernhard/integrating-drupal-8-into-symfony-2 * == Installing Drupal 7 or 8 with [https://github.com/drush-ops/drush Drush] (on a development server outside MayFirst) == {{{#!sh $ drush help site-install $ drush dl drupal-7 $ cd drupal-7.43/ $ drush site-install minimal --db-url=sqlite://sites/default/files/.ht.sqlite $ drush site-install minimal --db-url="pgsql:host=/var/run/postgresql;dbname=infolettre-alici-webadmin;user=infolettre-alici-webadmin" $ drush rs }}} == {{{git}}} for Drupal == {{{#!sh $ git ls-remote --tags | sort --key=2 --version-sort | less $ git clone --branch }}} * branch may evolve (devel) like 8.0.x * tag are frozen, like stable releases as in 8.0.5 * directory may be {{{.../share/url//}}} , {{{.../share/vendor///}}} or {{{.../share/latest/...}}} . {{{#!sh .../share/url$ git clone --branch 8.0.5 "https://git.drupal.org/project/drupal.git" git.drupal.org/project/drupal/8.0.5 .../share/url$ cd git.drupal.org/project/drupal/8.0.5 ; git branch -v * (aucune branche) d918ae1 Drupal 8.0.5 }}} {{{#!sh $ git ls-remote --tags https://github.com/drupal-composer/drupal-core | sort --key=2 --version-sort | less .../share/url$ git clone --branch 8.0.5 "https://github.com/drupal-composer/drupal-core" github.com/drupal-composer/drupal-core/8.0.5 .../share/url$ cd github.com/drupal-composer/drupal-core/8.0.5 ; git branch -v * (aucune branche) da4c151 Drupal 8.0.5 }}} * https://www.drupal.org/project/drupal/git-instructions * [https://www.drupal.org/node/1066342 Creating a branch or tag in Git] * https://www.drupal.org/project/git_deploy * [https://www.drupal.org/node/1314752 Versioned dependencies and Git] * [https://git-scm.com/book/tr/v2/Git-Internals-Git-References 10.3 Git Internals - Git References] == Drupal 8 requirements and particularities == * Drupal 8.0.5 needs Postgresql >= 9.1.2 instead of 8.4.20 #11587, #11522 * Drupal 8.0.5 works with Postgres, but not {{{drush site-install}}} * keywords: drupal 8 postgresql * [https://www.drupal.org/node/2157455 Make Drupal 8 work with PostgreSQL or remove support from core before release] * [https://www.drupal.org/node/1060476 Multiple issues when PostgreSQL is used with non-public schema] == CKEditor for Drupal 7 == Lets'use wysiwyg module * Supported Editors Matrix https://www.drupal.org/node/596966 * $ drush dl --select wysiwyg * $ drush dl wysiwyg-2.x-dev * $ drush en wysiwyg * $ drush status-report * .../sites/all/libraries$ ln -s .../bower_components/ckeditor/ . Does not work! Brobably because of symbolic links... better use .bowerrc to set target directory as suggested above. http://cdn.ckeditor.com/4.5.4/full-all == Useful Debian Packages (Chelsea) == * [DebianPackage:apache2-mpm-worker](debian 8 jessie [DebianPackage:apache2] which uses mpm_event by default) * http://httpd.apache.org/docs/2.4/ * http://httpd.apache.org/docs/2.4/mpm.html * http://httpd.apache.org/docs/2.4/mod/event.html * http://httpd.apache.org/docs/2.4/mod/worker.html * [DebianPackage:apache2-suexec-custom] (also debian 8 jessie [DebianPackage:apache2-suexec-pristine] or debian 7 wheezy [DebianPackage:apache2-suexec]) * [DebianPackage:libapache2-mod-fcgid] * [DebianPackage:php5-cgi] * since february 2016 MayFirst uses mod_proxy_fcgi + php5-fpm == Note Altern-C == * Altern-C seems to use [DebianPackage:libapache2-mpm-itk](debian 7 wheezy [DebianPackage:apache2-mpm-itk]) == To keep in mind == [ticket:4875] [query:id=4875] [[TicketQuery(id=4875)]] [[TicketQuery(id=5580)]] [[TicketQuery(id=5605)]] [[TicketQuery(id=6287)]] * http://servers.mayfirst.org/ == drupal.org followup == * https://localize.drupal.org/comment/51445#comment-51445 == JavaScript Libraries == http://www.sitepoint.com/11-best-jquery-charting-libraries == PHP Libraries == === [https://packagist.org/packages/hybridauth/hybridauth hybridauth/hybridauth] === http://hybridauth.sourceforge.net/userguide.html {{{#!sh $ composer require hybridauth/hybridauth }}} Google:: * easy [http://hybridauth.sourceforge.net/userguide/IDProvider_info_LinkedIn.html LinkedIn]:: * easy OpenID:: * easy (no secret information needed) [http://hybridauth.sourceforge.net/userguide/IDProvider_info_Yahoo.html Yahoo OpenID]:: * https://github.com/hybridauth/hybridauth/tree/master/additional-providers/hybridauth-yahoo-openid * http://hybridauth.sourceforge.net/userguide/tuts/specific-provider-wrapper.html * https://login.yahoo.com/ * a mobile phone number is required to register a new account * yahoo Application consumer key [http://hybridauth.sourceforge.net/userguide/IDProvider_info_Live.html Microsoft Live]:: * Not clear if the domain root URL can be used as redirect URI * Using the domain root URL as redirect URI results in an error at the time of clicking the icon on the registered web site * It is not possible to register inside Microsoft developper website a redirect URI similar to the one used for Google, because some caracteres are not accepted. * one could try to make a simpler redirection URI which would redirect to the one simililar to the one used for Google. * microsoft oauth2 application id * [https://msdn.microsoft.com/en-us/library/bb676626.aspx Getting Your Client ID for Web Authentication] * https://account.live.com * [https://account.live.com/developers/applications/index Mes applications] [http://hybridauth.sourceforge.net/userguide/IDProvider_info_Facebook.html Facebook] * https://developers.facebook.com/apps needs a phone number (sound or text) or a credit card || || || || jessie (stable) || bpo || stretch (testing) || || /usr/share/php/ || || [https://packagist.org/packages/composer/composer composer/composer] || 2016-03-27 || b || || || # || [DebianPackage:composer] || Composer || || [https://packagist.org/packages/hybridauth/hybridauth hybridauth/hybridauth] || 2016-01-12 || 2.6 || || || || || || || [https://packagist.org/packages/psr/log psr/log] || 2012-12-21 || 1.0 || 1.0 || || 1.0 || [DebianPackage:php-psr-log] || Psr/Log || || [https://packagist.org/packages/symfony/symfony symfony/symfony] || 2016-02-28 || 3.0 || 2.3 || || 2.8 || [DebianPackage:php-symfony-framework-bundle] || Symfony/Bundle/FrameworkBundle || || [https://packagist.org/packages/] || || || || || || [DebianPackage:] || /usr/share/php/ || || [https://packagist.org/packages/] || || || || || || [DebianPackage:] || /usr/share/php/ || || [https://packagist.org/packages/] || || || || || || [DebianPackage:] || /usr/share/php/ || || [https://packagist.org/packages/] || || || || || || [DebianPackage:] || /usr/share/php/ || || [https://packagist.org/packages/] || || || || || || [DebianPackage:] || /usr/share/php/ || * [https://qa.debian.org/developer.php?login=pkg-php-pear@lists.alioth.debian.org Packages overview for Debian PHP PEAR Maintainers] * [http://pkg-php.alioth.debian.org Debian PHP Group] == Drupal Modules == * [[span(title="", )]] * [[span(title="Admin Toolbar improve...", [https://www.drupal.org/project/admin_toolbar Admin Toolbar])]] * [[span(title="""Admin Toolbar improve...""", [https://www.drupal.org/project/admin_toolbar Admin Toolbar])]] * [https://www.drupal.org/project/admin_toolbar [[span(title="Admin Toolbar improve...", Admin Toolbar)]] ] * [https://www.drupal.org/project/admin_toolbar [[span(title="Admin Toolbar improve...", Admin Toolbar)]]] * [[span(title=Tooltip 1, Tooltip example 1)]] {{{#!span title="Tooltip 2b" Tooltip example 2b }}} {{{#!span title="""Tooltip 2h""" Tooltip example 2h }}} {{{#!span title= "Tooltip 2g" Tooltip example 2g }}} {{{#!span title= "Tooltip 2h" Tooltip example 2h }}} {{{#!span title="Tooltip\\2e" Tooltip example 2e }}} {{{#!span title="Tooltip[[br]]2f" Tooltip example 2f }}} {{{#!span title=`Tooltip 2c` Tooltip example 2c does not work }}} {{{#!span title=`Tooltip 2d multiline` Tooltip example 2d }}} {{{#!html }}} Tooltip example 4a {{{#!html }}} {{{#!span title="Tooltip 2a" Tooltip example 2a}}} {{{#!span title="Tooltip 3a multiline tooltip" Tooltip example 3a }}} {{{#!span title={{{Tooltip 3b multiline tooltip }}} Tooltip example 3b }}} ||= **D7 ordered** =|| Drupal 8 || || Drupal 7 ||= **D8 ordered** =|| || || || ||||= **Core** =|| || [[span(title="", )]] || [[span(title="", )]] || || [[span(title="", )]] || [[span(title="", )]] || || || || || || Actions || || || || || || Activity Tracker || || || || || || Aggregator || || || || || || Automated Cron || || || || || || Ban || || || || || || Block || || || || || || Book || || || || || || || || || || ||||= **Administration** =|| || || || || [https://www.drupal.org/project/admin_menu Administration menu] || [https://www.drupal.org/project/admin_toolbar Admin Toolbar] || || || || || || [https://www.drupal.org/project/admin_toolbar Admin Toolbar Extra Tools] || || || || || || || || || || || || || || || || || || || === [https://www.drupal.org/project/hybridauth Hybridauth] === http://cgit.drupalcode.org/hybridauth/tree/README.txt?id=refs/heads;id2=7.x-2.x === [https://www.drupal.org/project/simplenews simplenews] === * https://backdropcms.org/project/simplenews == Inside Drupal == === Entities === * Introduced in Drupal 7 * Something different : Symfony Entity * [https://www.drupal.org/node/1261744 An Introduction to Entities] * [https://www.drupal.org/node/878784 Entity API Tutorial] * [http://joshaust.in/wp-content/uploads/2012/06/Entities-and-Bundles-in-Drupal-7.pdf Enties and Bundles in Drupal 7] * [https://www.drupal.org/node/1649688 Understanding entity terminology] * [https://evolvingweb.ca/blog/drupal-7-entities-what-are-they-and-what-are-they-good Drupal 7 Entities: What are they, and what are they good for?] * https://www.drupal.org/project/bean * https://api.backdropcms.org/api/backdrop/core!modules!entity!entity.api.php/1 * drupal 8 entity * https://www.drupal.org/developing/api/entity * https://www.drupal.org/node/2192175 * http://www.drupalcontrib.org/api/drupal/drupal!core!vendor!symfony!validator!Symfony!Component!Validator!Tests!Fixtures!Entity.php/8 === Drupal 8 === * http://www.garfieldtech.com/presentations/sflportland-drupal8-symfony2 == HTML Slides == * https://packagist.org/packages/seld/slippy == Radical Servers == * https://help.riseup.net/en/security/resources/radical-servers == SQL Database Programming == * http://stackoverflow.com/questions/211895/storing-documents-as-blobs-in-a-database-any-disadvantages * https://www.percona.com/blog/2010/01/21/when-should-you-store-serialized-objects-in-the-database * http://it.toolbox.com/blogs/database-soup/wrecking-your-database-33298 * https://www.percona.com/blog/2009/03/01/kiss-kiss-kiss/ === SQL === === Views === * http://www.postgresql.org/docs/current/static/sql-createview.html * http://www.doctrine-project.org/2009/06/19/using-views-with-doctrine.html (is it always valid?) * http://www.postgresql.org/docs/current/static/rules-materializedviews.html === Supported features === ==== Data Types ==== ===== json ===== * SQLite https://www.sqlite.org/json1.html ===== XML ===== * Seems not yet to be in Firebird === Embedded Database Programming === * https://en.wikipedia.org/wiki/Embedded_database * QDBM, BDB, http://php.net/manual/en/function.dba-handlers.php * [DebianPackage:php-tokyo-tyrant]​ * [DebianPackage:php7.0-interbase] (php driver does not include embeded version of interbase) [DebianPackage:libfbembed2.5] * https://wiki.documentfoundation.org/Development/Base/FirebirdSQL * http://www.haildb.com/ * [DebianPackage:php5-midgard2]​ === sqlite === * [https://www.sqlite.org/omitted.html SQL Features That SQLite Does Not Implement] * https://www.sqlite.org/json1.html * https://www.sqlite.org/fts5.html * [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816463 Please enable FTS5 support] https://tracker.debian.org/media/packages/s/sqlite3/rules-3.11.0-3 === Postgres === * https://wiki.debian.org/PostgreSql * http://db.cs.berkeley.edu/papers/ERL-M85-95.pdf * http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.133.8073&rep=rep1&type=pdf * https://dl.acm.org/citation.cfm?id=2834495 ==== Performance ==== * http://fr.slideshare.net/pgconf/five-steps-perform2009 ==== Timing ==== * [http://www.postgresql.org/message-id/4D9EABDD.1060102@limsi.fr Re: What does \timing measure?] * http://www.postgresql.org/docs/9.4/static/runtime-config-statistics.html * http://stackoverflow.com/questions/17653884/postgres-query-execution-time * http://stackoverflow.com/questions/9063402/get-execution-time-of-postgresql-query ==== Procedural Language ==== * https://wiki.postgresql.org/wiki/PL_Matrix * PL/pgSQL * Included in postgresql~ basic Debian Package * http://www.postgresql.org/docs/9.3/static/plpgsql.html * https://en.wikipedia.org/wiki/PL/pgSQL * http://postgres.cz/wiki/PL/pgSQL_(en) * [DebianPackage:postgresql-plpython-9.4] more stable and more popular that PL/Lua * [DebianPackage:postgresql-plpython3-9.4] * [DebianPackage:postgresql-9.4-pllua] https://github.com/pllua/pllua http://wiki.alpinelinux.org/wiki/Pllua * [DebianPackage:postgresql-pltcl-9.4] * [DebianPackage:postgresql-9.4-plsh] ==== General information and Feature Lists ==== * [https://www.safaribooksonline.com/library/view/postgresql-up-and/9781449373184/ch01.html PostgreSQL: Up and Running] * [https://www.compose.io/articles/what-postgresql-has-over-other-open-source-sql-databases Advertisement by a provider] ===== Release Notes and Documentation ===== * [http://www.postgresql.org/about/news/1415/ PostgreSQL 9.2 released] === MySQL === === Firebird === * https://wiki.documentfoundation.org/Development/Base/FirebirdSQL * http://stackoverflow.com/questions/1635273/postgres-vs-firebird == Java Programming == * https://packages.debian.org/fr/libunixsocket == PHP Security Programming == * http://stackoverflow.com/questions/6474783/which-server-variables-are-safe * http://stackoverflow.com/questions/4247704/how-tamper-proof-is-the-server-variable-in-php == PHP Programming == * http://php.net/manual/en/language.constants.predefined.php * http://php.net/manual/en/function.getcwd.php * http://stackoverflow.com/questions/4645082/get-absolute-path-of-current-script * php+curent+directory * http://php.net/manual/en/reserved.variables.environment.php * http://php.net/manual/en/function.phpinfo.php * http://php.net/manual/en/function.readlink.php * http://stackoverflow.com/questions/12580330/php-dirname-returns-symlink-path * https://bugs.php.net/bug.php?id=46260 * php+symlink+path * http://php.net/manual/en/function.dirname.php == Symfony Programming == * http://fr.slideshare.net/AcquiaInc/create-a-symfony-application-from-a-drupal-perspective === EZ Plateform === * EZ Plateform and Symfony Article from Symfony Finland * https://packagist.org/packages/ezsystems/ezplatform * http://share.ez.no/downloads/downloads * https://doc.ez.no/display/TECHDOC/Requirements (Postgres install not yet supported 2016-04) * https://doc.ez.no/display/TECHDOC/Using+Composer === Hacking === ==== {{{autoload.php}}} ==== * https://github.com/symfony/symfony-standard/blob/master/app/autoload.php The original * https://github.com/symfony-cmf/standard-edition/blob/master/app/autoload.php Almost the same, maybe slightly older version * https://github.com/symfony-cmf/cmf-sandbox/blob/master/app/autoload.php Locale component additions and others === MicroKernel === * http://symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework * https://symfony.com/doc/current/cookbook/configuration/micro-kernel-trait.html * https://knpuniversity.com/screencast/new-in-symfony3/micro-kernel === Components === === Bundles === ==== [https://packagist.org/packages/symfony/framework-standard-edition symfony/framework-standard-edition] ==== * https://github.com/symfony/symfony-standard * https://github.com/symfony/symfony-standard/blob/master/app/AppKernel.php * symfony/framework-bundle FrameworkBundle - The core Symfony framework bundle * Some components may sometimes be required * symfony/console (for console) * symfony/process (for console server:run) * symfony/validator * symfony/expression-language * symfony/psr-http-message-bridge * zendframework/zend-diactoros * [https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html SensioFrameworkExtraBundle] - Adds several enhancements, including template and routing annotation capability * If you plan to use or create annotations for controllers, make sure to update your {{{autoload.php}}} by adding the following line... * https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/index.html#installation * Included in [https://packagist.org/packages/symfony/framework-standard-edition symfony/framework-standard-edition] * doctrine/doctrine-bundle [https://symfony.com/doc/current/book/doctrine.html DoctrineBundle] - Adds support for the Doctrine ORM * doctrine/orm has to be required if needed * TwigBundle - Adds support for the Twig templating engine * symfony/security-bundle SecurityBundle - Adds security by integrating Symfony's security component * symfony/security may need to be also required * symfony/swiftmailer-bundle SwiftmailerBundle - Adds support for Swiftmailer, a library for sending emails * MonologBundle - Adds support for Monolog, a logging library * WebProfilerBundle (in dev/test env) - Adds profiling functionality and the web debug toolbar * SensioDistributionBundle (in dev/test env) - Adds functionality for configuring and working with Symfony distributions * [https://symfony.com/doc/current/bundles/SensioGeneratorBundle/index.html SensioGeneratorBundle] (in dev/test env) - Adds code generation capabilities * Choosing the annotation format expects the SensioFrameworkExtraBundle to be installed * https://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_bundle.html#available-options * There should be one line of imports in the {{{config.yml}}} file! (otherwise changes may not be added to it!) * https://github.com/symfony/symfony-standard/blob/master/app/config/config.yml * DebugBundle (in dev/test env) - Adds Debug and VarDumper component integration ==== User ==== * friendsofsymfony/user-bundle ==== Admin ==== * https://sonata-project.org/bundles/admin/2-3/doc/index.html * http://stackoverflow.com/questions/22916083/sonata-admin-bundle-adding-link-to-related-entities-in-configure-list ==== Tag and Taxonomy ==== * Sonata * https://packagist.org/packages/mw/tag-admin-bundle * https://packagist.org/packages/fpn/tag-bundle ==== Translation ==== * https://packagist.org/packages/sonata-project/translation-bundle ==== News, Newsletter ==== * https://packagist.org/packages/stfalcon/news-bundle ==== Search ==== * https://packagist.org/packages/symfony-cmf/search-bundle * https://packagist.org/packages/liip/search-bundle ==== Payment ==== * https://packagist.org/packages/payum/payum-bundle ==== Help Desk, Bug Tracking and Ticket ==== * https://packagist.org/packages/liuggio/help-desk-bundle