mod_harbour

Es soll sie ja geben ...

Moderator: Moderatoren

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2270
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 10 Mal
Danksagung erhalten: 39 Mal

Re: mod_harbour

Beitrag von ramses »

Hallo Otto

das lässt sich mit den callback slots von summernote erledigen und funktioniert sehr gut.
Damit sind auch weitere möglichkeiten offen.
ein bsp aus dem internet zeigt dir wie das vorgehen ist.
Dateianhänge
summernote.zip
(851 Bytes) 145-mal heruntergeladen
Valar Morghulis

Gruss Carlo
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Carlos,
velen Danke. Das Beispiel funktioniert gut. In meinem Quellcode habe ich noch Problem damit.
Ich füge die Bilder mit copy & paste ein. Ich bin mir noch nicht sicher, ob dadurch auch die Uploadfunktion aufgerufen wird.
LG
Otto
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12642
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal

Re: mod_harbour

Beitrag von AUGE_OHR »

hi Otto,

habe entdeckt das es ein Video bei Youtube von dir gibt über
Installation Apache mod harbour
https://www.youtube.com/watch?v=lsmAGsbIHdQ
gruss by OHR
Jimmy
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Jimmy,
in der Zwischenzeit habe ich noch ein ganz einfaches Programm gemacht um mod harbour und APACHE zu installieren.
Diese Installation ist für WINDOWS.
Mit lieben Grüßen
Otto

Bild

Download link:
https://mybergland.com/fwforum/install_ ... arbour.exe

Hier ist der source Code.

#include "FiveWin.ch"

REQUEST DBFCDX
REQUEST DBFFPT

static oWnd

//----------------------------------------------------------------------------//

function Main()
local I := 0
local odlg
local aLinks := {}
local cText := ""
//----------------------------------------------------------------------------//

cText += "Allow Apache through Windows Firewall?"+ CRLF
cText += ""+ CRLF
cText += "->Go to Search of windows."+ CRLF
cText += "->Search 'firewall'"+ CRLF
cText += "->open the firewall"+ CRLF
cText += "->select Advanced settings."+ CRLF
cText += "->go to Inbound Rules."+ CRLF
cText += "->click on New Rule."+ CRLF
cText += "->select Program"+ CRLF
cText += "->press next"+ CRLF

cText += "->This program path: Browse for httpd.exe"+ CRLF
cText += " (usually here: c:\xampp\apache\bin"+ CRLF
cText += "->Allow the connection Next"+ CRLF
cText += "->Select 'Allow all - Domain/Private/Public'"+ CRLF
cText += "->on last page add rule name 'Apache HTTP'"+ CRLF

if lIsDir( "c:\mod_harbour" ) = .f.
lMKDir( "c:\mod_harbour" )
endif

aadd( aLinks, { "Visual Studio C++ Redistributable 2017 x86", "https: //aka.ms/vs/15/release/vc_redist.x86.exe", "Download the file and run the exe immediately" } )
aadd( aLinks, { "Visual Studio C++ Redistributable 2017 x64", "https: //aka.ms/vs/15/release/vc_redist.x64.exe", "Download the file and run the exe immediately" } )
aadd( aLinks, { "XAMPP", "https: //sourceforge.net/projects/xampp/files/XAMPP%20Windows/7.3.8/xampp-windows-x64-7.3.8-2-VC15-installer", "Download the file and run the exe immediately" } )
aadd( aLinks, { "Allow Apache through Windows Firewall","noLink", cText } )
aadd( aLinks, { "mod harbour ZIP file", "https: //github.com/FiveTechSoft/mod_harbour/archive/master.zip", "Download the file and unpack to c:\mod_harbour" } )
aadd( aLinks, { "Setup mod harbour with bat-file", "https: //winhotel.space/modharbourdoc/setupmodharbour.bat", "Download the bat-file and run the bat-file immediately" } )
aadd( aLinks, { "Setup Apache for mod harbour", "https: //winhotel.space/modharbourdoc/modharb.exe" , "Download the file and run the modharb.exe immediately" } )

DEFINE DIALOG oDlg FROM 1, 10 TO 36, 60 ;
TITLE "Install XAMPP and mod harbour"

FOR I := 1 to len( aLinks )
buttonLinks(oDlg, I, aLinks)

NEXT


ACTIVATE DIALOG oDlg
return nil
//----------------------------------------------------------------------------//

function buttonLinks(oDlg, I, aLinks)
local oBtn

if aLinks[ I,2] = "noLink"
@ 1 + 30 * I,10 ;
BUTTON oBtn ;
PROMPT aLinks[ I,1] ;
SIZE 150, 25 ;
OF oDlg ;
PIXEL ;
ACTION ( msginfo( aLinks[ I,3] ), oBtn:disable() )
else
@ 1 + 30 * I,10 ;
BUTTON oBtn ;
PROMPT aLinks[ I,1] ;
SIZE 150, 25 ;
OF oDlg ;
PIXEL ;
ACTION ( msginfo( aLinks[ I,3] ),ShellExecute( oDlg, 'Open', aLinks[ I,2] ), oBtn:disable() )
endif
return nil
//----------------------------------------------------------------------------//

Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Freunde,
ich komme jetzt gut zurecht mit mod harbour.

