Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/html/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/html/drupal10.pyy

import os, sys, re

site   = sys.argv[1]
passwd = "k1o2n3v4a5l6o7"

try:
    steps = sys.argv[2]
except:
    steps = "01"

print(steps)
thname = "atstandard"


'''    #  Info. Geht aber nicht alles
drush site:install standard --account-name=admin --account-pass=admin --site-name="$SITE" --yes
drush en -y ckeditor5 locale language content_translation config_translation menu_ui
drush language:add de
echo "Install AdaptiveTheme..."

composer require drupal/adaptivetheme
drush en adaptivetheme -y
drush generate adaptivetheme:subtheme --name="$THEME" --machine-name="$THEME" --base-theme="at_core"
drush theme:enable $THEME
drush config:set system.theme default $THEME -y

drush config:set $THEME.settings logo.url "themes/$THEME/logo.svg" -y
drush config:set $THEME.settings favicon.url "themes/$THEME/favicon.ico" -y

drush block:disable system_breadcrumb_block
drush block:disable system_menu_block:account

drush menu:link:create main "Home"         --uri=/ --weight=-10
drush menu:link:create main "Product"      --uri=/product
drush menu:link:create main "Contact"      --uri=/contact
drush menu:link:create main "Legal notice" --uri=/legal

drush node:create page --title="Home"    --body="<h1>Welcome</h1>" --path="/"
drush node:create page --title="Product" --body="<h1>Product</h1>" --path="/product"
drush node:create page --title="Contact" --body="<h1>Contact</h1>" --path="/contact"
drush node:create page --title="Legal notice" --body="<h1>Legal notice</h1>" --path="/legal"

drush config:set editor.editor.basic_html settings.toolbar.items "['heading','bold','italic','link','bulletedList','numberedList']" -y
drush config:set system.site page.front "/node/1" -y
drush cr
drush uli
'''



if "0" in steps:   #  Installation der Software mit composer


    print("Create project")
    os.system("COMPOSER_ALLOW_SUPERUSER=1 php composer.phar create-project  drupal/recommended-project:10.x " + site)
    os.chdir(site)

    print("Install drush")
    os.system('''
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  --with-all-dependencies drush/drush:^12
''')

    print("Install modules")

    os.system('''
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/at_theme drupal/at_tool drupal/at_core 
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/bootstrap drupal/colorbutton drupal/panelbutton drupal/token
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/metatag drupal/redirect drupal/visitors drupal/config_delete 
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/entity_export_csv:2.x-dev drupal/csv_importer drupal/color  
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/simple_sitemap drupal/honeypot drupal/webform drupal/pathauto
COMPOSER_ALLOW_SUPERUSER=1 php ../composer.phar  require  -W  drupal/ckeditor5_plugin_pack drupal/redirect
''')

    os.system("mkdir -p  web/sites/default/files")
    os.system("mkdir -p  web/sites/default/files/inline-images")
    os.system("sudo chown -R www-data:www-data ../" + site)
    os.system("sudo chmod -R 775 sites/default/files")


    
