From ffb833f00cdf3a713a64dc6d5f71830da2ee97e9 Mon Sep 17 00:00:00 2001 From: Ste Vaidis Date: Mon, 19 Feb 2024 15:19:03 +0200 Subject: [PATCH] more code --- endpoints/add-fields.sh | 71 +++++++++++++++++++ endpoints/endpoint-get.sh | 20 +++++- .../src/Controller/NodesController.php | 11 ++- .../endpoint_get_fields/entity_reference | 0 endpoints/endpoint_get_fields/file | 0 endpoints/endpoint_get_fields/image | 0 .../endpoint_get_fields/string-extractor | 6 ++ endpoints/endpoint_get_fields/string-response | 1 + endpoints/endpoint_get_fields/string_long | 0 .../endpoint_get_fields/text_with_summary | 0 endpoints/get-fields.sh | 32 +++++++++ endpoints/info-fields.sh | 24 ------- 12 files changed, 139 insertions(+), 26 deletions(-) create mode 100755 endpoints/add-fields.sh create mode 100644 endpoints/endpoint_get_fields/entity_reference create mode 100644 endpoints/endpoint_get_fields/file create mode 100644 endpoints/endpoint_get_fields/image create mode 100644 endpoints/endpoint_get_fields/string-extractor create mode 100644 endpoints/endpoint_get_fields/string-response create mode 100644 endpoints/endpoint_get_fields/string_long create mode 100644 endpoints/endpoint_get_fields/text_with_summary create mode 100755 endpoints/get-fields.sh delete mode 100755 endpoints/info-fields.sh diff --git a/endpoints/add-fields.sh b/endpoints/add-fields.sh new file mode 100755 index 0000000..6b011e1 --- /dev/null +++ b/endpoints/add-fields.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# +# example: +# +# add-fields.sh klimatologia4/web/modules/custom/src/Nodes.php manager string +# +# + +C="\e[0;36m" +R="\e[0;31m" +G="\e[0;32m" +B="\e[0;34m" +W="\e[0;97m" +E="\e[00m" + +# Check parameters +[ $# -ne 3 ] && echo 'Parameter missing' && exit + +# Check Target file +PHP="${1}" +[ ! -f ${PHP} ] && echo 'File ${PHP} does not exist' && exit + +# Field name +NAME="${2}" + +# Field source files +TYPE="${3}" +FIELD_DIR="/root/dev/endpoints/endpoint_get_fields/" +ls -1 $FIELD_DIR | grep -E "${TYPE}_(extractor|response|splitter)" > /dev/null +[ "$?" -ne 0 ] && echo -e "File for field ${R}${TYPE}${E} not found" + +# +# Iterate source files +# +for FILE in `ls -1 $FIELD_DIR | grep -E "^${TYPE}_(extractor|response|splitter)"`; do + COMMENT=$(echo ${FILE} | awk -F_ '{print $2}') + COMMENT=$(echo ${FILE} | awk -F_ '{print $2}') + echo Adding 🍓 ${FILE} to 📦 $(basename ${PHP}) +done + +exit +comment="// FIELDS " ${} + +exit +new_code=$(cat << 'EOF' + +EOF +) + + +# Find the line number of the comment +comment_line=$(grep -n "$comment" "$php_file" | cut -d ":" -f 1) + +if [[ -n "$comment_line" ]]; then + # Calculate the line number to insert the new code + insert_line=$((comment_line + 1)) + + # Insert the new code into the PHP file + awk -v insert="$insert_line" -v text="$new_code" 'NR == insert {print text} {print}' "$php_file" > tmpfile && mv tm +pfile "$php_file" + + echo "New code added successfully!" +else + echo "Comment not found!" +fi + + diff --git a/endpoints/endpoint-get.sh b/endpoints/endpoint-get.sh index 451d11d..05571fc 100755 --- a/endpoints/endpoint-get.sh +++ b/endpoints/endpoint-get.sh @@ -1,5 +1,6 @@ #!/bin/bash +C="\e[0;36m" G="\e[0;32m" B="\e[0;34m" W="\e[0;97m" @@ -11,12 +12,13 @@ MODULES="modules/custom" SITE=${1} NODE=${2} +IFS=$'\n' function quit() { echo echo -e "Syntax:" echo -e "${W}./endpoint-get ${E}" - echo + echo echo -e "Example:" echo -e "${W}./endpoint-get mysite4 events${E}" echo @@ -118,3 +120,19 @@ echo -e " - Permissions" echo -e " - Translations" echo -e " - Aliases" echo + +function add_fields () { + for FIELD in $(bash ./get-fields.sh ${SITE} node ${NODE});do + FIELD_NAME=$(echo $FIELD | awk '{print $1}') + FIELD_TYPE=$(echo $FIELD | awk '{print $2}') + echo + echo -en "Add field ${C}${FIELD_NAME}${E} of type ${C}${FIELD_TYPE}${E} ? [y/n] " + read -n 1 response + echo + if [[ "$response" =~ ^([yY])$ ]] + then + echo do_something + fi + done +} + diff --git a/endpoints/endpoint_get_AAAAA/src/Controller/NodesController.php b/endpoints/endpoint_get_AAAAA/src/Controller/NodesController.php index e7701ec..7036570 100644 --- a/endpoints/endpoint_get_AAAAA/src/Controller/NodesController.php +++ b/endpoints/endpoint_get_AAAAA/src/Controller/NodesController.php @@ -71,7 +71,9 @@ class NodesController extends ControllerBase { $uid = $node->getOwnerId(); $user = \Drupal\user\Entity\User::load($uid); $name = $user->getDisplayName(); - + // + // FIELD_EXTRACT + // /* BODY Field - absolute urls for body inline images */ // $base_url = Url::fromRoute('')->setAbsolute()->toString(); // $url_components = parse_url($base_url); @@ -117,6 +119,9 @@ class NodesController extends ControllerBase { 'lang' => $node->get('langcode')->value, 'alias' => $node->get('path')->alias, 'author' => $name, + // + // FIELD_RESPONSE + // // 'field_geolocation' => $field_geolocation, // 'field_link' => $field_link, // 'body' => $body, @@ -147,6 +152,10 @@ class NodesController extends ControllerBase { return $nodes_response; } +// + // FIELD_EXPLODE + // + /* * * Multivalue fields diff --git a/endpoints/endpoint_get_fields/entity_reference b/endpoints/endpoint_get_fields/entity_reference new file mode 100644 index 0000000..e69de29 diff --git a/endpoints/endpoint_get_fields/file b/endpoints/endpoint_get_fields/file new file mode 100644 index 0000000..e69de29 diff --git a/endpoints/endpoint_get_fields/image b/endpoints/endpoint_get_fields/image new file mode 100644 index 0000000..e69de29 diff --git a/endpoints/endpoint_get_fields/string-extractor b/endpoints/endpoint_get_fields/string-extractor new file mode 100644 index 0000000..8bd8b71 --- /dev/null +++ b/endpoints/endpoint_get_fields/string-extractor @@ -0,0 +1,6 @@ + + $FFFFF = ''; + if ($node->hasField('FFFFF') && !$node->get('FFFFF')->isEmpty()) { + $manager = $node->get('FFFFF')->value; + } + diff --git a/endpoints/endpoint_get_fields/string-response b/endpoints/endpoint_get_fields/string-response new file mode 100644 index 0000000..01e12e3 --- /dev/null +++ b/endpoints/endpoint_get_fields/string-response @@ -0,0 +1 @@ +'FFFFF' => $FFFFF, diff --git a/endpoints/endpoint_get_fields/string_long b/endpoints/endpoint_get_fields/string_long new file mode 100644 index 0000000..e69de29 diff --git a/endpoints/endpoint_get_fields/text_with_summary b/endpoints/endpoint_get_fields/text_with_summary new file mode 100644 index 0000000..e69de29 diff --git a/endpoints/get-fields.sh b/endpoints/get-fields.sh new file mode 100755 index 0000000..6d78d91 --- /dev/null +++ b/endpoints/get-fields.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# +# example: +# +# ./get-fields.sh klimatologia4 node edition +# +# body text_with_summary +# field_author string +# field_file file +# + +IFS=$'\n' +DIR=$1 +TYPE=$2 +NAME=$3 + +cd /var/www/sites/$DIR + +for FIELD in $(vendor/drush/drush/drush fi ${TYPE} ${NAME} | tail -n +3 | grep -v '\-\-\-'); do + NAME=$(echo $FIELD | awk '{print $1}') + TYPE=$(echo $FIELD | awk '{print $2}') + COUNT=$(echo $TYPE | wc -c) + THIRD=$(echo $FIELD | awk '{print $3}') + + if [ "$COUNT" -lt 5 ] && [ -z "${SECOND// }" ]; then + TYPE=$THIRD + fi + + echo "$NAME $TYPE" +done + diff --git a/endpoints/info-fields.sh b/endpoints/info-fields.sh deleted file mode 100755 index 07f34c1..0000000 --- a/endpoints/info-fields.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -IFS=$'\n' -DIR=$1 -TYPE=$2 -NAME=$3 - -cd $DIR - -for FIELD in $(vendor/drush/drush/drush fi ${TYPE} ${NAME} | tail -n +3 | grep -v '\-\-\-'); do - NAME=$(echo $FIELD | awk '{print $1}') - SECOND=$(echo $FIELD | awk '{print $2}') - THIRD=$(echo $FIELD | awk '{print $3}') - COUNT=$(echo $SECOND | wc -c) - - if [ "$COUNT" -gt 5 ]; then - TYPE=$SECOND - else - TYPE=$THIRD - fi - - echo "$NAME $TYPE" -done -