Im Augenblick arbeite ich an einer Terminverwaltung ähnlich eines Pultordners oder Monatsordners.
Ich verwende nur das Dateisystem und keine Datenbanken. Für jeden Tag wird ein Folder erstellt.
Die Termine werden als HTML Datei dann in den entsprechenden Tagesordner geschoben.

Ich wünsche euch ein schönes Wochenende.
Mit freundlichem Gruß
Otto

https://mybergland.com/fwforum/scheduler.mp4

Bild

Bild
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Freunde,
Ich möchte meine zukünftigen Programme als Webanwendungen erstellen.
Da es nicht möglich ist, sofort alles umzustellen, werde ich vorerst einen Hybrid-Modus
fahren.
Der Dialog "Karteikarte" läuft in localhost und ist eine mod Harbour Programm.
Ich erwähne dies, da keinen Unterschied zwischen der Desktop- und der Web-App sehen.

Freundliche Grüße,
Otto

Bild
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Ich bin gerade dabei einen Zwei-Weg-Editor für die HTML Elemente zu erstellen.
Man kann damit einfach, in einer Eingabemaske mit Auswahlboxen HTML Befehle editieren.

Bild
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Freunde,
wir arbeiten an einer QR-Code-Lösung für Restaurants.
Der Gast kann am Tisch einen QR-Code scannen und erhält dann eine Landingpage mit diversen weiterführenden Links.

Bisher haben wir die Speisekarte als PDF angezeigt.
Jetzt sind wir dabei, ein "Menü" zu programmieren.
Wir verwenden die Vorlage von W3schools.com.

https://www.w3schools.com/w3css/w3css_web_tmp_pizza.asp

Das Template haben wir nun konvertiert und eine DBF-Datei hinzugefügt.

Bild


Mit freundliche Grüße,
Otto

Bild


So sieht der Quellcode aus:

Bild
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2270
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 10 Mal
Danksagung erhalten: 39 Mal

Re: mod_harbour

Beitrag von ramses »

azzo hat geschrieben: Mi, 02. Jun 2021 19:52
Der Gast kann am Tisch einen QR-Code scannen und erhält dann eine Landingpage mit diversen weiterführenden Links.
Hallo Otto

was machst du wenn der Gast gar kein Smartphone hat oder gar nicht scannen will?
So ist es in unserer Clique schon lange die Regel "Keine Telefone beim zusammensitzen" .....
Valar Morghulis

Gruss Carlo
Benutzeravatar
azzo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 361
Registriert: So, 28. Mär 2010 19:21
Danksagung erhalten: 2 Mal

Re: mod_harbour

Beitrag von azzo »

Hallo Freunde,
Wir organisieren einen Livestream mit Jacob Koopman von Dublin nach Sillian, Hotel Bergland.

Um diese Veranstaltung zu bewerben, erstellen wir eine Landingpage mit mod harbour.

LINK to page: https://winhotel.space/jacobkoopman/home-studio.prg


Die Inhalte speichern wir in einer DBF Datei.

Mithilfe eines selbst entwickelten kleinen Programms können wir schnell die Inhalte ein die pagedata-dbf einfügen.
Gleichzeitig wird ein Hashkey erstellt. Der Hashkey wird in die Zwischenablage kopieren und kann dann einfach in den Quellcode eingefügt werden..
Ihr seht auch das Harbourino-Tool in Aktion. Harbourino ist ein Tool, mit dem man ganz einfach ein persönliches Framework entwickeln kann.

VIDEO: https://mybergland.com/fwforum/pagedatafile.mp4

So sieht zum Beispiel dann das Hauptprogramm dieser Webseite aus.


Bild


Wo ist die Webseite gehostet?
LINK zur Seite: https://winhotel.space/jacobkoopman/home-studio.prg

Bild


Wir haben eine 100/100 Fiberglas Internetanbindung.

Eine OPNsense-Firewall verteilt das Internet an meine Apache-Webserver.
Ich verwende i7-Notebooks mit guten SSD-Laufwerken und maximalem Arbeitsspeicher.

Hier ist der mod-harbour-Sourcecode:
Wir füllen einen Hash aus einer dbf-Datei und übergeben den Hash an HTML.

Code: Alles auswählen

hPageData := {=>}  

  use ( hb_GetEnv( "PRGPATH" ) + "\data\pagedata.DBF" ) new
  do while .not. eof()
      hPageData[  ALLTRIM( field->hashkey ) ] = field->text 
      select pagedata
      skip
  enddo
  select pagedata
  use
   TEMPLATE PARAMS hPageData
Hier der Zugriff von HTML aus auf den HASH.

Code: Alles auswählen

 <?prg  return hPageData[ "keyname" ] ?>


Bild

Bild
Antworten