if "1" in steps:    #   Einrichten der Drpual-Site
    
    os.system("mkdir -p  web/sites/default/files")
    os.system("sudo chown -R www-data:www-data ../" + site)
    os.system("sudo chmod -R 775 sites/default/files")

    print("Install Drupal")
    os.system("vendor/bin/drush site:install standard --db-url=sqlite://sites/default/files/sqlitedb.sqlite --yes --account-name=admin --account-pass=" + passwd + " --site-name=" + site)
    os.system("sudo chown -R www-data:www-data ../" + site)
    os.system("sudo chmod -R 775 sites/default/files")

    print("Enable modules")


    os.system("vendor/bin/drush en at_theme_generator            -y")
    os.system("vendor/bin/drush en at_tool                       -y")
    os.system("vendor/bin/drush en token                         -y")
    os.system("vendor/bin/drush en pathauto                      -y")
    os.system("vendor/bin/drush en metatag                       -y")
    os.system("vendor/bin/drush en simple_sitemap                -y")
    os.system("vendor/bin/drush en honeypot                      -y")
    os.system("vendor/bin/drush en redirect                      -y")
    os.system("vendor/bin/drush en webform                       -y")
    os.system("vendor/bin/drush en locale                        -y")
    os.system("vendor/bin/drush en language                      -y")
    os.system("vendor/bin/drush en content_translation           -y")
    os.system("vendor/bin/drush en config_translation            -y")

    os.system("vendor/bin/drush en redirect                      -y")
    os.system("vendor/bin/drush en visitors                      -y")
    os.system("vendor/bin/drush en visitors_geoip                -y")
    os.system("vendor/bin/drush en csv_importer                  -y")
    os.system("vendor/bin/drush en entity_export_csv             -y")
    os.system("vendor/bin/drush en color                         -y")
    os.system("vendor/bin/drush en ckeditor5_plugin_pack         -y")
    os.system("vendor/bin/drush en ckeditor5_plugin_pack_font    -y")

    text = open("web/themes/contrib/at_theme/at_core/forms/color/color_submit.php").read()  # Fehler Fix
    text = re.sub(r"There is not enough memory.*?\n","not enough memory'));\n",text)
    text = re.sub(r"new CssOptimizer\(\)","\\\\Drupal::service('asset.css.optimizer')",text)
    open("web/themes/contrib/at_theme/at_core/forms/color/color_submit.php","w").write(text)


if "2" in steps:   #   Sprachen einrichten

    print("Add languages")

    for lang in ("en","de","fr"):
       os.system("vendor/bin/drush language:add " + lang)

if "3" in steps:   #   SEO und Theme einrichten

    print("SEO Optimizing")

    os.system("vendor/bin/drush config:set  simple_sitemap.settings regenerate           true   -y")   #   Sitemap-Aktualisierung, fuer SEO
    os.system("vendor/bin/drush config:set  metatag.settings        entity_canonical_url 1      -y")   #   Canonical URLs,         fuer SEO
    os.system("vendor/bin/drush config:set  redirect.settings       enforce_clean_urls   1      -y")   #   No trailing slashs,     fuer SEO
    os.system("vendor/bin/drush config:set  redirect.settings       enforce_clean_urls   1      -y")   #   No trailing slashs,     fuer SEO


    print("Install theme")

    os.system("cp -a ../" + thname + "          web/themes")
    os.system("cp    ../pics/*              web/sites/default/files")
    os.system("cp    ../pics/logo.svg       web/themes/" + thname)
    os.system("cp    ../pics/logo.png       web/themes/" + thname)
    os.system("cp    ../pics/favicon.ico    web/themes/" + thname)
    os.system("sudo chown -R www-data:www-data ../" + site)

    print("Enable theme")

    os.system("vendor/bin/drush theme:enable at_core    -y")
    os.system("vendor/bin/drush theme:enable " + thname + " -y")
    os.system("vendor/bin/drush config:set system.theme default " + thname + " -y")

    print("CKEditor konfigurieren")


