A framework for building rich, data-driven applications in PHP and MySQL

Overview
Comments
  • Xataface not working on php7.4

    Xataface not working on php7.4

    Our service provider is updating to php 7.4 shortly. Testing Xataface (2.2.5?) on 7.4 doesn't provide the login screen and gives multiple deprecated warnings. Are there any plans to update Xataface for php 7.4? Example warnings below:

    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/public-api.php on line 781
    
    Deprecated: Function get_magic_quotes_gpc() is deprecated in /.../xataface/config.inc.php on line 58
    
    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/Dataface/Application.php on line 943
    
    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Dataface_ConfigTool has a deprecated constructor in /.../xataface/Dataface/ConfigTool.php on line 33
    
    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/Dataface/Table.php on line 2772
    
    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/Dataface/Record.php on line 2594
    
    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Dataface_Record has a deprecated constructor in /.../xataface/Dataface/Record.php on line 100
    
    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Dataface_RecordIterator has a deprecated constructor in /.../xataface/Dataface/Record.php on line 4852
    
    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Dataface_RelationshipIterator has a deprecated constructor in /.../xataface/Dataface/Record.php on line 4889
    
    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/Dataface/LinkTool.php on line 48
    
    Deprecated: Array and string offset access syntax with curly braces is deprecated in /.../xataface/Dataface/QueryTool.php on line 167
    
    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Dataface_QueryTool has a deprecated constructor in /.../xataface/Dataface/QueryTool.php on line 36
    
    
    opened by mike-at-acs 4
  • LDAP authentication

    LDAP authentication

    Steve,

    Not sure if this is the primary discussion/issue platform or Google Groups.

    Ref. Google Groups topic https://groups.google.com/forum/#!topic/xataface/Vsx8Svc0Zak, sorry for the delay in completing this, however I have finally finished work on version 02.00.00; which support some additional features. See (https://bitbucket.org/viharm/xatafaceldapauth/). I am very new to licensing, so split the directory authentication and database authentication into two separate projects and use them as dependencies. The main ldap.php is modified to suit and released under Apache v2. If you feel this is inappropriate or incompatible please advise.

    Best regards, ViHAR

    opened by viharm 4
  • actions.ini: Using $record in url makes new record creation fail

    actions.ini: Using $record in url makes new record creation fail

    If I add following action to actions.ini:

    [MyActionButton]
    category = record_actions
    url = "MyActionURL?id={$record->val('TableID')}"
    

    Then I can't create new records anymore. When I go to create new record and save it, I get 500 Internal Server Error with empty page and no error message. This is somehow related to the use of $record in that action, even through that action is not even visible on the "Record successfully saved" page which fails.

    As a workaround for this bug, adding following condition seems to make this work:

    condition = "isset($record)"
    
    opened by malaire 4
  • Adding the iCal export to the calendar action

    Adding the iCal export to the calendar action

    So, I've done it (see the original comment that started this stuff), I add the ability to export table as iCal files. This is visible when in the calendar tab of the calendar action, as a action icon (icon in public domain, taken here. I use the iCalCreator lib from KigKonsult which is LGPL'ed. xCal format may be easily supported as iCalCreator seems to support it already, but I did not make it as I don't care.

    opened by taophp 4
  • release recent xataface work?

    release recent xataface work?

    Using Xataface v2.1.3 released Aug 31, 2016 with PHP 7.0.25-0ubuntu0.16.04.1, I'm running into the T_ENCAPSED_AND_WHITESPACE problem fixed Sep 16, 2016 in a3926792 .

    I would very much appreciate a release that included recent work such as this.

    opened by dckc 3
  • Possible bug in Record->getValue(): it sets $out=null before returning even though $out has a value from e.g.

    Possible bug in Record->getValue(): it sets $out=null before returning even though $out has a value from e.g. "fieldname_init()"

    Hi, I just tried to debug an error and came up on lines 1980/1999 in Record.php. It seems to be wrong to me, to set $out=null after first painstakingly getting it. Also it makes all my transientValues return null the first time getValue is called on them. I would like to fix this or make an PR, but I don't know how I could unittest this for regression, sideeffects to it.

    This is the part I'm taking about: https://github.com/shannah/xataface/blob/32af6da431ccf687cdfd49870040d0308fd30827/Dataface/Record.php#L1980

    https://github.com/shannah/xataface/blob/32af6da431ccf687cdfd49870040d0308fd30827/Dataface/Record.php#L1999

    1980	$out = null;
    					}
    				} else if ( ( $parent =& $this->getParentRecord() ) and $parent->_table->hasField($fieldname) ){
    					return $parent->getValue($fieldname,$index,$where,$sort,$debug);
    				} else {
    					$this->_values[$fieldname] = null;
    					$out = null;
    				}
    			} else {
    				$out = $this->_values[$fieldname];
    			}
    			if ( isset($out) ){
    				// We only store non-null values in cache.  We were having problems
    				// with segfaulting in PHP5 when groups are used.
    				// This seems to fix the issue, but let's revisit it later.
    				$this->cache[strval(__FUNCTION__)][strval($fieldname)][$index][$where][$sort] = $out;
    			}
    1999		return $out;
    
    opened by TheJoeSchr 3
  • PHP7 Edits

    PHP7 Edits

    Changes to avoid PHP warnings "Methods with the same name as their class will not be constructors in a future version of PHP" when running PHP 7.x on server.

    opened by lemondexter 3
  • Safe to empty dataface__record_mtimes?

    Safe to empty dataface__record_mtimes?

    Our dataface__record_mtimes table has grown to over 2.8 million lines on our site (in constant use).
    Is it safe to completely empty that table via phpmyadmin or will that cause functionality issues for our users? Is the usage of that table documented somewhere? Thanks in advance.

    opened by mike-at-acs 2
  • Cannot update/delete N:M transient table - Xataface 2.1.2

    Cannot update/delete N:M transient table - Xataface 2.1.2

    Records can be added to the transient / joining table (tbl_FamilySkill) when creating a new record (tbl_Family) or editing an existing (tbl_Family) record by adding related Skills (placing checks in Skills checkboxes). Any attempt to remove related Skills (unchecking the boxes and then saving) will fail. It will also fail upon trying to delete the Family record. The database user has all permissions to the database including delete.

    Error in the apache log (replaced backticks with single quotes to avoid github formatting issue):

    [Tue Sep 08 17:06:59.162881 2020] [:error] [pid 7580] [client x.x.x.x:55618] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'limit 1' at line 1, referer: index.php?-table=tbl_family&-action=edit&-cursor=0&-skip=0&-limit=30&-mode=list&-recordid=tbl_family%3FFamily_ID%3D1&--saved=1&--msg=Record+successfully+saved
    [Tue Sep 08 17:06:59.163132 2020] [:error] [pid 7580] [client x.x.x.x:55618] PHP Fatal error:  Uncaught exception 'Exception' with message 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'limit 1' at line 1' in xataface/public-api.php:821\nStack trace:\n#0 xataface/Dataface/IO.php(848): df_q('select '', NULL...', Object(mysqli))\n#1 xataface/Dataface/IO.php(1797): Dataface_IO->recordExists(Object(Dataface_Record), NULL, 'tbl_familyskill')\n#2 xataface/Dataface/IO.php(594): Dataface_IO->removeRelatedRecord(Object(Dataface_RelatedRecord), false, true)\n#3 xataface/Dataface/IO.php(702): Dataface_IO->saveTransients(Object(Dataface_Record), Array, NULL, true)\n#4 xataface/Dataface/QuickForm.php(1120): Dataface_IO->write(Object(Dataface_Record), Array, NULL, true, false)\n#5 [internal function]: Dataface_QuickForm->save(Array)\n#6 xataface/lib/HTML/QuickForm.php(1632): call_user_func(Array, Array)\n#7 xataface/actions/e in xataface/public-api.php on line 821, referer: index.php?-table=tbl_family&-action=edit&-cursor=0&-skip=0&-limit=30&-mode=list&-recordid=tbl_family%3FFamily_ID%3D1&--saved=1&--msg=Record+successfully+saved
    

    Enabling the general log on MariaDB and capturing the query that breaks shows the same query noted in the apache log: (replaced backticks with single quotes to avoid github formatting issue)

    select '', NULL from 'tbl_familyskill' where  limit 1;
    

    I get the same issue on Ubuntu Server 18.04 (MariaDB 10.5.5, Apache 2.4.29, PHP 5.6.40, Xataface 2.1.2) and 20.04 (MariaDB 10.5.5, Apache 2.4.41, PHP 7.4.3, Xataface 2.1.2)

    Here are the table definitions (replaced backticks with single quotes to avoid github formatting issue):

    CREATE TABLE 'tbl_family' (
      'Family_ID' smallint(6) NOT NULL AUTO_INCREMENT COMMENT 'Index',
      'FirstName' varchar(30) COLLATE utf8_bin NOT NULL COMMENT 'First Name',
      'LastName' varchar(30) COLLATE utf8_bin NOT NULL COMMENT 'Last Name',
      'Birthday' date DEFAULT NULL COMMENT 'Birthday',
      'Filename' varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT 'Filename of uploaded image',
      'DateCreated' timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'Date record created',
      'DateModified' datetime DEFAULT NULL COMMENT 'Date record last modified',
      PRIMARY KEY ('Family_ID')
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Family Members';
    CREATE TABLE 'tbl_skill' (
      'Skill_ID' smallint(6) NOT NULL AUTO_INCREMENT COMMENT 'Index',
      'Name' varchar(30) COLLATE utf8_bin NOT NULL COMMENT 'Name of skill',
      'Value' int(11) DEFAULT NULL COMMENT 'Value of skill',
      'DateCreated' timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'Date record created',
      'DateModified' datetime DEFAULT NULL COMMENT 'Date record last modified',
      PRIMARY KEY ('Skill_ID')
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='List of Skills';
    CREATE TABLE 'tbl_familyskill' (
      'Family_ID' smallint(6) NOT NULL COMMENT 'Associated Family Member',
      'Skill_ID' smallint(6) NOT NULL COMMENT 'Associated Skill',
      KEY 'Family_ID' ('Family_ID'),
      KEY 'Skill_ID' ('Skill_ID'),
      CONSTRAINT 'tbl_familyskill_ibfk_1' FOREIGN KEY ('Family_ID') REFERENCES 'tbl_family' ('Family_ID'),
      CONSTRAINT 'tbl_familyskill_ibfk_2' FOREIGN KEY ('Skill_ID') REFERENCES 'tbl_skill' ('Skill_ID')
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Family Skills';
    

    This is in the fields.ini

    [fieldgroup:Primary]
      section:order = 1
      order = 1
      label = "Primary Fields"
    [fieldgroup:Secondary]
      section:order = 2
      order = 2
      label = "Secondary Fields"
    [fieldgroup:Other]
      section:order = 3
      order = 3
      label = "Other Fields"
    [Family_ID]
      group = Other
      widget:type = static
      widget:label = "Index"
    [FirstName]
      group = Primary
      order = 1
      widget:label = "First Name"
      widget:description = "First Name"
      validators:required = 1
      widget:atts:size = 30
      widget:focus = 1
    [LastName]
      group = Primary
      order = 2
      widget:label = "Last Name"
      widget:description = "Last Name"
      validators:required = 1
      widget:atts:size = 30
    [Birthday]
      group = Primary
      order = 3
      widget:label = "Birthday"
      widget:type = calendar
      validators:required = 0
    [Filename]
    ; http://xataface.com/documentation/how-to/how-to-handle-file-uploads
    ; NOTE: Files uploaded with the same name as existing files will overwrite
    ;       the existing files.
      group = Primary
      order = 4
      widget:label = "Image"
      widget:description = "Optional image of family member"
      Type = container
      widget:type = file
      allowed_extensions = png,jpg,jpeg,gif
      validators:required = 0
    [FamilySkills]
      group = Primary
      order = 5
      widget:label = "Skills"
      widget:description = "Select skills related to this family member"
      widget:type = checkbox
      transient = 1
      relationship = skills
    [DateCreated]
      group = Other
      date_format = %Y-%m-%d
      widget:type = static
      timestamp = insert
    [DateModified]
      group = Other
      date_format = %Y-%m-%d
      timestamp = update
      widget:type = static
    

    And this is the relationships.ini

    [skills]
    tbl_skill.Skill_ID = tbl_familyskill.Skill_ID
    tbl_familyskill.Family_ID = "$Family_ID"
    
    opened by LHammonds 2
  • Add ability to override getModuleURL

    Add ability to override getModuleURL

    When creating a setup where I want to symlink module directories from DATAFACE_SITE_PATH/modules but keep the actual module directories outside of both DATAFACE_PATH and DATAFACE_SITE_PATH, I got error "Could not find URL for file $file in module tool" from https://github.com/shannah/xataface/blob/74489bab8391921b4cafd4ea6599d5e768afbb46/Dataface/ModuleTool.php#L159

    It would be nice if I could override getModuleURL in Application Delegate Class for special setups like this.

    opened by malaire 2
  • PHP7 dropped mysql-extension

    PHP7 dropped mysql-extension

    PHP7 dropped the mysql-extension [1]

    Hence the latest release of Xataface (2.1.2) won't work on PHP7

    [1] http://php.net/manual/en/migration70.removed-exts-sapis.php

    opened by NeroBurner 2
  • Send e-mail validation

    Send e-mail validation

    Hello, There is a bug in "xataface/actions/register.php" line: 466 PHP Warning: mail() expects parameter 3 to be a string, array given in xataface/actions/register.php on line 464 The error is due to the fact that $info["message"] is an array

    opened by Dydouch 0
  • Defining the description of records

    Defining the description of records

    Hello,

    I have started using the new Xataface 3.0 and it looks good and works as expected. One thing I cannot seem to get running is the mobile list view. The heuristics gets the title field right, but it uses the title field for the description as well. I have tried to change this in the fields.ini and I cannot get it to change.

    I added title=1 to another column and the title changes; however, when I add description=1 to another field it continues to show the presumed title vs the field I am trying to specify as the description.

    Can anyone point me in the right direction to get this solved? I appreciate it in advance.

    opened by tclela20 0
  • No records matched your request.

    No records matched your request.

    Hi,

    I can't begin to tell you how thankful I am that you updated the project. I use it to track the sheep on my farm and I would be lost without it.

    After upgrading form a very old version of the framework to 3.0 I am running into an issue that the data shows up correctly but in the bottom of the grid I get the "No records matched you request" with the record keys repeated. I suspect it is related to the mobile view.

    Please see attached screen shots.

    Screenshot 2021-11-30 111045 Screenshot 2021-11-30 111257

    opened by RCG-SW 9
  • ckeditor widget does not save content when used inside a grid widget

    ckeditor widget does not save content when used inside a grid widget

    In a 1:n relationship managed via a transient field and a grid widget in the main table, like this:

    (table 'Punto': fields.ini)

    [Testi]
    transient=1
    widget:type=grid
    widget:columns="Tipologia, TitoloTesto, Testo, CodDelibera, Raccordo, NoteT"
    relationship=Testi
    order=40
    

    (table 'Punto': relationships.ini)

    [Testi]
    __sql__ = "SELECT * FROM Testo T WHERE T.FKPunto='$KPunto'"
    

    (table 'Testo': fields.ini)

    [Testo]
    widget:type=ckeditor
    passthru=1
    

    everything is rendering as expected when editing a 'Punto' record, but no value is saved in the 'Testi' relationship when clicking the save button, and no new line in the grid appears when clicking on the last cell

    If a textarea widget is used instead of a ckeditor widget, like this:

    (table 'Testo': fields.ini)

    [Testo]
    widget:type=textarea
    

    the save button and the new line mechanism in the grid work again as expected.

    ckeditor inside a grid might not be currently supported, but could sometimes be useful

    opened by patrr 1
  • Multiple calculated fields in fields.ini

    Multiple calculated fields in fields.ini

    Hi @shannah , I've always been a fan of Xataface and very much appreciate the work you have been doing for years. I very much enjoyed your guidance whilst creating the LDAP auth plugin.

    I am creating a personal inventory application which has tables for items (tbl__Item) and categories (tbl__Category). I have established a many-to-many relationship between these two tables using relationships.ini.

    I would like to count the number and the total cost of items in a category when I list the categories.

    I have followed the guide at http://xataface.com/documentation/how-to/how-to-add-calculated-fields-to-your-list-and-details-view to add the count using a SQL statement in the beginning of fields.ini for the categories table (tbl__Category).

    However when I add the second SQL statement for cost, the list view shows only the cost. Is there a way to have multiple calculated fields in a list and browse views?

    opened by viharm 6
Releases(3.0.3)
Owner
Steve Hannah
Steve Hannah
Drupal is an open source content management platform supporting a variety of websites ranging from personal weblogs to large community-driven websites.

Drupal is an open source content management platform supporting a variety of websites ranging from personal weblogs to large community-driven websites.

Drupal 3.8k Jan 4, 2023
Demo of using geo data in PHP web applications

phpgeo-demo Demo of using geo data in PHP web applications Goals Demonstrate basic data storage and retrieval methods using Geo specific data Orient t

J Corry 2 Jul 10, 2016
CRUD php application to check in and check out employees and show daily building occupation

CRUD php application to check in and check out employees and show daily building occupation. Employees are required to self check their temperature and tick a checkbox to specify whether their temperature is below 38°C else they are invited to stay home. (Implemented in php with bootstrap4 for styling and datatable jquery plugin for table formatting and additional features).

null 2 Feb 20, 2022
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
CollectiveAccess is a web-based suite of applications providing a framework for management, description, and discovery of complex digital

README: Pawtucket2 version 1.7.14 About CollectiveAccess CollectiveAccess is a web-based suite of applications providing a framework for management, d

CollectiveAccess 70 Sep 28, 2022
A simple blog project based on a custom-created MVC framework using PHP & MySQL

A simple blog project based on a custom-created MVC framework using PHP & MySQL. That follows the Facade design pattern.

Samiul Arafah Dhrubo 2 May 28, 2022
Created simple login system and chat type website using mysql database along with php and html , css and javascript.

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

null 1 Jan 6, 2022
Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.

⚠️ Note - Not the latest version This is the repository for Bolt 3. Please know that Bolt 5 has been released. If you are starting a new project, plea

Bolt 4.1k Dec 27, 2022
Complete Login and Registration system using HTML, CSS, JAVASCRIPT, BOOTSTRAP, PHP and MYSQL

Complete Login and Registration system using HTML, CSS, JAVASCRIPT, BOOTSTRAP, PHP and MYSQL

JehanKandy 11 Jul 13, 2022
Complete Login and Registration System with HTML CSS Bootstrap PHP and MYSQL

Complete-Login-and-Registration-System Complete Login and Registration System with HTML CSS Bootstrap PHP and MYSQL for .sql file run xampp server ope

JehanKandy 10 Jul 13, 2022
Well secured MySQL Database Login and Registration with an seperate dashboard for consumers and admins.

WebApplicationPHP Well secured MySQL Database Login and Registration with an seperate dashboard for consumers and admins. Functions Well secured MySQL

z3ntl3 root 1 Jan 21, 2022
Bulit PHP Twitter Clone IN OOP style and using MYSQL Database.

Bulit PHP Twitter Clone IN OOP style and using MYSQL Database. AJAX and Jquery for requests without reloading like Follow/unfollow, like, Search users, Show popups like comment , User lists, etc.

Amin 47 Dec 3, 2022
Mibew Messenger - open-source live support application written in PHP and MySQL

Mibew Messenger is an open-source live support application written in PHP and MySQL. It enables one-on-one chat assistance in real-time directly from your website.

Mibew Messenger 443 Dec 13, 2022
PHP, MySQL and JS based web chat application

About The Project Chat Application coded in PHP, CSS3 and JS. This is just a project to learn and improve understanding on certain topics. This is not

Neil 8 Apr 18, 2022
Project of Simple Blog using: HTML, CSS, PHP, MYSQL, and BOOTSTRAP

Project-Stormwind Project of Simple Blog using: HTML, CSS, PHP, MYSQL, and BOOTSTRAP Functions : A personal blog about Blizzard and their work Main Th

Jan Andrzejewski 2 Aug 24, 2022
Hotel Management System using MySQL, Php, Ajax, Jquery and HTML

Hotel-Management-System-Ajax-PHP-Mysql A hotel management system in which clients can perform operations such as booking a room and event. It is possi

vengadesh ks 2 Jun 6, 2022
Examination system using PHP and mysql

online-examination-systen-in-php Online Examination System Today Online Examination System has become a fast growing examination method because of its

Ashutosh Mohanty 9 Apr 14, 2022
Web application for the health record of the Hemal's Thalasseamia Patients. Technologies PHP, JavaScript, HTML, W3.CSS and MySQL

Web application for the health record of the Hemal's Thalasseamia Patients. Technologies PHP, JavaScript, HTML, W3.CSS and MySQL

Thilrash Gowzul Ameen 1 Dec 15, 2021
Online-examination-System in PHP and Mysql using XAMPP server

online-examination-systen-in-php Online Examination System Today Online Examination System has become a fast growing examination method because of its

Web_Warriors 1 Nov 28, 2021