133 lines
3.7 KiB
Python
133 lines
3.7 KiB
Python
#!/usr/bin/env python3
|
|
|
|
#from paramecio.wsgiapp import app
|
|
from paramecio2.libraries.mtemplates import PTemplate, env_theme
|
|
from modules.pages2.models.pages import Page2
|
|
from paramecio2.libraries.db.webmodel import WebModel
|
|
from settings import config
|
|
#from bottle import abort
|
|
from flask import abort, request
|
|
from modules.pages2 import pages2_app
|
|
from paramecio2.libraries.db.coreforms import BaseForm
|
|
from paramecio2.libraries.mtemplates import env_theme, PTemplate
|
|
from paramecio2.libraries.urls import make_media_url
|
|
import os
|
|
from werkzeug.utils import secure_filename
|
|
import pathlib
|
|
|
|
try:
|
|
import ujson as json
|
|
except:
|
|
import json
|
|
|
|
env=env_theme(__file__)
|
|
|
|
t=PTemplate(env)
|
|
|
|
pages_modules_to_search=[]
|
|
|
|
if hasattr(config, 'pages_modules_to_search'):
|
|
pages_modules_to_search=config.pages_modules_to_search
|
|
|
|
for mod in pages_modules_to_search:
|
|
|
|
t.env.directories.insert(0, mod.replace('.', '/')+'/templates')
|
|
|
|
@pages2_app.route('/page/<int:page_id>/')
|
|
@pages2_app.route('/page/<path:slug>/')
|
|
def pages2_home(page_id=0, slug=''):
|
|
|
|
conn=WebModel.connection()
|
|
|
|
page=Page2(conn)
|
|
|
|
page.show_formatted=True
|
|
|
|
if page_id:
|
|
|
|
page.set_conditions('WHERE id=%s', [page_id])
|
|
|
|
if slug:
|
|
|
|
page.set_conditions('WHERE slugify=%s', [slug])
|
|
|
|
arr_page=page.select_a_row_where()
|
|
|
|
conn.close()
|
|
|
|
if arr_page:
|
|
|
|
arr_final_text=[]
|
|
|
|
arr_text=json.loads(arr_page['text'])
|
|
|
|
#print(arr_text)
|
|
"""
|
|
for jtext in arr_text['blocks']:
|
|
#{'id': 'Vp0iLVnqq4', 'type': 'image', 'data': {'caption': 'Hi my friends', 'withBorder': False, 'withBackground': False, 'stretched': False, 'file': {'url': '/mediafrom/pages2/images/editor/33abad83-a37b-4d74-b83d-ba7283f0f952.jpg'}}}
|
|
|
|
#if jtext['type']=='paragraph':
|
|
# arr_final_text.append('<p>'+jtext['data']['text']+'</p>')
|
|
|
|
match jtext['type']:
|
|
|
|
case 'paragraph':
|
|
arr_final_text.append('<p>'+jtext['data']['text']+'</p>')
|
|
|
|
case 'image':
|
|
arr_final_text.append('<p align="center"><img src="{}" style="width:50%;" title="{}" /><br /><strong>{}</strong></p>'.format(jtext['data']['file']['url'], jtext['data']['caption'], jtext['data']['caption']))
|
|
"""
|
|
|
|
return t.load_template('page.phtml', title_page=arr_page['title'], content_page=arr_text)
|
|
|
|
else:
|
|
|
|
abort(404)
|
|
|
|
@pages2_app.route('/pages/upload_image/', methods=['POST'])
|
|
def pages2_upload_image():
|
|
|
|
"""
|
|
{
|
|
"success" : 1,
|
|
"file": {
|
|
"url" : "https://www.tesla.com/tesla_theme/assets/img/_vehicle_redesign/roadster_and_semi/roadster/hero.jpg",
|
|
// ... and any additional fields you want to store, such as width, height, color, extension, etc
|
|
}
|
|
}
|
|
"""
|
|
#print(request.files.keys())
|
|
success=0
|
|
|
|
new_url=''
|
|
|
|
if 'image' in request.files:
|
|
|
|
file=request.files['image']
|
|
|
|
images_dir='./modules/pages2/media/images/editor'
|
|
|
|
if not os.path.isdir(images_dir):
|
|
#os.mkdir(images_dir)
|
|
pathlib.Path(images_dir).mkdir(0o755, True)
|
|
|
|
filename=secure_filename(file.filename)
|
|
|
|
file.save(os.path.join(images_dir, filename))
|
|
success=1
|
|
new_url=make_media_url('images/editor/'+filename, 'pages2')
|
|
|
|
print({'success': success, 'file': {'url': new_url}})
|
|
return {'success': success, 'file': {'url': new_url}}
|
|
|
|
|
|
|
|
@pages2_app.route('/home/')
|
|
def pages_home():
|
|
|
|
return ""
|
|
|
|
|
|
if config.default_module=="pages2":
|
|
|
|
home=pages2_app.route("/")(pages2_home)
|