if "4" in steps:   #  Einstellungen fuer CKEditor setzen


    os.system('''vendor/bin/drush config:delete editor.editor.full_html -y''')

    os.system('''
vendor/bin/drush php:eval "
use Drupal\editor\Entity\Editor;

\$e = Editor::create([
  'format' => 'full_html',
  'editor' => 'ckeditor5',
  'settings' => [
    'toolbar' => [
      'items' => [
//        'style',        //  style        nicht, weil Style definiert werden muss
//        'imageUpload',  //  imageUpload  nicht, weil komplexere Struktur, besser ueber UI
        'heading',
        'bold','italic','underline',
        'strikethrough','specialCharacters','subscript','superscript',
        'code','sourceEditing','codeBlock','horizontalLine',
        'link','showBlocks',
        'alignment','removeFormat','textPartLanguage',
        'bulletedList','numberedList','blockQuote','insertTable',
        'undo','redo','indent','outdent',
        'fontFamily','fontSize','fontColor','fontBackgroundColor']
    ],
//    'image_upload' => [
//        'status' => TRUE,
//        'scheme' => 'public',
//        'directory' => 'inline-images',
//    ]
  ]
]);

\$e->save();

"
''')


    os.system("vendor/bin/drush config:set filter.format.full_html filters.filter_html.settings.allowed_html " +
              "'<p> <a> <strong> <em> <h1> <h2> <h3> <h4> <h5> <h6> <ul> <ol> <li> <blockquote> <img> <table> <tr> <td> <th> <span> <div> <br> <hr>' -y")

    os.system("vendor/bin/drush config:set filter.format.full_html status  true  -y")



    os.system('''vendor/bin/drush config:delete editor.editor.restricted_html -y''')

    os.system('''
vendor/bin/drush php:eval "
use Drupal\editor\Entity\Editor;

\$e = Editor::create([
  'format' => 'restricted_html',
  'editor' => 'ckeditor5',
  'settings' => [
    'toolbar' => [
      'items' => [
//        'style',        //  style        nicht, weil Style definiert werden muss
//        'imageUpload',  //  imageUpload  nicht, weil komplexere Struktur, besser ueber UI
        'heading',
        'bold','italic','underline',
//        'strikethrough','specialCharacters','subscript','superscript',
//        'code','sourceEditing','codeBlock','horizontalLine',
        'link','showBlocks',
        'alignment','removeFormat','textPartLanguage',
//        'bulletedList','numberedList','blockQuote','insertTable',
        'undo','redo','indent','outdent',
        'fontFamily','fontSize','fontColor','fontBackgroundColor']
    ],
//    'image_upload' => [
//        'status' => TRUE,
//        'scheme' => 'public',
//        'directory' => 'inline-images',
//    ]
  ]
]);

\$e->save();

"
''')

    print("This is not a real error. It is because the restricted profile did not exist. Skipü the error message.")

    os.system("vendor/bin/drush config:set filter.format.restricted_html filters.filter_html.settings.allowed_html " +
              "'<p> <a> <strong> <em> <h1> <h2> <h3> <h4> <h5> <h6> <ul> <ol> <li> <blockquote> <img> <table> <tr> <td> <th> <span> <div> <br> <hr>' -y")

    os.system("vendor/bin/drush config:set filter.format.restricted_html status  true  -y")


    os.system('''vendor/bin/drush config:delete editor.editor.basic_html -y''')

    os.system('''
vendor/bin/drush php:eval "
use Drupal\editor\Entity\Editor;

\$e = Editor::create([
  'format' => 'basic_html',
  'editor' => 'ckeditor5',
  'settings' => [
    'toolbar' => [
      'items' => [
//        'style',        //  style        nicht, weil Style definiert werden muss
//        'imageUpload',  //  imageUpload  nicht, weil komplexere Struktur, besser ueber UI
        'heading',
        'bold','italic','underline',
//        'strikethrough','specialCharacters','subscript','superscript',
//        'code','sourceEditing','codeBlock','horizontalLine',
        'link','showBlocks',
        'alignment','removeFormat','textPartLanguage',
//        'bulletedList','numberedList','blockQuote','insertTable',
        'undo','redo','indent','outdent',
        'fontFamily','fontSize','fontColor','fontBackgroundColor']
    ],
//    'image_upload' => [
//        'status' => TRUE,
//        'scheme' => 'public',
//        'directory' => 'inline-images',
//    ]
  ]
]);

\$e->save();

"
''')


    os.system("vendor/bin/drush config:set filter.format.basic_html filters.filter_html.settings.allowed_html " +
              "'<p> <a> <strong> <em> <h1> <h2> <h3> <h4> <h5> <h6> <ul> <ol> <li> <blockquote> <img> <table> <tr> <td> <th> <span> <div> <br> <hr>' -y")

    os.system("vendor/bin/drush config:set filter.format.basic_html status  true  -y")



if "5" in steps:   #  Bloecke setzen bzw loeschen

    print("Define Blocks.")

    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_page_title'        ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Page title
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_branding'          ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Site title, Logo
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_messages'          ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Error messages
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_search'            ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Search Form
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_account_menu'      ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Login Menue
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_breadcrumbs'       ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Breadcrumbs
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_local_tasks'       ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Pages edit / view / Translate Menue
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_help'              ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Help
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_local_actions'     ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Admin actions
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_content'           ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Main content
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_tools'             ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Tools
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_login'             ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  User Login
    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_login'             ); \$b->setVisibilityConfig('request_path',['id'=>'request_path','pages'=>'/lgnift']); \$b->save();"  -y''') 
#    os.system('''vendor/bin/drush php:eval "\$b=\Drupal\\block\Entity\Block::load(''' + "'" + thname + '''_searchform'        ); \$b->setRegion('none'       ); \$b->save();"  -y''')   #  Footer menue

#    os.system("vendor/bin/drush config:setdrush php:eval "\$role = \Drupal\user\Entity\Role::load('authenticated');
#                                                          \$role->grantPermission('use text format full_html');
#\$role->save();
#"




#drush php:eval "
#\$role = \Drupal\user\Entity\Role::load('authenticated');
#\$role->grantPermission('use text format full_html');
#\$role->save();
#"

#drush php:eval "
#\Drupal\block\Entity\Block::create([
#  'id' => 'main_menu',
#  'plugin' => 'system_menu_block:main',
#  'region' => 'header',
#  'theme' => 'atstandard',
#  'visibility' => [],
#  'weight' => 0,
#])->save();
#"

#drush php:eval "
#\$block = \Drupal::entityTypeManager()
#  ->getStorage('block')
#  ->load('user_menu');
#
#\$block->setVisibilityConfig('request_path', [
#  'id' => 'request_path',
#  'pages' => '/account',
#  'negate' => FALSE,
#]);
#
#\$block->save();
#"




#    os.system("vendor/bin/drush ev '\\Drupal::entityTypeManager()->getStorage(\"redirect\")->create([\"redirect_source\" => [\"path\" => \"/user/login\"], " +
#                                   "\"redirect_redirect\" => [\"uri\" => \"internal:/lgnift\"], \"status_code\" => 302, ])->save();'")
    
    

    
if "6" in steps:  #  Colors for theme


#    os.system("vendor/bin/drush config:delete color.theme." + name + " -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings     logo.use_default      false                  -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings     favicon.use_default   false                  -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings  logo.path    '/themes/" + name + "/logo.svg'     -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings  favicon.path '/themes/" + name + "/favicon.ico'  -y")

    os.system("vendor/bin/drush config:set color.theme." + thname + "  palette.base  '#220088'  -y")
    os.system("vendor/bin/drush config:set color.theme." + thname + "  palette.text  '#000000'  -y")
    os.system("vendor/bin/drush config:set color.theme." + thname + "  palette.link  '#2200cc'  -y")

#    os.system("vendor/bin/drush ev '\\Drupal::service(\"theme_handler\"); module_load_include(\"inc\",\"color\",\"color\");_rebuild(\"atstandard\");'")


#    os.system("vendor/bin/drush config:set " + name + ".settings  color_primary      '#220088'  -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings  color_text         '#000000'  -y")
#    os.system("vendor/bin/drush config:set " + name + ".settings  color_link         '#2200cc'  -y")

#    os.system("vendor/bin/drush config:set at.settings." + name + "  color_primary      '#220088'  -y")
#    os.system("vendor/bin/drush config:set at.settings." + name + "  color_text         '#000000'  -y")
#    os.system("vendor/bin/drush config:set at.settings." + name + "  color_link         '#2200cc'  -y")

#    os.system("vendor/bin/drush color:rebuild " + name + " -y")

#    os.system("vendor/bin/drush config:set " + name + ".settings     logo.use_default   true                                  -y")

    print("Rebuild cache")
    os.system("vendor/bin/drush cr")

#----------------------------------------------------------------



#  Pages


cmd_def = '''

/*<?php*/

use Drupal\\node\\Entity\\Node;
use Drupal\\menu_link_content\\Entity\\MenuLinkContent;

/* helper */

function create_page($title,$alias,$html){
  $node = Node::create([
    "type"=>"page",
    "title"=>$title,
    "body"=>[
      "value"=>$html,
      "format"=>"full_html"
    ],
    "status"=>1
  ]);
  $node->save();
  

  \\Drupal\\path_alias\\Entity\\PathAlias::create([
    "path"=>"/node/".$node->id(),
    "alias"=>$alias
  ])->save();

  return $node;
}


function add_menu($title,$node,$weight,$parent=null){
  $link = [
    "title"=>$title,
    "link"=>["uri"=>"entity:node/".$node->id()],
    "menu_name"=>"main",
    "weight"=>$weight
  ];
  if($parent){
    $link["parent"]=$parent;
  }
  $m = MenuLinkContent::create($link);
  $m->save();
  return $m->getPluginId();
}


function find_page($alias){

    $path = \\Drupal::service("path_alias.manager")->getPathByAlias($alias);
    $nid  = str_replace("/node/","",$path);
    $node = \\Drupal\\node\\Entity\\Node::load($nid);
    return($node);
}

'''

#----------------------------------------------------------------

if "7" in steps:    #   Pages einrichten

    print("Create pages")   

    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$lgnift     = create_page("Login","/lgnift","User Login.");                 ' ''')   #  Login-Seite

    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$home       = create_page("Home","/home","Home.");  \\Drupal::configFactory()->getEditable("system.site")->set("page.front","/home")->save();' ''')
    
    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$product    = create_page("Product","/product","Product.");                 $pr_menu    = add_menu("Product",$product,10);                   ' ''')
    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$howitworks = create_page("How it works","/howitworks","How it works.");    $how_menu   = add_menu("How it works",$howitworks,20);           ' ''')
    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$usecases   = create_page("Use cases","/usecases","Use cases.");            $use_menu   = add_menu("Use cases",$usecases,30);                ' ''')
    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$demo       = create_page("Demo","/demo","Demo.");                          $demo_menu  = add_menu("Demo",$demo,40);                         ' ''')

    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$legal      = create_page("Legal notice","/legal","Legal notice.");         $legal_menu = add_menu("Legal notice",$legal,50);                      ''' +
                                                             '''$info       = create_page("Info","/info","Info.");                          $info_menu  = add_menu("Info",$info,10,$legal_menu);             ' ''')

    os.system("vendor/bin/drush cr")


#----------------------------------------------------------------

if "8" in steps:    #   Pages einrichten

    print("Redirect.")

    os.system('''vendor/bin/drush  php:eval "
use Drupal\\redirect\Entity\Redirect;

Redirect::create([
  'redirect_source' => ['path' => '/user'],
  'redirect_redirect' => ['uri' => 'internal:/'],
  'status_code' => 301,
])->save();

Redirect::create([
  'redirect_source' => ['path' => '/user/login'],
  'redirect_redirect' => ['uri' => 'internal:/'],
  'status_code' => 301,
])->save();
"
''')

#----------------------------------------------------------------

if "9" in steps:    #   Main-Page aendern

    
    os.system('''vendor/bin/drush php:eval ' ''' + cmd_def + '''$pg = find_page("/home"); $pg->body->format  = "full_html"; $pg->title->value  = " "; $pg->body->value   =  ' ''' + '''

<div style="background:#87c7e8 url('/sites/default/files/wolken.png') repeat; padding:120px 20px; text-align:center;">

<div style="max-width:900px;margin:0 auto;font-family:Arial, Helvetica, sans-serif;color:#243b53;line-height:1.7;">


<!-- große Wolke mit Grafik -->

<div style="display:inline-block;background:white;padding:90px 110px;border-radius:220px;box-shadow:0 20px 60px rgba(0,0,0,0.08);margin-bottom:70px;">

<img src="/sites/default/files/grafik_konvalo.png" style="max-width:520px;width:100%;height:auto;">

</div>


<!-- HEADLINE -->

<div style="font-size:54px;font-weight:700;color:#1e3a8a;margin-bottom:30px;">
Continuous Consolidation. At your fingertips.
</div>

<div style="font-size:28px;margin-bottom:50px;">
Accounting and consolidation for modern companies.
</div>


<!-- INTRO -->

<div style="font-size:20px;margin-bottom:60px;">
Konvalo enables continuous reconciliation and financial consolidation across company ledgers.
</div>


<!-- BUTTONS -->

<div style="margin-bottom:90px;">

<a href="/contact" style="display:inline-block;background:#1e3a8a;color:white;padding:14px 28px;text-decoration:none;font-size:18px;border-radius:6px;margin-right:15px;">
Request Demo
</a>

<a href="#learnmore" style="display:inline-block;background:white;color:#1e3a8a;padding:14px 28px;text-decoration:none;font-size:18px;border-radius:6px;border:2px solid #1e3a8a;">
Learn more
</a>

</div>


<!-- CHALLENGE -->

<div id="learnmore" style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The challenge
</div>

<div style="font-size:20px;margin-bottom:20px;">
Financial data is fragmented.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Companies operate multiple accounting systems across legal entities.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Intercompany reconciliation and financial consolidation are slow, manual and often spreadsheet-driven.
</div>

<div style="font-size:20px;margin-bottom:70px;">
Month-end closing can take weeks.
</div>


<!-- SOLUTION -->

<div style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The solution
</div>

<div style="font-size:22px;margin-bottom:20px;">
Continuous consolidation.
</div>

<div style="font-size:20px;margin-bottom:60px;">
Konvalo connects company ledgers and continuously reconciles financial data.
</div>


<!-- FEATURES -->

<div style="font-size:20px;margin-bottom:70px;">
automated reconciliation<br>
continuous consolidation<br>
real-time financial visibility
</div>


<!-- PRODUCT -->

<div style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The product
</div>

<div style="font-size:20px;margin-bottom:20px;">
Built for modern finance teams.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Konvalo provides:
</div>

<div style="font-size:20px;margin-bottom:60px;">
multi-company accounting<br>
intercompany reconciliation<br>
financial consolidation<br>
multi-currency support<br>
real-time financial reporting
</div>


<!-- FOOTER -->

<div style="font-size:20px;margin-bottom:20px;">
Start using Konvalo.
</div>

<div style="font-size:18px;">
Konvalo. Continuous consolidation for modern companies.
Powered by <a href="/strat" style="color:#1e3a8a;text-decoration:none;font-weight:600;">STRAT</a>.
</div>


</div>
</div



''' + ''' '; $pg->save();' ''')


#----------------------------------------------------------------



if "A" in steps:    #   Pages aendern

    cmd1 = '''
    
$text = <<<HTML
<div style="background-color:#87c7e8; background-image:url('/sites/default/files/wolken.png'); background-repeat:repeat; min-height:100vh; padding: 40px;")

<div style="background:#eeeeee;">
    <div class="text-align-center" style="font-size: 33px;">Continuous Consolidation. At your fingertips</h5>
    <div class="text-align-center" style="font-size: 28px;"><br><em>Accounting and consolidation for modern companies.</em></h6>
</div>
<p class="text-align-center"><br>Konvalo enables continuous reconciliation and financial consolidation across company ledgers.</p>
<img src="/sites/default/files/grafik_konvalo.png" data-align="center" data-entity-type="file" alt="Continuous Consolidation" width="476" height="317">
<p class="text-align-center"><br>Request Demo &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Learn more</p>
<p>[Grafik]</p><p>&nbsp;</p>
<p><br>The challenge:</p><p>Financial data is fragmented.</p>
<p>Companies operate multiple accounting systems across legal entities.</p>
<p>Intercompany reconciliation and financial consolidation are slow,
<br>manual and often spreadsheet-driven.</p>
<p>Month-end closing can take weeks.</p>
<p><br>The solution:</p>
<p>Continuous consolidation.</p>
<p>Konvalo connects company ledgers and continuously reconciles financial data.</p>
<p>Results:</p>
<p>
• automated reconciliation<br>
• continuous consolidation<br>
• real-time financial visibility</p>
<p><br>The product:</p>
<p>Buildt for modern finance teams.</p>
<p>Konvalo provides:</p>
<p>
• multi-company accounting<br>
• intercompany reconciliation<br>
• financial consolidation<br>
• multi-currency support<br>
• real-time financial reporting</p>
<p>Start using Konvalo.</p>
<p>Konvalo. Continuous consolidation for modern companies. Powered by STRAT.</p>
<p>
<br>[Request Demo]</p>
<p>&nbsp;</p><p>&nbsp;</p>

</div>
HTML;

$pg = find_page("/home");
$pg->title->value  = " ";
$pg->body->value   = $text;
$pg->body->format  = 'full_html';
$pg->save();

'''


    cmd1 = '''
$text = <<<HTML
<style>

/* Base */

body{
margin:0;
font-family:Arial, Helvetica, sans-serif;
line-height:1.6;
color:#333;
}

/* Layout */

.container{
max-width:1100px;
margin:auto;
padding:20px;
}

.section{
padding:80px 20px;
}

/* Flex layout */

.row{
display:flex;
flex-wrap:wrap;
gap:30px;
}

.col{
flex:1 1 300px;
}

/* Alignment */

.center{
text-align:center;
}

.left{
text-align:left;
}

/* Typography */

.h1{
font-size:clamp(36px,5vw,54px);
font-weight:600;
}

.h2{
font-size:clamp(26px,3vw,36px);
}

.text-large{
font-size:20px;
}

.text-small{
font-size:14px;
}

.text-muted{
color:#666;
}

/* Spacing */

.mt{
margin-top:40px;
}

.mb{
margin-bottom:40px;
}

.p{
padding:20px;
}

/* Backgrounds */

.bg-white{
background:white;
}

.bg-light{
background:#f5f5f5;
}

.bg-sky{
background:#87c7e8;
}

.bg-clouds{
background:#87c7e8 url('/sites/default/files/wolken.png') repeat;
}

/* Hero */

.hero{
padding:120px 20px;
}

/* Images */

.img{
max-width:100%;
height:auto;
}

/* Buttons */

.btn{
display:inline-block;
padding:12px 22px;
background:#2a6df4;
color:white;
text-decoration:none;
border-radius:4px;
}

</style>

<div class="hero bg-clouds center">

<div class="container">

<h1 class="h1">Konvalo</h1>

<p class="text-large">
Continuous consolidation at your fingertips
</p>

</div>

</div>


<div class="section bg-white">

<div class="container">

<h2 class="h2 center">The challenge</h2>

<div class="row mt">

<div class="col">
<p>Financial data is fragmented across systems.</p>
</div>

<div class="col">
<p>Manual reconciliation slows down reporting.</p>
</div>

<div class="col">
<p>Organizations lack real-time visibility.</p>
</div>

</div>

</div>

</div>


<div class="section bg-light center">

<div class="container">

<h2 class="h2">The solution</h2>

<p class="text-large">
Continuous consolidation.
</p>

</div>

</div>
HTML;



$pg = find_page("/home");
$pg->title->value  = " ";
$pg->body->value   = $text;
$pg->body->format  = 'full_html';
$pg->save();


'''

    cmd1 = '''
$text = <<<HTML
<div style="background:#a9d8f3 url('/sites/default/files/wolken.png') repeat; min-height:100vh; padding:80px 20px 100px 20px; box-sizing:border-box;">

  <div style="max-width:900px; margin:0 auto; text-align:center;">

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:56px; line-height:1.1; font-weight:700; color:#1e3a8a; margin-bottom:40px;">
      Konvalo
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:28px; line-height:1.4; color:#234; margin-bottom:30px;">
      Continuous consolidation at your fingertips.
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:22px; line-height:1.6; color:#234; margin-bottom:60px;">
      Real-time financial visibility across entities.<br>
      No reconciliation delays.<br>
      No fragmented reporting.
    </div>

    <div style="margin-bottom:70px;">
      <img src="/sites/default/files/grafik_konvalo.png" style="max-width:100%; height:auto; border:0;" alt="">
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:34px; line-height:1.3; font-weight:600; color:#1e3a8a; margin-bottom:25px;">
      Why accounting is still slow
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:20px; line-height:1.7; color:#234; margin-bottom:60px;">
      Financial data is fragmented across systems.<br>
      Intercompany reconciliation is manual.<br>
      Group numbers are often outdated before they are available.
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:34px; line-height:1.3; font-weight:600; color:#1e3a8a; margin-bottom:25px;">
      The solution
    </div>

    <div style="font-family:Arial, Helvetica, sans-serif; font-size:22px; line-height:1.7; color:#234; margin-bottom:0;">
      STRAT synchronizes accounting across entities<br>
      so consolidation happens continuously<br>
      instead of at month end.
    </div>

  </div>

</div>
HTML;



$pg = find_page("/home");
$pg->title->value  = " ";
$pg->body->value   = $text;
$pg->body->format  = 'full_html';
$pg->save();


'''



    cmd1 = '''
$text = <<<HTML
<div style="background:#87c7e8 url('/sites/default/files/wolken.png') repeat; padding:120px 20px; text-align:center;">

<div style="max-width:900px;margin:0 auto;font-family:Arial, Helvetica, sans-serif;color:#243b53;line-height:1.7;">


<!-- große Wolke mit Grafik -->

<div style="display:inline-block;background:white;padding:90px 110px;border-radius:220px;box-shadow:0 20px 60px rgba(0,0,0,0.08);margin-bottom:70px;">

<img src="/sites/default/files/grafik_konvalo.png" style="max-width:520px;width:100%;height:auto;">

</div>


<!-- HEADLINE -->

<div style="font-size:54px;font-weight:700;color:#1e3a8a;margin-bottom:30px;">
Continuous Consolidation. At your fingertips.
</div>

<div style="font-size:28px;margin-bottom:50px;">
Accounting and consolidation for modern companies.
</div>


<!-- INTRO -->

<div style="font-size:20px;margin-bottom:60px;">
Konvalo enables continuous reconciliation and financial consolidation across company ledgers.
</div>


<!-- BUTTONS -->

<div style="margin-bottom:90px;">

<a href="/contact" style="display:inline-block;background:#1e3a8a;color:white;padding:14px 28px;text-decoration:none;font-size:18px;border-radius:6px;margin-right:15px;">
Request Demo
</a>

<a href="#learnmore" style="display:inline-block;background:white;color:#1e3a8a;padding:14px 28px;text-decoration:none;font-size:18px;border-radius:6px;border:2px solid #1e3a8a;">
Learn more
</a>

</div>


<!-- CHALLENGE -->

<div id="learnmore" style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The challenge
</div>

<div style="font-size:20px;margin-bottom:20px;">
Financial data is fragmented.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Companies operate multiple accounting systems across legal entities.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Intercompany reconciliation and financial consolidation are slow, manual and often spreadsheet-driven.
</div>

<div style="font-size:20px;margin-bottom:70px;">
Month-end closing can take weeks.
</div>


<!-- SOLUTION -->

<div style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The solution
</div>

<div style="font-size:22px;margin-bottom:20px;">
Continuous consolidation.
</div>

<div style="font-size:20px;margin-bottom:60px;">
Konvalo connects company ledgers and continuously reconciles financial data.
</div>


<!-- FEATURES -->

<div style="font-size:20px;margin-bottom:70px;">
automated reconciliation<br>
continuous consolidation<br>
real-time financial visibility
</div>


<!-- PRODUCT -->

<div style="font-size:34px;font-weight:600;color:#1e3a8a;margin-bottom:25px;">
The product
</div>

<div style="font-size:20px;margin-bottom:20px;">
Built for modern finance teams.
</div>

<div style="font-size:20px;margin-bottom:20px;">
Konvalo provides:
</div>

<div style="font-size:20px;margin-bottom:60px;">
multi-company accounting<br>
intercompany reconciliation<br>
financial consolidation<br>
multi-currency support<br>
real-time financial reporting
</div>


<!-- FOOTER -->

<div style="font-size:20px;margin-bottom:20px;">
Start using Konvalo.
</div>

<div style="font-size:18px;">
Konvalo. Continuous consolidation for modern companies.
Powered by <a href="/strat" style="color:#1e3a8a;text-decoration:none;font-weight:600;">STRAT</a>.
</div>


</div>
</div
HTML;



$pg = find_page("/home");
$pg->title->value  = " ";
$pg->body->value   = $text;
$pg->body->format  = 'full_html';
$pg->save();


'''


    open("tmp.php","w").write(cmd_def + cmd1)
    os.system("vendor/bin/drush php:script tmp.php")
#    os.system("vendor/bin/drush php:eval '" + cmd_def + cmd1 + "'")
    os.system("vendor/bin/drush cr")

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net